Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1674655

Re: [PATCH 4/6] mm: kvmalloc support __GFP_RETRY_MAYFAIL for all sizes

From Vlastimil Babka <vbabka@suse.cz>
Newsgroups linux.kernel
Subject Re: [PATCH 4/6] mm: kvmalloc support __GFP_RETRY_MAYFAIL for all sizes
Date 2017-06-26 14:10 +0200
Message-ID <tWB06-2bS-15@gated-at.bofh.it> (permalink)
References <tVsBz-8nM-3@gated-at.bofh.it> <tVsBA-8nM-33@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 06/23/2017 10:53 AM, Michal Hocko wrote:
> From: Michal Hocko <mhocko@suse.com>
> 
> Now that __GFP_RETRY_MAYFAIL has a reasonable semantic regardless of the
> request size we can drop the hackish implementation for !costly orders.
> __GFP_RETRY_MAYFAIL retries as long as the reclaim makes a forward
> progress and backs of when we are out of memory for the requested size.
> Therefore we do not need to enforce__GFP_NORETRY for !costly orders just
> to silent the oom killer anymore.
> 
> Signed-off-by: Michal Hocko <mhocko@suse.com>

The flag is now supported, but not for the embedded page table
allocations, so OOM is still theoretically possible, right?
That should be rare, though. Worth mentioning anywhere?

Other than that.
Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/util.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/mm/util.c b/mm/util.c
> index 6520f2d4a226..ee250e2cde34 100644
> --- a/mm/util.c
> +++ b/mm/util.c
> @@ -339,9 +339,9 @@ EXPORT_SYMBOL(vm_mmap);
>   * Uses kmalloc to get the memory but if the allocation fails then falls back
>   * to the vmalloc allocator. Use kvfree for freeing the memory.
>   *
> - * Reclaim modifiers - __GFP_NORETRY and __GFP_NOFAIL are not supported. __GFP_RETRY_MAYFAIL
> - * is supported only for large (>32kB) allocations, and it should be used only if
> - * kmalloc is preferable to the vmalloc fallback, due to visible performance drawbacks.
> + * Reclaim modifiers - __GFP_NORETRY and __GFP_NOFAIL are not supported.
> + * __GFP_RETRY_MAYFAIL is supported, and it should be used only if kmalloc is
> + * preferable to the vmalloc fallback, due to visible performance drawbacks.
>   *
>   * Any use of gfp flags outside of GFP_KERNEL should be consulted with mm people.
>   */
> @@ -366,13 +366,7 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node)
>  	if (size > PAGE_SIZE) {
>  		kmalloc_flags |= __GFP_NOWARN;
>  
> -		/*
> -		 * We have to override __GFP_RETRY_MAYFAIL by __GFP_NORETRY for !costly
> -		 * requests because there is no other way to tell the allocator
> -		 * that we want to fail rather than retry endlessly.
> -		 */
> -		if (!(kmalloc_flags & __GFP_RETRY_MAYFAIL) ||
> -				(size <= PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER))
> +		if (!(kmalloc_flags & __GFP_RETRY_MAYFAIL))
>  			kmalloc_flags |= __GFP_NORETRY;
>  	}
>  
> 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/6] mm: give __GFP_REPEAT a better semantic Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
  [PATCH 1/6] MIPS: do not use __GFP_REPEAT for order-0 request Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
    Re: [PATCH 1/6] MIPS: do not use __GFP_REPEAT for order-0 request Ralf Baechle <ralf@linux-mips.org> - 2017-06-23 12:30 +0200
    Re: [PATCH 1/6] MIPS: do not use __GFP_REPEAT for order-0 request Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 11:40 +0200
  [PATCH 5/6] drm/i915: use __GFP_RETRY_MAYFAIL Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
  [PATCH 6/6] mm, migration: do not trigger OOM killer when migrating memory Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
    Re: [PATCH 6/6] mm, migration: do not trigger OOM killer when  migrating memory Andrew Morton <akpm@linux-foundation.org> - 2017-06-23 22:50 +0200
      Re: [PATCH 6/6] mm, migration: do not trigger OOM killer when  migrating memory Michal Hocko <mhocko@kernel.org> - 2017-06-26 07:30 +0200
    Re: [PATCH 6/6] mm, migration: do not trigger OOM killer when  migrating memory Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 14:20 +0200
  [PATCH 4/6] mm: kvmalloc support __GFP_RETRY_MAYFAIL for all sizes Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
    Re: [PATCH 4/6] mm: kvmalloc support __GFP_RETRY_MAYFAIL for all  sizes Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 14:10 +0200
      Re: [PATCH 4/6] mm: kvmalloc support __GFP_RETRY_MAYFAIL for all  sizes Michal Hocko <mhocko@kernel.org> - 2017-06-26 14:20 +0200
  [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by __GFP_RETRY_MAYFAIL with more useful semantic Michal Hocko <mhocko@kernel.org> - 2017-06-23 11:00 +0200
    Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 13:50 +0200
      Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 14:20 +0200
        Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Michal Hocko <mhocko@kernel.org> - 2017-06-26 14:40 +0200
          Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Michal Hocko <mhocko@kernel.org> - 2017-06-26 14:50 +0200
      Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Michal Hocko <mhocko@kernel.org> - 2017-06-26 14:20 +0200
    Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by  __GFP_RETRY_MAYFAIL with more useful semantic Vlastimil Babka <vbabka@suse.cz> - 2017-06-26 14:00 +0200

csiph-web