* [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
@ 2026-07-25 13:28 Alexey Dobriyan
2026-07-27 5:27 ` Harry Yoo
2026-07-27 15:52 ` Christoph Lameter (Ampere)
0 siblings, 2 replies; 9+ messages in thread
From: Alexey Dobriyan @ 2026-07-25 13:28 UTC (permalink / raw)
To: Vlastimil Babka, Harry Yoo, Andrew Morton
Cc: Hao Li, Christoph Lameter, David Rientjes, Roman Gushchin,
linux-mm
Sysfs "ctor" file prints offset/length of the cache's ctor function
$ sudo cat /sys/kernel/slab/bdev_cache/ctor
init_once+0x0/0x10
This is not useful:
Offset will always be 0 because ctor is a function.
I'm not sure what ctor function size is doing here, it should be in
/proc/kallsyms
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---
mm/slub.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
{
if (!s->ctor)
return 0;
- return sysfs_emit(buf, "%pS\n", s->ctor);
+ return sysfs_emit(buf, "%ps\n", s->ctor);
}
SLAB_ATTR_RO(ctor);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-07-25 13:28 [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor Alexey Dobriyan
@ 2026-07-27 5:27 ` Harry Yoo
2026-07-30 14:15 ` Vlastimil Babka (SUSE)
2026-07-27 15:52 ` Christoph Lameter (Ampere)
1 sibling, 1 reply; 9+ messages in thread
From: Harry Yoo @ 2026-07-27 5:27 UTC (permalink / raw)
To: Alexey Dobriyan, Vlastimil Babka, Andrew Morton
Cc: Hao Li, Christoph Lameter, David Rientjes, Roman Gushchin,
linux-mm
[-- Attachment #1.1: Type: text/plain, Size: 984 bytes --]
On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
> Sysfs "ctor" file prints offset/length of the cache's ctor function
>
> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
> init_once+0x0/0x10
>
> This is not useful:
>
> Offset will always be 0 because ctor is a function.
>
> I'm not sure what ctor function size is doing here, it should be in
> /proc/kallsyms
>
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
I'm not convinced that changing this (without strong justification)
after exposing it to sysfs for 10+ years is worth the trouble.
> mm/slub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
> {
> if (!s->ctor)
> return 0;
> - return sysfs_emit(buf, "%pS\n", s->ctor);
> + return sysfs_emit(buf, "%ps\n", s->ctor);
> }
> SLAB_ATTR_RO(ctor);
>
--
Cheers,
Harry / Hyeonggon
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-07-25 13:28 [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor Alexey Dobriyan
2026-07-27 5:27 ` Harry Yoo
@ 2026-07-27 15:52 ` Christoph Lameter (Ampere)
1 sibling, 0 replies; 9+ messages in thread
From: Christoph Lameter (Ampere) @ 2026-07-27 15:52 UTC (permalink / raw)
To: Alexey Dobriyan
Cc: Vlastimil Babka, Harry Yoo, Andrew Morton, Hao Li, David Rientjes,
Roman Gushchin, linux-mm
Reviewed-by: Christoph Lameter (Ampere) <cl@gentwo.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-07-27 5:27 ` Harry Yoo
@ 2026-07-30 14:15 ` Vlastimil Babka (SUSE)
2026-08-02 5:13 ` Harry Yoo
2026-08-05 9:16 ` Alexey Dobriyan
0 siblings, 2 replies; 9+ messages in thread
From: Vlastimil Babka (SUSE) @ 2026-07-30 14:15 UTC (permalink / raw)
To: Harry Yoo, Alexey Dobriyan, Andrew Morton
Cc: Hao Li, Christoph Lameter, David Rientjes, Roman Gushchin,
linux-mm
On 7/27/26 07:27, Harry Yoo wrote:
>
>
> On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
>> Sysfs "ctor" file prints offset/length of the cache's ctor function
>>
>> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
>> init_once+0x0/0x10
>>
>> This is not useful:
>>
>> Offset will always be 0 because ctor is a function.
>>
>> I'm not sure what ctor function size is doing here, it should be in
>> /proc/kallsyms
>>
>> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
>> ---
>
> I'm not convinced that changing this (without strong justification)
> after exposing it to sysfs for 10+ years is worth the trouble.
Agreed. It's a pity this was exported in the first place. I can't see a
benefit for anyone knowing what the function is called. Should have been at
most a flag whether there's ctor or not.
But possibly a justification is not to leak the function size, which might
be theoretically (although unlikely) a hint to some attack.
Well at least if somebody complains about getting broken, it's trivial to
revert and we can hear about their usecase.
In-tree tools (slabinfo etc) were checked to work properly?
>> mm/slub.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> --- a/mm/slub.c
>> +++ b/mm/slub.c
>> @@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
>> {
>> if (!s->ctor)
>> return 0;
>> - return sysfs_emit(buf, "%pS\n", s->ctor);
>> + return sysfs_emit(buf, "%ps\n", s->ctor);
>> }
>> SLAB_ATTR_RO(ctor);
>>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-07-30 14:15 ` Vlastimil Babka (SUSE)
@ 2026-08-02 5:13 ` Harry Yoo
2026-08-04 17:25 ` Vlastimil Babka (SUSE)
2026-08-05 9:16 ` Alexey Dobriyan
1 sibling, 1 reply; 9+ messages in thread
From: Harry Yoo @ 2026-08-02 5:13 UTC (permalink / raw)
To: Vlastimil Babka (SUSE)
Cc: Alexey Dobriyan, Andrew Morton, Hao Li, Christoph Lameter,
David Rientjes, Roman Gushchin, linux-mm
On Thu, Jul 30, 2026 at 04:15:26PM +0200, Vlastimil Babka (SUSE) wrote:
> On 7/27/26 07:27, Harry Yoo wrote:
> >
> >
> > On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
> >> Sysfs "ctor" file prints offset/length of the cache's ctor function
> >>
> >> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
> >> init_once+0x0/0x10
> >>
> >> This is not useful:
> >>
> >> Offset will always be 0 because ctor is a function.
> >>
> >> I'm not sure what ctor function size is doing here, it should be in
> >> /proc/kallsyms
> >>
> >> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> >> ---
> >
> > I'm not convinced that changing this (without strong justification)
> > after exposing it to sysfs for 10+ years is worth the trouble.
>
> Agreed. It's a pity this was exported in the first place. I can't see a
> benefit for anyone knowing what the function is called. Should have been at
> most a flag whether there's ctor or not.
Agreed.
> But possibly a justification is not to leak the function size, which might
> be theoretically (although unlikely) a hint to some attack.
...but you need to be the owner (root) to read this :P
> Well at least if somebody complains about getting broken, it's trivial to
> revert and we can hear about their usecase.
If we were to experiment with this, we'll change it to print a flag
rather than the ctor's name, right?
> In-tree tools (slabinfo etc) were checked to work properly?
Looks like it doesn't read ctor at all.
Commit a87615b8f9e2 ("SLUB: slabinfo upgrade") added -o/--ops option
that should "Display of ctor / dtor etc.", but it reads "ops" attribute
that has never existed? Bit puzzled.
> >> mm/slub.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> --- a/mm/slub.c
> >> +++ b/mm/slub.c
> >> @@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
> >> {
> >> if (!s->ctor)
> >> return 0;
> >> - return sysfs_emit(buf, "%pS\n", s->ctor);
> >> + return sysfs_emit(buf, "%ps\n", s->ctor);
> >> }
> >> SLAB_ATTR_RO(ctor);
--
Cheers,
Harry / Hyeonggon
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-08-02 5:13 ` Harry Yoo
@ 2026-08-04 17:25 ` Vlastimil Babka (SUSE)
2026-08-05 9:22 ` Alexey Dobriyan
0 siblings, 1 reply; 9+ messages in thread
From: Vlastimil Babka (SUSE) @ 2026-08-04 17:25 UTC (permalink / raw)
To: Harry Yoo
Cc: Alexey Dobriyan, Andrew Morton, Hao Li, Christoph Lameter,
David Rientjes, Roman Gushchin, linux-mm
On 8/2/26 07:13, Harry Yoo wrote:
> On Thu, Jul 30, 2026 at 04:15:26PM +0200, Vlastimil Babka (SUSE) wrote:
>> On 7/27/26 07:27, Harry Yoo wrote:
>> >
>> >
>> > On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
>> >> Sysfs "ctor" file prints offset/length of the cache's ctor function
>> >>
>> >> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
>> >> init_once+0x0/0x10
>> >>
>> >> This is not useful:
>> >>
>> >> Offset will always be 0 because ctor is a function.
>> >>
>> >> I'm not sure what ctor function size is doing here, it should be in
>> >> /proc/kallsyms
>> >>
>> >> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
>> >> ---
>> >
>> > I'm not convinced that changing this (without strong justification)
>> > after exposing it to sysfs for 10+ years is worth the trouble.
>>
>> Agreed. It's a pity this was exported in the first place. I can't see a
>> benefit for anyone knowing what the function is called. Should have been at
>> most a flag whether there's ctor or not.
>
> Agreed.
>
>> But possibly a justification is not to leak the function size, which might
>> be theoretically (although unlikely) a hint to some attack.
>
> ...but you need to be the owner (root) to read this :P
>
>> Well at least if somebody complains about getting broken, it's trivial to
>> revert and we can hear about their usecase.
>
> If we were to experiment with this, we'll change it to print a flag
> rather than the ctor's name, right?
Yep, let's try that. Alexey?
>> In-tree tools (slabinfo etc) were checked to work properly?
>
> Looks like it doesn't read ctor at all.
>
> Commit a87615b8f9e2 ("SLUB: slabinfo upgrade") added -o/--ops option
> that should "Display of ctor / dtor etc.", but it reads "ops" attribute
> that has never existed? Bit puzzled.
Might have been stale code from some previous revisions that included dtor.
>> >> mm/slub.c | 2 +-
>> >> 1 file changed, 1 insertion(+), 1 deletion(-)
>> >>
>> >> --- a/mm/slub.c
>> >> +++ b/mm/slub.c
>> >> @@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
>> >> {
>> >> if (!s->ctor)
>> >> return 0;
>> >> - return sysfs_emit(buf, "%pS\n", s->ctor);
>> >> + return sysfs_emit(buf, "%ps\n", s->ctor);
>> >> }
>> >> SLAB_ATTR_RO(ctor);
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-07-30 14:15 ` Vlastimil Babka (SUSE)
2026-08-02 5:13 ` Harry Yoo
@ 2026-08-05 9:16 ` Alexey Dobriyan
1 sibling, 0 replies; 9+ messages in thread
From: Alexey Dobriyan @ 2026-08-05 9:16 UTC (permalink / raw)
To: Vlastimil Babka (SUSE)
Cc: Harry Yoo, Andrew Morton, Hao Li, Christoph Lameter,
David Rientjes, Roman Gushchin, linux-mm
On Thu, Jul 30, 2026 at 04:15:26PM +0200, Vlastimil Babka (SUSE) wrote:
> On 7/27/26 07:27, Harry Yoo wrote:
> >
> >
> > On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
> >> Sysfs "ctor" file prints offset/length of the cache's ctor function
> >>
> >> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
> >> init_once+0x0/0x10
> >>
> >> This is not useful:
> >>
> >> Offset will always be 0 because ctor is a function.
> >>
> >> I'm not sure what ctor function size is doing here, it should be in
> >> /proc/kallsyms
> >>
> >> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> >> ---
> >
> > I'm not convinced that changing this (without strong justification)
> > after exposing it to sysfs for 10+ years is worth the trouble.
>
> Agreed. It's a pity this was exported in the first place. I can't see a
> benefit for anyone knowing what the function is called. Should have been at
> most a flag whether there's ctor or not.
> But possibly a justification is not to leak the function size, which might
> be theoretically (although unlikely) a hint to some attack.
Leaking size is a problem for custom kernels but not a problem
for distro kernels. Original format can be put under CAP_SYS_ADMIN.
> Well at least if somebody complains about getting broken, it's trivial to
> revert and we can hear about their usecase.
> In-tree tools (slabinfo etc) were checked to work properly?
I tried to google and grep my local git collection and found nothing.
> >> - return sysfs_emit(buf, "%pS\n", s->ctor);
> >> + return sysfs_emit(buf, "%ps\n", s->ctor);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-08-04 17:25 ` Vlastimil Babka (SUSE)
@ 2026-08-05 9:22 ` Alexey Dobriyan
2026-08-06 6:10 ` Harry Yoo
0 siblings, 1 reply; 9+ messages in thread
From: Alexey Dobriyan @ 2026-08-05 9:22 UTC (permalink / raw)
To: Vlastimil Babka (SUSE)
Cc: Harry Yoo, Andrew Morton, Hao Li, Christoph Lameter,
David Rientjes, Roman Gushchin, linux-mm
On Tue, Aug 04, 2026 at 07:25:15PM +0200, Vlastimil Babka (SUSE) wrote:
> On 8/2/26 07:13, Harry Yoo wrote:
> > On Thu, Jul 30, 2026 at 04:15:26PM +0200, Vlastimil Babka (SUSE) wrote:
> >> On 7/27/26 07:27, Harry Yoo wrote:
> >> >
> >> >
> >> > On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
> >> >> Sysfs "ctor" file prints offset/length of the cache's ctor function
> >> >>
> >> >> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
> >> >> init_once+0x0/0x10
> >> >>
> >> >> This is not useful:
> >> >>
> >> >> Offset will always be 0 because ctor is a function.
> >> >>
> >> >> I'm not sure what ctor function size is doing here, it should be in
> >> >> /proc/kallsyms
> >> >>
> >> >> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> >> >> ---
> >> >
> >> > I'm not convinced that changing this (without strong justification)
> >> > after exposing it to sysfs for 10+ years is worth the trouble.
> >>
> >> Agreed. It's a pity this was exported in the first place. I can't see a
> >> benefit for anyone knowing what the function is called. Should have been at
> >> most a flag whether there's ctor or not.
> >
> > Agreed.
> >
> >> But possibly a justification is not to leak the function size, which might
> >> be theoretically (although unlikely) a hint to some attack.
> >
> > ...but you need to be the owner (root) to read this :P
> >
> >> Well at least if somebody complains about getting broken, it's trivial to
> >> revert and we can hear about their usecase.
> >
> > If we were to experiment with this, we'll change it to print a flag
> > rather than the ctor's name, right?
>
> Yep, let's try that. Alexey?
I don't mind ctor name, it is internal implementation detail,
but offset/size are kind of useless.
My order of preferences is
1) delete +0x0/... part altogeter,
2) when someone complains, restore it as "+0x0/0x4" which is a minimum
function size across all archs (or some other fixed fake size).
>
> >> In-tree tools (slabinfo etc) were checked to work properly?
> >
> > Looks like it doesn't read ctor at all.
> >
> > Commit a87615b8f9e2 ("SLUB: slabinfo upgrade") added -o/--ops option
> > that should "Display of ctor / dtor etc.", but it reads "ops" attribute
> > that has never existed? Bit puzzled.
>
> Might have been stale code from some previous revisions that included dtor.
>
> >> >> mm/slub.c | 2 +-
> >> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >> >>
> >> >> --- a/mm/slub.c
> >> >> +++ b/mm/slub.c
> >> >> @@ -9149,7 +9149,7 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
> >> >> {
> >> >> if (!s->ctor)
> >> >> return 0;
> >> >> - return sysfs_emit(buf, "%pS\n", s->ctor);
> >> >> + return sysfs_emit(buf, "%ps\n", s->ctor);
> >> >> }
> >> >> SLAB_ATTR_RO(ctor);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor
2026-08-05 9:22 ` Alexey Dobriyan
@ 2026-08-06 6:10 ` Harry Yoo
0 siblings, 0 replies; 9+ messages in thread
From: Harry Yoo @ 2026-08-06 6:10 UTC (permalink / raw)
To: Alexey Dobriyan
Cc: Vlastimil Babka (SUSE), Andrew Morton, Hao Li, Christoph Lameter,
David Rientjes, Roman Gushchin, linux-mm
On Wed, Aug 05, 2026 at 12:22:42PM +0300, Alexey Dobriyan wrote:
> On Tue, Aug 04, 2026 at 07:25:15PM +0200, Vlastimil Babka (SUSE) wrote:
> > On 8/2/26 07:13, Harry Yoo wrote:
> > > On Thu, Jul 30, 2026 at 04:15:26PM +0200, Vlastimil Babka (SUSE) wrote:
> > >> On 7/27/26 07:27, Harry Yoo wrote:
> > >> >
> > >> >
> > >> > On 7/25/26 10:28 PM, Alexey Dobriyan wrote:
> > >> >> Sysfs "ctor" file prints offset/length of the cache's ctor function
> > >> >>
> > >> >> $ sudo cat /sys/kernel/slab/bdev_cache/ctor
> > >> >> init_once+0x0/0x10
> > >> >>
> > >> >> This is not useful:
> > >> >>
> > >> >> Offset will always be 0 because ctor is a function.
> > >> >>
> > >> >> I'm not sure what ctor function size is doing here, it should be in
> > >> >> /proc/kallsyms
> > >> >>
> > >> >> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > >> >> ---
> > >> >
> > >> > I'm not convinced that changing this (without strong justification)
> > >> > after exposing it to sysfs for 10+ years is worth the trouble.
> > >>
> > >> Agreed. It's a pity this was exported in the first place. I can't see a
> > >> benefit for anyone knowing what the function is called. Should have been at
> > >> most a flag whether there's ctor or not.
> > >
> > > Agreed.
> > >
> > >> But possibly a justification is not to leak the function size, which might
> > >> be theoretically (although unlikely) a hint to some attack.
> > >
> > > ...but you need to be the owner (root) to read this :P
> > >
> > >> Well at least if somebody complains about getting broken, it's trivial to
> > >> revert and we can hear about their usecase.
> > >
> > > If we were to experiment with this, we'll change it to print a flag
> > > rather than the ctor's name, right?
> >
> > Yep, let's try that. Alexey?
>
> I don't mind ctor name, it is internal implementation detail,
> but offset/size are kind of useless.
I thought Vlastimil meant ctor name is also useless and suggested
it making it a flag (0/1) to represent whether the cache has a ctor or
not.
Or do you think there's a scenario where ctor name is useful to know?
--
Cheers,
Harry / Hyeonggon
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-08-06 6:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-25 13:28 [PATCH] slub: print just the function name in /sys/kernel/slab/*/ctor Alexey Dobriyan
2026-07-27 5:27 ` Harry Yoo
2026-07-30 14:15 ` Vlastimil Babka (SUSE)
2026-08-02 5:13 ` Harry Yoo
2026-08-04 17:25 ` Vlastimil Babka (SUSE)
2026-08-05 9:22 ` Alexey Dobriyan
2026-08-06 6:10 ` Harry Yoo
2026-08-05 9:16 ` Alexey Dobriyan
2026-07-27 15:52 ` Christoph Lameter (Ampere)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox