2009-06-21 07:52:27

by Andrey Borzenkov

[permalink] [raw]
Subject: Why half of slabs are not shown in /proc/slabinfo?

Mandriva kernel 2.6.30 using SLUB:

{pts/1}% grep SLUB /boot/config
CONFIG_SLUB_DEBUG=y
CONFIG_SLUB=y
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set

Some of slabs (e.g. filp) are not shown in /proc/slabinfo; comparing
number of entries under /sys and slabinfo results in

{pts/0}% =ls -1 /sys/kernel/slab | grep -v : | wc -l
131
{pts/0}% wc -l /proc/slabinfo
68 /proc/slabinfo
{pts/0}%

so almost half of the all entries are missing. Is it expected or there
is something wrong here?


Attachments:
signature.asc (197.00 B)
This is a digitally signed message part.

2009-06-21 11:26:23

by Pekka Enberg

[permalink] [raw]
Subject: Re: Why half of slabs are not shown in /proc/slabinfo?

On Sun, Jun 21, 2009 at 10:52 AM, Andrey Borzenkov<[email protected]> wrote:
> Mandriva kernel 2.6.30 using SLUB:
>
> {pts/1}% grep SLUB /boot/config
> CONFIG_SLUB_DEBUG=y
> CONFIG_SLUB=y
> # CONFIG_SLUB_DEBUG_ON is not set
> # CONFIG_SLUB_STATS is not set
>
> Some of slabs (e.g. filp) are not shown in /proc/slabinfo; comparing
> number of entries under /sys and slabinfo results in
>
> {pts/0}% =ls -1 /sys/kernel/slab | grep -v : | wc -l
> 131
> {pts/0}% wc -l /proc/slabinfo
> 68 /proc/slabinfo
> {pts/0}%
>
> so almost half of the all entries are missing. Is it expected or there
> is something wrong here?

Can you post the actual file listing of /sys/kernel/slab and the
contents of /proc/slabinfo?

Pekka

2009-06-21 11:30:18

by Andrey Borzenkov

[permalink] [raw]
Subject: Re: Why half of slabs are not shown in /proc/slabinfo?

On Sunday 21 of June 2009 15:26:15 Pekka Enberg wrote:
> On Sun, Jun 21, 2009 at 10:52 AM, Andrey Borzenkov<[email protected]>
wrote:
> > Mandriva kernel 2.6.30 using SLUB:
> >
> > {pts/1}% grep SLUB /boot/config
> > CONFIG_SLUB_DEBUG=y
> > CONFIG_SLUB=y
> > # CONFIG_SLUB_DEBUG_ON is not set
> > # CONFIG_SLUB_STATS is not set
> >
> > Some of slabs (e.g. filp) are not shown in /proc/slabinfo;
> > comparing number of entries under /sys and slabinfo results in
> >
> > {pts/0}% =ls -1 /sys/kernel/slab | grep -v : | wc -l
> > 131
> > {pts/0}% wc -l /proc/slabinfo
> > 68 /proc/slabinfo
> > {pts/0}%
> >
> > so almost half of the all entries are missing. Is it expected or
> > there is something wrong here?
>
> Can you post the actual file listing of /sys/kernel/slab and the
> contents of /proc/slabinfo?
>

Sure.

