2022-04-09 21:38:56

by JaeSang Yoo

[permalink] [raw]
Subject: [PATCH] mm/slub: remove meaningless node check in ___slab_alloc()

node_match() with node=NUMA_NO_NODE always returns 1.
Duplicate check by goto statement is meaningless. Remove it.

Signed-off-by: JaeSang Yoo <[email protected]>
---
mm/slub.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/mm/slub.c b/mm/slub.c
index 9fe000fd19ca..a65e282b8238 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2913,7 +2913,6 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
*/
if (!node_isset(node, slab_nodes)) {
node = NUMA_NO_NODE;
- goto redo;
} else {
stat(s, ALLOC_NODE_MISMATCH);
goto deactivate_slab;
--
2.25.1


2022-04-12 07:49:47

by Muchun Song

[permalink] [raw]
Subject: Re: [PATCH] mm/slub: remove meaningless node check in ___slab_alloc()

On Sat, Apr 9, 2022 at 10:43 PM JaeSang Yoo <[email protected]> wrote:
>
> node_match() with node=NUMA_NO_NODE always returns 1.
> Duplicate check by goto statement is meaningless. Remove it.
>
> Signed-off-by: JaeSang Yoo <[email protected]>

LGTM.

Reviewed-by: Muchun Song <[email protected]>

2022-04-12 21:34:09

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH] mm/slub: remove meaningless node check in ___slab_alloc()

On 4/9/22 16:42, JaeSang Yoo wrote:
> node_match() with node=NUMA_NO_NODE always returns 1.
> Duplicate check by goto statement is meaningless. Remove it.
>
> Signed-off-by: JaeSang Yoo <[email protected]>

Thanks, added.

> ---
> mm/slub.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/mm/slub.c b/mm/slub.c
> index 9fe000fd19ca..a65e282b8238 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -2913,7 +2913,6 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
> */
> if (!node_isset(node, slab_nodes)) {
> node = NUMA_NO_NODE;
> - goto redo;
> } else {
> stat(s, ALLOC_NODE_MISMATCH);
> goto deactivate_slab;

2022-04-12 21:46:50

by Hyeonggon Yoo

[permalink] [raw]
Subject: Re: [PATCH] mm/slub: remove meaningless node check in ___slab_alloc()

On Sat, Apr 09, 2022 at 11:42:39PM +0900, JaeSang Yoo wrote:
> node_match() with node=NUMA_NO_NODE always returns 1.
> Duplicate check by goto statement is meaningless. Remove it.

Yeah, I think node = NUMA_NO_NODE here is to remove constraints
when later calling get_partial_node() or new_slab().

So no further check is required.

>
> Signed-off-by: JaeSang Yoo <[email protected]>
> ---
> mm/slub.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/mm/slub.c b/mm/slub.c
> index 9fe000fd19ca..a65e282b8238 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -2913,7 +2913,6 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
> */
> if (!node_isset(node, slab_nodes)) {
> node = NUMA_NO_NODE;
> - goto redo;
> } else {
> stat(s, ALLOC_NODE_MISMATCH);
> goto deactivate_slab;
> --
> 2.25.1

Looks good to me.

Reviewed-by: Hyeonggon Yoo <[email protected]>

Thanks!

>
>

--
Thanks,
Hyeonggon

2022-04-13 01:03:35

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mm/slub: remove meaningless node check in ___slab_alloc()

On Sat, 9 Apr 2022, JaeSang Yoo wrote:

> node_match() with node=NUMA_NO_NODE always returns 1.
> Duplicate check by goto statement is meaningless. Remove it.
>
> Signed-off-by: JaeSang Yoo <[email protected]>

Acked-by: David Rientjes <[email protected]>