DragonFly commits List (threaded) for 2009-09
git: NFE - Fix bug with imtimer transitions and improve performance
Author: Matthew Dillon <email@example.com>
Date: Wed Sep 2 22:06:22 2009 -0700
NFE - Fix bug with imtimer transitions and improve performance
* When the imtimer transitions to a new state via a sysctl the
code called ifp->if_init() which more often then not caused
the device to stop taking all interrupts.
* Change the way dynamic interrupt moderation works. Timer moderation is
not turned on until the discrete interrupt rate exceeds the threshold.
e.g. by default 500uS is 2000 interrupts/second so timer moderation
is not turned on until the discrete interrupt rate exceeds 2000 ips.
This allows the device to respond interactively as long as traffic levels
are reasonable, before converting into moderation-timer-based batching.
Timer moderation is turned off and we go back to discrete interrupts
if the average rate over ~4 seconds falls below the threshold.
* Change the interrupt moderation default from 125uS to 500uS. 125uS can
saturate the cpu if the interrupt line is shared with other devices.
A larger moderation timer is also more reasonable now that discrete
interrupts are left intact until the rate exceeds the threshold.
The moderation timer should be roughly designed to deal with the txring
and rxring size.
Summary of changes:
sys/dev/netif/nfe/if_nfe.c | 63 +++++++++++++++++++++++++++++-----------
sys/dev/netif/nfe/if_nfevar.h | 3 ++
2 files changed, 48 insertions(+), 18 deletions(-)
DragonFly BSD source repository