[PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails

Usama Arif posted 1 patch 6 months, 3 weeks ago
mm/slub.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
[PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Usama Arif 6 months, 3 weeks ago
In memory bound systems, a large number of warnings for failing this
allocation repeatedly may mask any real issues in the system
during memory pressure being reported in dmesg. Change this to
warning only once.

Signed-off-by: Usama Arif <usamaarif642@gmail.com>
Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
Closes: https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/
---
v2 -> v3:
- Put warning back, but only warn once with pr_warn_once.
v1 -> v2:
- remove the warning completely. We will have a way in the
  future to indicate that the mem alloc profile is inaccurate.
---
 mm/slub.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index dc9e729e1d26..36d7c43a6f2a 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2102,10 +2102,12 @@ prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
 
 	slab = virt_to_slab(p);
 	if (!slab_obj_exts(slab) &&
-	    WARN(alloc_slab_obj_exts(slab, s, flags, false),
-		 "%s, %s: Failed to create slab extension vector!\n",
-		 __func__, s->name))
+	    alloc_slab_obj_exts(slab, s, flags, false)) {
+		pr_warn_once("%s, %s: Failed to create slab extension vector!\n",
+			__func__, s->name);
 		return NULL;
+	}
+
 
 	return slab_obj_exts(slab) + obj_to_index(s, slab, p);
 }
-- 
2.47.1
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Roman Gushchin 6 months, 2 weeks ago
Usama Arif <usamaarif642@gmail.com> writes:

> In memory bound systems, a large number of warnings for failing this
> allocation repeatedly may mask any real issues in the system
> during memory pressure being reported in dmesg. Change this to
> warning only once.
>
> Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> Closes: https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/

Acked-by: Roman Gushchin <roman.gushchin@linux.dev>

Thanks!
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Harry Yoo 6 months, 3 weeks ago
On Fri, May 23, 2025 at 05:52:40PM +0100, Usama Arif wrote:
> In memory bound systems, a large number of warnings for failing this
> allocation repeatedly may mask any real issues in the system
> during memory pressure being reported in dmesg. Change this to
> warning only once.
> 
> Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> Closes: https://urldefense.com/v3/__https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/__;!!ACWV5N9M2RV99hQ!Nv5xX_X4cBQR_HUDO6qfamxI0GEW1eFRCpPj29lANRashIUJDrEWAjU7vlys76FH0voShW07CjpDkzSST46Irg$ 
> ---

Acked-by: Harry Yoo <harry.yoo@oracle.com>

> v2 -> v3:
> - Put warning back, but only warn once with pr_warn_once.
> v1 -> v2:
> - remove the warning completely. We will have a way in the
>   future to indicate that the mem alloc profile is inaccurate.
> ---
>  mm/slub.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/mm/slub.c b/mm/slub.c
> index dc9e729e1d26..36d7c43a6f2a 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -2102,10 +2102,12 @@ prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
>  
>  	slab = virt_to_slab(p);
>  	if (!slab_obj_exts(slab) &&
> -	    WARN(alloc_slab_obj_exts(slab, s, flags, false),
> -		 "%s, %s: Failed to create slab extension vector!\n",
> -		 __func__, s->name))
> +	    alloc_slab_obj_exts(slab, s, flags, false)) {
> +		pr_warn_once("%s, %s: Failed to create slab extension vector!\n",
> +			__func__, s->name);
>  		return NULL;
> +	}
> +
>  
>  	return slab_obj_exts(slab) + obj_to_index(s, slab, p);
>  }
> -- 
> 2.47.1
> 

-- 
Cheers,
Harry / Hyeonggon
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Suren Baghdasaryan 6 months, 2 weeks ago
On Mon, May 26, 2025 at 3:05 AM Harry Yoo <harry.yoo@oracle.com> wrote:
>
> On Fri, May 23, 2025 at 05:52:40PM +0100, Usama Arif wrote:
> > In memory bound systems, a large number of warnings for failing this
> > allocation repeatedly may mask any real issues in the system
> > during memory pressure being reported in dmesg. Change this to
> > warning only once.
> >
> > Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> > Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> > Closes: https://urldefense.com/v3/__https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/__;!!ACWV5N9M2RV99hQ!Nv5xX_X4cBQR_HUDO6qfamxI0GEW1eFRCpPj29lANRashIUJDrEWAjU7vlys76FH0voShW07CjpDkzSST46Irg$
> > ---
>
> Acked-by: Harry Yoo <harry.yoo@oracle.com>

Acked-by: Suren Baghdasaryan <surenb@google.com>

>
> > v2 -> v3:
> > - Put warning back, but only warn once with pr_warn_once.
> > v1 -> v2:
> > - remove the warning completely. We will have a way in the
> >   future to indicate that the mem alloc profile is inaccurate.
> > ---
> >  mm/slub.c | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/mm/slub.c b/mm/slub.c
> > index dc9e729e1d26..36d7c43a6f2a 100644
> > --- a/mm/slub.c
> > +++ b/mm/slub.c
> > @@ -2102,10 +2102,12 @@ prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
> >
> >       slab = virt_to_slab(p);
> >       if (!slab_obj_exts(slab) &&
> > -         WARN(alloc_slab_obj_exts(slab, s, flags, false),
> > -              "%s, %s: Failed to create slab extension vector!\n",
> > -              __func__, s->name))
> > +         alloc_slab_obj_exts(slab, s, flags, false)) {
> > +             pr_warn_once("%s, %s: Failed to create slab extension vector!\n",
> > +                     __func__, s->name);
> >               return NULL;
> > +     }
> > +
> >
> >       return slab_obj_exts(slab) + obj_to_index(s, slab, p);
> >  }
> > --
> > 2.47.1
> >
>
> --
> Cheers,
> Harry / Hyeonggon
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Vlastimil Babka 6 months, 3 weeks ago
On 5/23/25 18:52, Usama Arif wrote:
> In memory bound systems, a large number of warnings for failing this
> allocation repeatedly may mask any real issues in the system
> during memory pressure being reported in dmesg. Change this to
> warning only once.
> 
> Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> Closes: https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/
> ---
> v2 -> v3:
> - Put warning back, but only warn once with pr_warn_once.
> v1 -> v2:
> - remove the warning completely. We will have a way in the
>   future to indicate that the mem alloc profile is inaccurate.
> ---
>  mm/slub.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/mm/slub.c b/mm/slub.c
> index dc9e729e1d26..36d7c43a6f2a 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -2102,10 +2102,12 @@ prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
>  
>  	slab = virt_to_slab(p);
>  	if (!slab_obj_exts(slab) &&
> -	    WARN(alloc_slab_obj_exts(slab, s, flags, false),
> -		 "%s, %s: Failed to create slab extension vector!\n",
> -		 __func__, s->name))
> +	    alloc_slab_obj_exts(slab, s, flags, false)) {
> +		pr_warn_once("%s, %s: Failed to create slab extension vector!\n",
> +			__func__, s->name);
>  		return NULL;
> +	}
> +

I've removed the extra line locally.

Added to slab/for-next, thanks.

>  
>  	return slab_obj_exts(slab) + obj_to_index(s, slab, p);
>  }
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by SeongJae Park 6 months, 3 weeks ago
On Fri, 23 May 2025 17:52:40 +0100 Usama Arif <usamaarif642@gmail.com> wrote:

> In memory bound systems, a large number of warnings for failing this
> allocation repeatedly may mask any real issues in the system
> during memory pressure being reported in dmesg. Change this to
> warning only once.
> 
> Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> Closes: https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/

Reviewed-by: SeongJae Park <sj@kernel.org>


Thanks,
SJ

[...]
Re: [PATCH v3] mm: slub: only warn once when allocating slab obj extensions fails
Posted by Shakeel Butt 6 months, 3 weeks ago
On Fri, May 23, 2025 at 05:52:40PM +0100, Usama Arif wrote:
> In memory bound systems, a large number of warnings for failing this
> allocation repeatedly may mask any real issues in the system
> during memory pressure being reported in dmesg. Change this to
> warning only once.
> 
> Signed-off-by: Usama Arif <usamaarif642@gmail.com>
> Reported-by: Vlad Poenaru <vlad.wing@gmail.com>
> Closes: https://lore.kernel.org/all/17fab2d6-5a74-4573-bcc3-b75951508f0a@gmail.com/

Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev>