Messages in this thread | | | Date | Mon, 15 Dec 2008 17:04:52 +0100 | From | Ottavio Campana <> | Subject | Oops when trying to create more than 16000 timers |
| |
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@dei.unipd.it
| |