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

[PATCH] slab: kmalloc, kzalloc comments cleanup and fix

- Move comments for kmalloc to right place, currently it near __do_kmalloc

- Comments for kzalloc

- More detailed comments for kmalloc

- Appearance of "kmalloc" and "kzalloc" man pages after "make mandocs"

[rdunlap@xenotime.net: simplification]
Signed-off-by: Paul Drynoff <pauldrynoff@gmail.com>
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Paul Drynoff and committed by
Linus Torvalds
800590f5 5a4d4361

+53 -18
+1
Documentation/DocBook/kernel-api.tmpl
··· 117 117 <chapter id="mm"> 118 118 <title>Memory Management in Linux</title> 119 119 <sect1><title>The Slab Cache</title> 120 + !Iinclude/linux/slab.h 120 121 !Emm/slab.c 121 122 </sect1> 122 123 <sect1><title>User Space Memory Access</title>
+50
include/linux/slab.h
··· 86 86 __kmalloc_track_caller(size, flags, __builtin_return_address(0)) 87 87 #endif 88 88 89 + /** 90 + * kmalloc - allocate memory 91 + * @size: how many bytes of memory are required. 92 + * @flags: the type of memory to allocate. 93 + * 94 + * kmalloc is the normal method of allocating memory 95 + * in the kernel. 96 + * 97 + * The @flags argument may be one of: 98 + * 99 + * %GFP_USER - Allocate memory on behalf of user. May sleep. 100 + * 101 + * %GFP_KERNEL - Allocate normal kernel ram. May sleep. 102 + * 103 + * %GFP_ATOMIC - Allocation will not sleep. 104 + * For example, use this inside interrupt handlers. 105 + * 106 + * %GFP_HIGHUSER - Allocate pages from high memory. 107 + * 108 + * %GFP_NOIO - Do not do any I/O at all while trying to get memory. 109 + * 110 + * %GFP_NOFS - Do not make any fs calls while trying to get memory. 111 + * 112 + * Also it is possible to set different flags by OR'ing 113 + * in one or more of the following additional @flags: 114 + * 115 + * %__GFP_COLD - Request cache-cold pages instead of 116 + * trying to return cache-warm pages. 117 + * 118 + * %__GFP_DMA - Request memory from the DMA-capable zone. 119 + * 120 + * %__GFP_HIGH - This allocation has high priority and may use emergency pools. 121 + * 122 + * %__GFP_HIGHMEM - Allocated memory may be from highmem. 123 + * 124 + * %__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail 125 + * (think twice before using). 126 + * 127 + * %__GFP_NORETRY - If memory is not immediately available, 128 + * then give up at once. 129 + * 130 + * %__GFP_NOWARN - If allocation fails, don't issue any warnings. 131 + * 132 + * %__GFP_REPEAT - If allocation fails initially, try once more before failing. 133 + */ 89 134 static inline void *kmalloc(size_t size, gfp_t flags) 90 135 { 91 136 if (__builtin_constant_p(size)) { ··· 156 111 157 112 extern void *__kzalloc(size_t, gfp_t); 158 113 114 + /** 115 + * kzalloc - allocate memory. The memory is set to zero. 116 + * @size: how many bytes of memory are required. 117 + * @flags: the type of memory to allocate (see kmalloc). 118 + */ 159 119 static inline void *kzalloc(size_t size, gfp_t flags) 160 120 { 161 121 if (__builtin_constant_p(size)) {
+2 -18
mm/slab.c
··· 3277 3277 #endif 3278 3278 3279 3279 /** 3280 - * kmalloc - allocate memory 3280 + * __do_kmalloc - allocate memory 3281 3281 * @size: how many bytes of memory are required. 3282 - * @flags: the type of memory to allocate. 3282 + * @flags: the type of memory to allocate (see kmalloc). 3283 3283 * @caller: function caller for debug tracking of the caller 3284 - * 3285 - * kmalloc is the normal method of allocating memory 3286 - * in the kernel. 3287 - * 3288 - * The @flags argument may be one of: 3289 - * 3290 - * %GFP_USER - Allocate memory on behalf of user. May sleep. 3291 - * 3292 - * %GFP_KERNEL - Allocate normal kernel ram. May sleep. 3293 - * 3294 - * %GFP_ATOMIC - Allocation will not sleep. Use inside interrupt handlers. 3295 - * 3296 - * Additionally, the %GFP_DMA flag may be set to indicate the memory 3297 - * must be suitable for DMA. This can mean different things on different 3298 - * platforms. For example, on i386, it means that the memory must come 3299 - * from the first 16MB. 3300 3284 */ 3301 3285 static __always_inline void *__do_kmalloc(size_t size, gfp_t flags, 3302 3286 void *caller)