{pts/1}% ls -l /sys/kernel/slab
итого 0
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000008/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000016/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000024/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000032/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000040/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000048/
drwxr-xr-x 2 root root 0 2009-06-21 11:29 :0000056/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000064/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000072/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000080/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000096/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000112/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000128/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000160/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000168/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000176/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000192/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000256/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000312/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 :0000320/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000328/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000368/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000384/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 :0000408/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000512/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000544/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000704/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000768/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000832/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0000960/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0001024/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 :0001064/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0002048/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0002272/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 :0002608/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0004096/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0005664/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :0008192/
drwxr-xr-x 2 root root 0 2009-06-20 23:00 :0012288/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :a-0000088/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :a-0000192/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 :a-0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 Acpi-Namespace -> :0000032/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 Acpi-Operand -> :0000072/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 Acpi-Parse -> :0000048/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 Acpi-ParseExt -> :0000072/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 Acpi-State -> :0000080/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 anon_vma/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 arp_cache -> :0000256/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 bdev_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 bio-0 -> :0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 bio_integrity_payload ->
:0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-1 -> :0000016/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-128 -> :0002048/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-16 -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-256 -> :0004096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-4 -> :0000064/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 biovec-64 -> :0001024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 blkdev_integrity -> :0000112/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 blkdev_ioc -> :0000072/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 blkdev_queue -> :0002272/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 blkdev_requests -> :0000368/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 bridge_fdb_cache -> :0000064/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 bsg_cmd -> :0000312/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 buffer_head/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 cfq_io_context -> :0000168/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 cfq_queue -> :0000168/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 cred_jar -> :0000192/
drwxr-xr-x 2 root root 0 2009-06-21 11:29 :d-0000512/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dentry -> :a-0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_io -> :0000032/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_raid1_read_record ->
:0001064/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_rq_clone_bio_info ->
:0000016/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_rq_target_io -> :0000408/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_target_io -> :0000024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dm_uevent -> :0002608/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dnotify_cache -> :0000040/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 dquot -> :a-0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 eventpoll_epi -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 eventpoll_pwq -> :0000072/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 ext2_inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ext2_xattr -> :a-0000088/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 fasync_cache -> :0000024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 fib6_nodes -> :0000064/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 file_lock_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 files_cache -> :0000704/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 filp -> :0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 flow_cache -> :0000096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 fs_cache -> :0000064/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 hugetlbfs_inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 idr_layer_cache -> :0000544/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 inet_peer_cache -> :0000064/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 inotify_event_cache ->
:0000040/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 inotify_watch_cache ->
:0000072/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip6_dst_cache -> :0000320/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip6_mrt_cache -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip_dst_cache -> :0000384/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip_fib_alias -> :0000032/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip_fib_hash -> :0000072/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ip_mrt_cache -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kcopyd_job -> :0000368/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 key_jar -> :0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kiocb -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kioctx -> :0000384/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-1024 -> :0001024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-128 -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-16 -> :0000016/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-192 -> :0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-2048 -> :0002048/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-256 -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-32 -> :0000032/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-4096 -> :0004096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-512 -> :0000512/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-64 -> :0000064/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-8 -> :0000008/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-8192 -> :0008192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc-96 -> :0000096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 kmalloc_dma-512 -> :d-0000512/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 kmem_cache_node/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 mm_struct -> :0000832/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 mnt_cache -> :0000256/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 mqueue_inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 names_cache -> :0004096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 ndisc_cache -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 nsproxy -> :0000048/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 numa_policy -> :0000024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 nv_pte_t -> :0000032/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 nv_stack_t -> :0012288/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 pid -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 posix_timers_cache ->
:0000192/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 proc_inode_cache/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 radix_tree_node/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 RAW -> :0000768/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 RAWv6 -> :0000960/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 reiser_inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 request_sock_TCP -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 request_sock_TCPv6 ->
:0000192/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 scsi_cmd_cache -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 scsi_data_buffer -> :0000024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 scsi_sense_cache -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 secpath_cache -> :0000064/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sgpool-128 -> :0004096/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sgpool-16 -> :0000512/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sgpool-32 -> :0001024/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sgpool-64 -> :0002048/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sgpool-8 -> :0000256/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 shared_policy_node ->
:0000048/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 shmem_inode_cache/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 sighand_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 signal_cache -> :0000960/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sigqueue -> :0000160/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 skbuff_fclone_cache ->
:0000512/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 skbuff_head_cache -> :0000256/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 sock_inode_cache/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 sysfs_dir_cache -> :0000080/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 task_delay_info -> :0000112/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 taskstats -> :0000328/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 task_struct -> :0005664/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 task_xstate -> :0000512/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 TCP/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 tcp_bind_bucket -> :0000032/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 TCPv6/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 tw_sock_TCP/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 tw_sock_TCPv6/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 UDP/
drwxr-xr-x 2 root root 0 2009-06-21 00:46 UDP-Lite/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 UDPLITEv6/
drwxr-xr-x 2 root root 0 2009-06-21 15:28 UDPv6/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 uhci_urb_priv -> :0000056/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 uid_cache -> :0000128/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 UNIX -> :0000768/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 vm_area_struct -> :0000176/
lrwxrwxrwx 1 root root 0 2009-06-21 00:46 xfrm_dst_cache -> :0000384/
{pts/1}%

{pts/1}% cat /proc/slabinfo
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab>
<pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata
<active_slabs> <num_slabs> <sharedavail>
nv_stack_t 30 30 12288 2 8 : tunables 0 0
0 : slabdata 15 15 0
ip6_dst_cache 25 36 320 12 1 : tunables 0 0
0 : slabdata 3 3 0
UDPLITEv6 0 0 960 17 4 : tunables 0 0
0 : slabdata 0 0 0
UDPv6 19 34 960 17 4 : tunables 0 0
0 : slabdata 2 2 0
tw_sock_TCPv6 0 0 192 21 1 : tunables 0 0
0 : slabdata 0 0 0
TCPv6 22 36 1792 18 8 : tunables 0 0
0 : slabdata 2 2 0
dm_raid1_read_record 0 0 1064 15 4 : tunables 0 0
0 : slabdata 0 0 0
dm_uevent 0 0 2608 12 8 : tunables 0 0
0 : slabdata 0 0 0
dm_rq_target_io 0 0 408 20 2 : tunables 0 0
0 : slabdata 0 0 0
uhci_urb_priv 146 146 56 73 1 : tunables 0 0
0 : slabdata 2 2 0
kmalloc_dma-512 0 16 512 16 2 : tunables 0 0
0 : slabdata 1 1 0
reiser_inode_cache 46837 53086 728 22 4 : tunables 0 0
0 : slabdata 2413 2413 0
cfq_queue 194 216 168 24 1 : tunables 0 0
0 : slabdata 9 9 0
bsg_cmd 0 0 312 13 1 : tunables 0 0
0 : slabdata 0 0 0
mqueue_inode_cache 18 18 896 18 4 : tunables 0 0
0 : slabdata 1 1 0
hugetlbfs_inode_cache 13 13 600 13 2 : tunables 0
0 0 : slabdata 1 1 0
ext2_inode_cache 21 40 784 20 4 : tunables 0 0
0 : slabdata 2 2 0
ext2_xattr 0 0 88 46 1 : tunables 0 0
0 : slabdata 0 0 0
dquot 0 0 256 16 1 : tunables 0 0
0 : slabdata 0 0 0
dnotify_cache 204 204 40 102 1 : tunables 0 0
0 : slabdata 2 2 0
shmem_inode_cache 1927 1940 808 20 4 : tunables 0 0
0 : slabdata 97 97 0
UDP-Lite 0 0 832 19 4 : tunables 0 0
0 : slabdata 0 0 0
ip_dst_cache 66 84 384 21 2 : tunables 0 0
0 : slabdata 4 4 0
RAW 426 462 768 21 4 : tunables 0 0
0 : slabdata 22 22 0
UDP 38 38 832 19 4 : tunables 0 0
0 : slabdata 2 2 0
tw_sock_TCP 21 42 192 21 1 : tunables 0 0
0 : slabdata 2 2 0
TCP 43 57 1664 19 8 : tunables 0 0
0 : slabdata 3 3 0
blkdev_queue 30 42 2272 14 8 : tunables 0 0
0 : slabdata 3 3 0
blkdev_requests 52 66 368 22 2 : tunables 0 0
0 : slabdata 3 3 0
sock_inode_cache 501 529 704 23 4 : tunables 0 0
0 : slabdata 23 23 0
file_lock_cache 44 44 184 22 1 : tunables 0 0
0 : slabdata 2 2 0
Acpi-ParseExt 1829 1848 72 56 1 : tunables 0 0
0 : slabdata 33 33 0
task_delay_info 280 324 112 36 1 : tunables 0 0
0 : slabdata 9 9 0
taskstats 19 24 328 12 1 : tunables 0 0
0 : slabdata 2 2 0
proc_inode_cache 1991 2000 632 25 4 : tunables 0 0
0 : slabdata 80 80 0
sigqueue 50 50 160 25 1 : tunables 0 0
0 : slabdata 2 2 0
radix_tree_node 23294 23618 560 14 2 : tunables 0 0
0 : slabdata 1687 1687 0
bdev_cache 23 38 832 19 4 : tunables 0 0
0 : slabdata 2 2 0
sysfs_dir_cache 12548 12597 80 51 1 : tunables 0 0
0 : slabdata 247 247 0
inode_cache 3487 4144 584 14 2 : tunables 0 0
0 : slabdata 296 296 0
dentry 34096 34104 192 21 1 : tunables 0 0
0 : slabdata 1624 1624 0
buffer_head 126690 134172 112 36 1 : tunables 0 0
0 : slabdata 3727 3727 0
vm_area_struct 23015 23621 176 23 1 : tunables 0 0
0 : slabdata 1027 1027 0
mm_struct 131 152 832 19 4 : tunables 0 0
0 : slabdata 8 8 0
files_cache 138 161 704 23 4 : tunables 0 0
0 : slabdata 7 7 0
signal_cache 193 221 960 17 4 : tunables 0 0
0 : slabdata 13 13 0
sighand_cache 180 210 2112 15 8 : tunables 0 0
0 : slabdata 14 14 0
task_struct 255 280 5664 5 8 : tunables 0 0
0 : slabdata 56 56 0
anon_vma 3860 4096 32 128 1 : tunables 0 0
0 : slabdata 32 32 0
shared_policy_node 170 170 48 85 1 : tunables 0 0
0 : slabdata 2 2 0
numa_policy 340 340 24 170 1 : tunables 0 0
0 : slabdata 2 2 0
idr_layer_cache 434 450 544 15 2 : tunables 0 0
0 : slabdata 30 30 0
kmalloc-8192 45 52 8192 4 8 : tunables 0 0
0 : slabdata 13 13 0
kmalloc-4096 530 544 4096 8 8 : tunables 0 0
0 : slabdata 68 68 0
kmalloc-2048 376 400 2048 16 8 : tunables 0 0
0 : slabdata 25 25 0
kmalloc-1024 4747 4784 1024 16 4 : tunables 0 0
0 : slabdata 299 299 0
kmalloc-512 2306 2320 512 16 2 : tunables 0 0
0 : slabdata 145 145 0
kmalloc-256 4781 4800 256 16 1 : tunables 0 0
0 : slabdata 300 300 0
kmalloc-128 2021 2048 128 32 1 : tunables 0 0
0 : slabdata 64 64 0
kmalloc-64 13690 13696 64 64 1 : tunables 0 0
0 : slabdata 214 214 0
kmalloc-32 3677 5504 32 128 1 : tunables 0 0
0 : slabdata 43 43 0
kmalloc-16 3310 3328 16 256 1 : tunables 0 0
0 : slabdata 13 13 0
kmalloc-8 4588 4608 8 512 1 : tunables 0 0
0 : slabdata 9 9 0
kmalloc-192 8748 9177 192 21 1 : tunables 0 0
0 : slabdata 437 437 0
kmalloc-96 6536 6552 96 42 1 : tunables 0 0
0 : slabdata 156 156 0
kmem_cache_node 0 0 64 64 1 : tunables 0 0
0 : slabdata 0 0 0
{pts/1}%


