2013-06-25 16:17:06

by Michael Opdenacker

[permalink] [raw]
Subject: [PATCH] slab: add kmalloc() to kernel API documentation

At the moment, kmalloc() isn't even listed in the kernel API
documentation (DocBook/kernel-api.html after running "make htmldocs").

Another issue is that the documentation for kmalloc_node()
refers to kcalloc()'s documentation to describe its 'flags' parameter,
while kcalloc() refered to kmalloc()'s documentation, which doesn't exist!

This patch is a proposed fix for this. It also removes the documentation
for kmalloc() in include/linux/slob_def.h which isn't included to
generate the documentation anyway. This way, kmalloc() is described
in only one place.

Signed-off-by: Michael Opdenacker <[email protected]>
---
include/linux/slab.h | 18 ++++++++++++++----
include/linux/slob_def.h | 8 --------
2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/include/linux/slab.h b/include/linux/slab.h
index 0c62175..dffc7a2 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -356,9 +356,8 @@ int cache_show(struct kmem_cache *s, struct seq_file *m);
void print_slabinfo_header(struct seq_file *m);

/**
- * kmalloc_array - allocate memory for an array.
- * @n: number of elements.
- * @size: element size.
+ * kmalloc - allocate memory
+ * @size: how many bytes of memory are required.
* @flags: the type of memory to allocate.
*
* The @flags argument may be one of:
@@ -405,6 +404,17 @@ void print_slabinfo_header(struct seq_file *m);
* There are other flags available as well, but these are not intended
* for general use, and so are not documented here. For a full list of
* potential flags, always refer to linux/gfp.h.
+ *
+ * kmalloc is the normal method of allocating memory
+ * in the kernel.
+ */
+static __always_inline void *kmalloc(size_t size, gfp_t flags);
+
+/**
+ * kmalloc_array - allocate memory for an array.
+ * @n: number of elements.
+ * @size: element size.
+ * @flags: the type of memory to allocate (see kmalloc).
*/
static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
{
@@ -428,7 +438,7 @@ static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
/**
* kmalloc_node - allocate memory from a specific node
* @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kcalloc).
+ * @flags: the type of memory to allocate (see kmalloc).
* @node: node to allocate from.
*
* kmalloc() for non-local nodes, used to allocate from a specific node
diff --git a/include/linux/slob_def.h b/include/linux/slob_def.h
index f28e14a..095a5a4 100644
--- a/include/linux/slob_def.h
+++ b/include/linux/slob_def.h
@@ -18,14 +18,6 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
return __kmalloc_node(size, flags, node);
}

-/**
- * kmalloc - allocate memory
- * @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kcalloc).
- *
- * kmalloc is the normal method of allocating memory
- * in the kernel.
- */
static __always_inline void *kmalloc(size_t size, gfp_t flags)
{
return __kmalloc_node(size, flags, NUMA_NO_NODE);
--
1.8.1.2


2013-06-25 17:38:22

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] slab: add kmalloc() to kernel API documentation

On 06/25/13 09:16, Michael Opdenacker wrote:
> At the moment, kmalloc() isn't even listed in the kernel API
> documentation (DocBook/kernel-api.html after running "make htmldocs").
>
> Another issue is that the documentation for kmalloc_node()
> refers to kcalloc()'s documentation to describe its 'flags' parameter,
> while kcalloc() refered to kmalloc()'s documentation, which doesn't exist!
>
> This patch is a proposed fix for this. It also removes the documentation
> for kmalloc() in include/linux/slob_def.h which isn't included to
> generate the documentation anyway. This way, kmalloc() is described
> in only one place.
>
> Signed-off-by: Michael Opdenacker <[email protected]>\

Acked-by: Randy Dunlap <[email protected]>

Thanks.


> ---
> include/linux/slab.h | 18 ++++++++++++++----
> include/linux/slob_def.h | 8 --------
> 2 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/slab.h b/include/linux/slab.h
> index 0c62175..dffc7a2 100644
> --- a/include/linux/slab.h
> +++ b/include/linux/slab.h
> @@ -356,9 +356,8 @@ int cache_show(struct kmem_cache *s, struct seq_file *m);
> void print_slabinfo_header(struct seq_file *m);
>
> /**
> - * kmalloc_array - allocate memory for an array.
> - * @n: number of elements.
> - * @size: element size.
> + * kmalloc - allocate memory
> + * @size: how many bytes of memory are required.
> * @flags: the type of memory to allocate.
> *
> * The @flags argument may be one of:
> @@ -405,6 +404,17 @@ void print_slabinfo_header(struct seq_file *m);
> * There are other flags available as well, but these are not intended
> * for general use, and so are not documented here. For a full list of
> * potential flags, always refer to linux/gfp.h.
> + *
> + * kmalloc is the normal method of allocating memory
> + * in the kernel.
> + */
> +static __always_inline void *kmalloc(size_t size, gfp_t flags);
> +
> +/**
> + * kmalloc_array - allocate memory for an array.
> + * @n: number of elements.
> + * @size: element size.
> + * @flags: the type of memory to allocate (see kmalloc).
> */
> static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
> {
> @@ -428,7 +438,7 @@ static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
> /**
> * kmalloc_node - allocate memory from a specific node
> * @size: how many bytes of memory are required.
> - * @flags: the type of memory to allocate (see kcalloc).
> + * @flags: the type of memory to allocate (see kmalloc).
> * @node: node to allocate from.
> *
> * kmalloc() for non-local nodes, used to allocate from a specific node
> diff --git a/include/linux/slob_def.h b/include/linux/slob_def.h
> index f28e14a..095a5a4 100644
> --- a/include/linux/slob_def.h
> +++ b/include/linux/slob_def.h
> @@ -18,14 +18,6 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
> return __kmalloc_node(size, flags, node);
> }
>
> -/**
> - * kmalloc - allocate memory
> - * @size: how many bytes of memory are required.
> - * @flags: the type of memory to allocate (see kcalloc).
> - *
> - * kmalloc is the normal method of allocating memory
> - * in the kernel.
> - */
> static __always_inline void *kmalloc(size_t size, gfp_t flags)
> {
> return __kmalloc_node(size, flags, NUMA_NO_NODE);
>


--
~Randy

Subject: Re: [PATCH] slab: add kmalloc() to kernel API documentation

On Tue, 25 Jun 2013, Michael Opdenacker wrote:

> This patch is a proposed fix for this. It also removes the documentation
> for kmalloc() in include/linux/slob_def.h which isn't included to
> generate the documentation anyway. This way, kmalloc() is described
> in only one place.

Acked-by: Christoph Lameter <[email protected]>

Note that this will conflict with one of my pending patches that also
addresses one of these issues but this work is much more comprehensive.

2013-07-07 16:03:50

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH] slab: add kmalloc() to kernel API documentation

On Mon, Jul 1, 2013 at 9:41 PM, Christoph Lameter <[email protected]> wrote:
> On Tue, 25 Jun 2013, Michael Opdenacker wrote:
>
>> This patch is a proposed fix for this. It also removes the documentation
>> for kmalloc() in include/linux/slob_def.h which isn't included to
>> generate the documentation anyway. This way, kmalloc() is described
>> in only one place.
>
> Acked-by: Christoph Lameter <[email protected]>

Applied, thanks!