On Tue, 20 Mar 2007, Eric Dumazet wrote:

> Davide Libenzi a écrit :
> 
> > +struct timerfd_ctx {
> > +   struct hrtimer tmr;
> > +   ktime_t tintv;
> > +   spinlock_t lock;
> > +   wait_queue_head_t wqh;
> > +   unsigned long ticks;
> > +};
> 
> > +static struct kmem_cache *timerfd_ctx_cachep;
> 
> > +   timerfd_ctx_cachep = kmem_cache_create("timerfd_ctx_cache",
> > +                                           sizeof(struct timerfd_ctx),
> > +                                           0, SLAB_PANIC, NULL, NULL);
> 
> 
> Do we really expect thousands of active timerfd_ctx ?
> 
> If not, using kmalloc()/kfree() would be fine, because sizeof(struct
> timerfd_ctx) is so small.
> 
> on SMP / NUMA platforms, each new kmem_cache is rather expensive. (memory
> allocated at kmem_cache_create(), but also memory used when cache is not
> empty, with slabs in freelist for each cpu/node)
> 
> Using a general cache might be cheaper : No memory overhead for yet another
> kmem_cache.
> 
> I know individual caches are good to spot memory leaks, but in timerfd case,
> you dont have mem leaks, do you ? :)

Silly you, of course not :)
Yes, I gues I can use kmalloc/kfree for those fds ...



- Davide

Reply via email to