* [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; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ 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
0 siblings, 1 reply; 5+ 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] 5+ 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
0 siblings, 0 replies; 5+ 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] 5+ messages in thread
end of thread, other threads:[~2026-08-02 5:13 UTC | newest]
Thread overview: 5+ 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-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