timerfd performances

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Since the removal of ktimersoftd which happened in 6f6ba7715a91
("softirq: rework"), I wonder what is the best approach when using
timer APIs relying on softirqs for wake-up.

My application polls on a timerfd, and I used to have good and stable
performance (< 100us) by setting a high priority to the appropriate
ktimersoftd. Now that the timer handling is handled in the unique
ksoftirqd I'm having increased latencies since (per my understanding)
the ksoftirqd is handling other things (in my use case, networking).

When I say increased latencies, with sufficient load (~450K fps UDP
traffic) it can be over a millisecond... And yet, I haven't added other
load handled in ksoftd like tasklets or IOs.

I tried raising the ksoftd prio over threaded interrupts, that helps a
bit but latencies are still high and setting ksoftd to a realtime
priority doesn't seem a viable option anyway.

I guess some tuning could also be done such as tuning the NAPI budget
but this doesn't seem very robust nor generic.

In the end, it seems my most viable option at the moment is to move to
clock_nanosleep() but it implies radical changes in my application
architecture as it's not as scalable and flexible as timerfd.

Any hints on how to "secure" the wake-up latency of timer fds or what
is expected in future works would be greatly appreciated !

Thanks,
Seb




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux