* [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
@ 2025-02-19 10:22 Kohei Enju
2025-02-19 10:32 ` Vlastimil Babka
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Kohei Enju @ 2025-02-19 10:22 UTC (permalink / raw)
To: netdev, linux-kernel
Cc: David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Kuniyuki Iwashima, Gilad Naaman, Joel Granados,
Li Zetao, Christoph Lameter, Pekka Enberg, David Rientjes,
Joonsoo Kim, Andrew Morton, Vlastimil Babka, Roman Gushchin,
Hyeonggon Yoo, Kohei Enju, Kohei Enju
kzalloc() uses page allocator when size is larger than
KMALLOC_MAX_CACHE_SIZE, so the intention of commit ab101c553bc1
("neighbour: use kvzalloc()/kvfree()") can be achieved by using kzalloc().
When using GFP_ATOMIC, kvzalloc() only tries the kmalloc path,
since the vmalloc path does not support the flag.
In this case, kvzalloc() is equivalent to kzalloc() in that neither try
the vmalloc path, so this replacement brings no functional change.
This is primarily a cleanup change, as the original code functions
correctly.
This patch replaces kvzalloc() introduced by commit 41b3caa7c076
("neighbour: Add hlist_node to struct neighbour"), which is called in
the same context and with the same gfp flag as the aforementioned commit
ab101c553bc1 ("neighbour: use kvzalloc()/kvfree()").
Signed-off-by: Kohei Enju <enjuk@amazon.com>
---
Notes:
One of the SLAB maintainers (Vlastimil Babka) looked at v1 patch and
double-checked kzalloc() is clearer in this context:
https://lore.kernel.org/netdev/b4a2bf18-c1ec-4ccd-bed9-671a2fd543a9@suse.cz/
Changes:
v1: https://lore.kernel.org/netdev/20250216163016.57444-1-enjuk@amazon.com/
v1->v2:
- Change commit message
- Remove the Fixes tag since there is no real bug now
---
net/core/neighbour.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index d8dd686b5287..344c9cd168ec 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -518,7 +518,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
if (!ret)
return NULL;
- hash_heads = kvzalloc(size, GFP_ATOMIC);
+ hash_heads = kzalloc(size, GFP_ATOMIC);
if (!hash_heads) {
kfree(ret);
return NULL;
@@ -536,7 +536,7 @@ static void neigh_hash_free_rcu(struct rcu_head *head)
struct neigh_hash_table,
rcu);
- kvfree(nht->hash_heads);
+ kfree(nht->hash_heads);
kfree(nht);
}
--
2.39.5 (Apple Git-154)
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
2025-02-19 10:22 [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified Kohei Enju
@ 2025-02-19 10:32 ` Vlastimil Babka
2025-02-19 11:50 ` Markus Elfring
2025-02-21 1:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Vlastimil Babka @ 2025-02-19 10:32 UTC (permalink / raw)
To: Kohei Enju, netdev, linux-kernel
Cc: David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Kuniyuki Iwashima, Gilad Naaman, Joel Granados,
Li Zetao, Christoph Lameter, Pekka Enberg, David Rientjes,
Joonsoo Kim, Andrew Morton, Roman Gushchin, Hyeonggon Yoo,
Kohei Enju
On 2/19/25 11:22, Kohei Enju wrote:
> kzalloc() uses page allocator when size is larger than
> KMALLOC_MAX_CACHE_SIZE, so the intention of commit ab101c553bc1
> ("neighbour: use kvzalloc()/kvfree()") can be achieved by using kzalloc().
>
> When using GFP_ATOMIC, kvzalloc() only tries the kmalloc path,
> since the vmalloc path does not support the flag.
> In this case, kvzalloc() is equivalent to kzalloc() in that neither try
> the vmalloc path, so this replacement brings no functional change.
> This is primarily a cleanup change, as the original code functions
> correctly.
>
> This patch replaces kvzalloc() introduced by commit 41b3caa7c076
> ("neighbour: Add hlist_node to struct neighbour"), which is called in
> the same context and with the same gfp flag as the aforementioned commit
> ab101c553bc1 ("neighbour: use kvzalloc()/kvfree()").
>
> Signed-off-by: Kohei Enju <enjuk@amazon.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> Notes:
> One of the SLAB maintainers (Vlastimil Babka) looked at v1 patch and
> double-checked kzalloc() is clearer in this context:
> https://lore.kernel.org/netdev/b4a2bf18-c1ec-4ccd-bed9-671a2fd543a9@suse.cz/
>
> Changes:
> v1: https://lore.kernel.org/netdev/20250216163016.57444-1-enjuk@amazon.com/
> v1->v2:
> - Change commit message
> - Remove the Fixes tag since there is no real bug now
> ---
> net/core/neighbour.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/core/neighbour.c b/net/core/neighbour.c
> index d8dd686b5287..344c9cd168ec 100644
> --- a/net/core/neighbour.c
> +++ b/net/core/neighbour.c
> @@ -518,7 +518,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
> if (!ret)
> return NULL;
>
> - hash_heads = kvzalloc(size, GFP_ATOMIC);
> + hash_heads = kzalloc(size, GFP_ATOMIC);
> if (!hash_heads) {
> kfree(ret);
> return NULL;
> @@ -536,7 +536,7 @@ static void neigh_hash_free_rcu(struct rcu_head *head)
> struct neigh_hash_table,
> rcu);
>
> - kvfree(nht->hash_heads);
> + kfree(nht->hash_heads);
> kfree(nht);
> }
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
2025-02-19 10:22 [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified Kohei Enju
2025-02-19 10:32 ` Vlastimil Babka
@ 2025-02-19 11:50 ` Markus Elfring
2025-02-21 1:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Markus Elfring @ 2025-02-19 11:50 UTC (permalink / raw)
To: Kohei Enju, netdev
Cc: Kohei Enju, LKML, Andrew Morton, Christoph Lameter,
David Rientjes, David S . Miller, Eric Dumazet, Gilad Naaman,
Hyeonggon Yoo, Jakub Kicinski, Joel Granados, Joonsoo Kim,
Kuniyuki Iwashima, Li Zetao, Paolo Abeni, Pekka Enberg,
Roman Gushchin, Simon Horman, Vlastimil Babka
…
> This patch replaces …
Thus replace?
See also:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.14-rc3#n94
Regards,
Markus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
2025-02-19 10:22 [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified Kohei Enju
2025-02-19 10:32 ` Vlastimil Babka
2025-02-19 11:50 ` Markus Elfring
@ 2025-02-21 1:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-02-21 1:40 UTC (permalink / raw)
To: Kohei Enju
Cc: netdev, linux-kernel, davem, edumazet, kuba, pabeni, horms,
kuniyu, gnaaman, joel.granados, lizetao1, cl, penberg, rientjes,
iamjoonsoo.kim, akpm, vbabka, roman.gushchin, 42.hyeyoo,
kohei.enju
Hello:
This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 19 Feb 2025 19:22:27 +0900 you wrote:
> kzalloc() uses page allocator when size is larger than
> KMALLOC_MAX_CACHE_SIZE, so the intention of commit ab101c553bc1
> ("neighbour: use kvzalloc()/kvfree()") can be achieved by using kzalloc().
>
> When using GFP_ATOMIC, kvzalloc() only tries the kmalloc path,
> since the vmalloc path does not support the flag.
> In this case, kvzalloc() is equivalent to kzalloc() in that neither try
> the vmalloc path, so this replacement brings no functional change.
> This is primarily a cleanup change, as the original code functions
> correctly.
>
> [...]
Here is the summary with links:
- [net-next,v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
https://git.kernel.org/netdev/net-next/c/ef75d8343bc1
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-02-21 1:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-19 10:22 [PATCH net-next v2] neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified Kohei Enju
2025-02-19 10:32 ` Vlastimil Babka
2025-02-19 11:50 ` Markus Elfring
2025-02-21 1:40 ` patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.