git: NFE - Fix bug with imtimer transitions and improve performance

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Sep 2 22:14:29 PDT 2009


commit c00ddf3338e01a6f586adc9280ec218af71a7eb2
Author: Matthew Dillon <dillon at apollo.backplane.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(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c00ddf3338e01a6f586adc9280ec218af71a7eb2


-- 
DragonFly BSD source repository





More information about the Commits mailing list