Attachments:
signature.asc (197.00 B)
This is a digitally signed message part.

2009-06-21 11:36:29

by Hugh Dickins

[permalink] [raw]
Subject: Re: Why half of slabs are not shown in /proc/slabinfo?

On Sun, 21 Jun 2009, Andrey Borzenkov wrote:
> Mandriva kernel 2.6.30 using SLUB:
>
> {pts/1}% grep SLUB /boot/config
> CONFIG_SLUB_DEBUG=y
> CONFIG_SLUB=y
> # CONFIG_SLUB_DEBUG_ON is not set
> # CONFIG_SLUB_STATS is not set
>
> Some of slabs (e.g. filp) are not shown in /proc/slabinfo; comparing
> number of entries under /sys and slabinfo results in
>
> {pts/0}% =ls -1 /sys/kernel/slab | grep -v : | wc -l
> 131
> {pts/0}% wc -l /proc/slabinfo
> 68 /proc/slabinfo
> {pts/0}%
>
> so almost half of the all entries are missing. Is it expected or there
> is something wrong here?

With SLUB it is expected: unlike SLAB, it merges together caches
of the same size.

"slabinfo -a" (from Documentation/vm/slabinfo.c) should show you
which caches have got aliased together.

It can be quite tiresome if you're doing an investigation:
booting with "slub_nomerge" stops it behaving like that.

Hugh

2009-06-22 06:56:29

by Pekka Enberg

[permalink] [raw]
Subject: Re: Why half of slabs are not shown in /proc/slabinfo?

On Sun, 2009-06-21 at 15:30 +0400, Andrey Borzenkov wrote:
> On Sunday 21 of June 2009 15:26:15 Pekka Enberg wrote:
> > On Sun, Jun 21, 2009 at 10:52 AM, Andrey Borzenkov<[email protected]>
> wrote:
> > > Mandriva kernel 2.6.30 using SLUB:
> > >
> > > {pts/1}% grep SLUB /boot/config
> > > CONFIG_SLUB_DEBUG=y
> > > CONFIG_SLUB=y
> > > # CONFIG_SLUB_DEBUG_ON is not set
> > > # CONFIG_SLUB_STATS is not set
> > >
> > > Some of slabs (e.g. filp) are not shown in /proc/slabinfo;
> > > comparing number of entries under /sys and slabinfo results in
> > >
> > > {pts/0}% =ls -1 /sys/kernel/slab | grep -v : | wc -l
> > > 131
> > > {pts/0}% wc -l /proc/slabinfo
> > > 68 /proc/slabinfo
> > > {pts/0}%
> > >
> > > so almost half of the all entries are missing. Is it expected or
> > > there is something wrong here?
> >
> > Can you post the actual file listing of /sys/kernel/slab and the
> > contents of /proc/slabinfo?
>
> Sure.
>
> {pts/1}% ls -l /sys/kernel/slab

If you exclude all the symbolic links, the number of caches matches. As
Hugh already explained, SLUB merges caches which shows up like this in
the sysfs directory.

Pekka

2009-06-23 17:43:40

by Christoph Lameter

[permalink] [raw]
Subject: Re: Why half of slabs are not shown in /proc/slabinfo?

On Mon, 22 Jun 2009, Pekka Enberg wrote:

> If you exclude all the symbolic links, the number of caches matches. As
> Hugh already explained, SLUB merges caches which shows up like this in
> the sysfs directory.

And if you enable full debugging by booting with "slub_debug" then they
will be separate again.