Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: core-api/gfp_mask-from-fs-io: indicate that vmalloc supports GFP_NOFS/GFP_NOIO

After the commit 451769ebb7e79 ("mm/vmalloc: alloc GFP_NO{FS,IO} for
vmalloc") in v5.17 it is now safe to use GFP_NOFS/GFP_NOIO flags
in [k]vmalloc, let's reflect it in documentation.

Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20241119093922.567138-1-ptikhomirov@virtuozzo.com

authored by

Pavel Tikhomirov and committed by
Jonathan Corbet
21e50013 9e6c5870

+11 -9
+11 -9
Documentation/core-api/gfp_mask-from-fs-io.rst
··· 55 55 What about __vmalloc(GFP_NOFS) 56 56 ============================== 57 57 58 - vmalloc doesn't support GFP_NOFS semantic because there are hardcoded 59 - GFP_KERNEL allocations deep inside the allocator which are quite non-trivial 60 - to fix up. That means that calling ``vmalloc`` with GFP_NOFS/GFP_NOIO is 61 - almost always a bug. The good news is that the NOFS/NOIO semantic can be 62 - achieved by the scope API. 58 + Since v5.17, and specifically after the commit 451769ebb7e79 ("mm/vmalloc: 59 + alloc GFP_NO{FS,IO} for vmalloc"), GFP_NOFS/GFP_NOIO are now supported in 60 + ``[k]vmalloc`` by implicitly using scope API. 61 + 62 + In earlier kernels ``vmalloc`` didn't support GFP_NOFS semantic because there 63 + were hardcoded GFP_KERNEL allocations deep inside the allocator. That means 64 + that calling ``vmalloc`` with GFP_NOFS/GFP_NOIO was almost always a bug. 63 65 64 66 In the ideal world, upper layers should already mark dangerous contexts 65 - and so no special care is required and vmalloc should be called without 66 - any problems. Sometimes if the context is not really clear or there are 67 - layering violations then the recommended way around that is to wrap ``vmalloc`` 68 - by the scope API with a comment explaining the problem. 67 + and so no special care is required and ``vmalloc`` should be called without any 68 + problems. Sometimes if the context is not really clear or there are layering 69 + violations then the recommended way around that (on pre-v5.17 kernels) is to 70 + wrap ``vmalloc`` by the scope API with a comment explaining the problem.