Skip to contentSkip to conversation

understanding linux cache and free command

DISCUSSION Prashant Batra 2 participants 2 messages Feb 26, 2013 – Feb 27, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi All,

I have created few memory cache areas using "kmem_cache_create" and using it to allocate some memory.

What I observe after some cache_alloc's and cache_free's is that /proc/slabinfo entries for my objects are good, meaning the number of objects go back to 0 after they are freed.

But linux "free" command shows that some of the objects are cached and that keeps on increasing. I am not able to understand this behavior. Is it that kernel keeps the cache objects even after they are freed?

#cat /proc/slabinfo
my_cache 200 200 4096 1 1 : tunables 24 12 8 : slabdata 200 200 0

It shows 200 allocated objects from "my_cache"

and

#free -lm

total used free shared buffers cached
Mem: 48340 610 47730 0 96 130

the cached objects keep on growing.

After 5 mins in which I am doing some alloc and free-
total used free shared buffers cached
Mem: 48340 616 47723 0 96 137

/proc/slabinfo remains the same.

Any help is appreciated.

Thanks,
Prashant
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

#1 lore raw

Adding netdev for a bigger audience.

Quoted 38 lines · Prashant Batra

Hi All,

I have created few memory cache areas using "kmem_cache_create" and using it to allocate some memory.

What I observe after some cache_alloc's and cache_free's is that /proc/slabinfo entries for my objects are good, meaning the number of objects go back to 0 after they are freed.

But linux "free" command shows that some of the objects are cached and that keeps on increasing. I am not able to understand this behavior. Is it that kernel keeps the cache objects even after they are freed?

#cat /proc/slabinfo
my_cache 200 200 4096 1 1 : tunables 24 12 8
: slabdata 200 200 0

It shows 200 allocated objects from "my_cache"

and

#free -lm

total used free shared buffers cached
Mem: 48340 610 47730 0 96 130

the cached objects keep on growing.

After 5 mins in which I am doing some alloc and free-
total used free shared buffers cached
Mem: 48340 616 47723 0 96 137

/proc/slabinfo remains the same.

Any help is appreciated.

Thanks,
Prashant