Thread (3 messages) 3 messages, 3 authors, 2021-03-19

Re: [PATCH v2] mm: slub: Convert sys slab alloc_calls, free_calls to bin attribute

From: Faiyaz Mohammed <hidden>
Date: 2021-03-19 05:29:11

Hi,

Sorry for late response!

On 3/2/2021 6:41 PM, Greg Kroah-Hartman wrote:
On Tue, Mar 02, 2021 at 01:59:46PM +0100, Vlastimil Babka wrote:
quoted
On 2/17/21 7:31 AM, Faiyaz Mohammed wrote:
quoted
Reading the sys slab alloc_calls, free_calls returns the available object
owners, but the size of this file is limited to PAGE_SIZE
because of the limitation of sysfs attributes, it is returning the
partial owner info, which is not sufficient to debug/account the slab
memory and alloc_calls output is not matching with /proc/slabinfo.

To remove the PAGE_SIZE limitation converted the sys slab
alloc_calls, free_calls to bin attribut

Signed-off-by: Faiyaz Mohammed <redacted>
After discussing this with Greg and PeterZ, sysfs should be one value per file,
and is just not proper API for this kind of info. We should reimplement at least
these clearly debugging "attributes" in debugfs, where they belong, instead of
trying to hack around the limitation in sysfs.
sysfs is _REQUIRED_ to be "one value per file", any kernel code that
abuses this needs to be fixed up.

Why are these slab files in sysfs at all anyway?  They all feel like
debugging stuff to me, why not move everything to debugfs?  Would make
for a lot less code overall.
Yes, we can move the /sys/kernel/slab/kmemcache/alloc_calls and
/sys/kernel/slab/kmemcache/free_calls implementation to debugfs but is
it okay to move only alloc_calls and free_calls? or we have to move
whole sysfs interface to debugfs?.

If we are moving only alloc_calls/free_calls interface to debugfs then I
think we can add all slab objects data into single file.

For example: /sys/kernel/debugfs/slab/alloc_calls, which will print all
slab objects data.

Example Output: alloc_list: call_site=__request_region+0xb4/0x2f0
count=228 object_size=128 slab_size=640 slab_name=kmalloc-128

or

We can have just like current sysfs interface, have separate
alloc_calls/free_calls traces per kmem cache.

Which one would be better?.
Thanks and regards,
Mohammed Faiyaz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help