Oops when trying to create more than 16000 timers
From: Ottavio Campana
Date: Mon Dec 15 2008 - 11:39:18 EST
Hello,
I'm sorry if it is not the best place to ask, but I haven't find any answer.
I am currently developing a software that needs approx 60k timers. I
currently use timer_create and all the relative functions to manage timers.
I've noticed that after having created 16039 timers I always get an oops
from the kernel, which are always of the same kind:
Dec 15 15:20:00 evolution kernel: [601680.417064] BUG: unable to handle
kernel NULL pointer dereference at 0000000000000040 .
I tried looking at kernel/posix-timers.c and I discovered that posix
timers are kept in slab memory. By monitoring the my program I can see
that in /proc/slabinfo the number of timers increases till 16039, when I
get the oops and no more timers are created.
In /prob/slabinfo I have
posix_timers_cache 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0
If I try to increase tunables to 2400 120 16 the maximum number of posix
timers that I can create does not change.
How can I tune the kernel so that it supports 60k or more timers?
Thank for your help,
Ottavio
--
Ottavio Campana
Telecommunication Engineer
Lab. Immagini
Dept. of Information Engineering
University of Padova
Via Gradenigo 6/B
35131 Padova
Italy
phone: +39 049 8277641 fax: +39 049 8277699
e-mail: ottavio.campana@xxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/