cvs commit: src/sys/pci if_ste.c if_stereg.h

Ruslan Ermilov ru at FreeBSD.org
Fri Apr 2 15:37:08 PST 2004


ru          2004/04/02 15:36:49 PST

  FreeBSD src repository

  Modified files:
    sys/pci              if_ste.c if_stereg.h 
  Log:
  Performance tuning.
  
  Moved the RX ring resyncing code to ste_rxeoc(), and only run it
  if we were asked to POLL_AND_CHECK_STATUS, under DEVICE_POLLING.
  (This significantly reduces the CPU load.)
  
  Improved the RX ring resyncing code by re-checking if the head
  is still empty before doing resyncing.  This mostly affects the
  DEVICE_POLLING mode, where we run this code periodically.  We
  could start checking with an empty head (well, an empty ring
  even), and after doing a few iterations, the chip might write
  a few entries, including the head, and we would bogusly consider
  this case as requiring resyncing.  On a test box, this reduced
  the number of resyncs done by a factor of 10.
  
  In ste_txeof(sc), only reset the watchdog timer to zero when
  the TX list is completely empty.
  
  Converted ste_tx_prev_idx to a pointer -- faster.
  
  Removed some bitrot.
  
  Revision  Changes    Path
  1.68      +44 -38    src/sys/pci/if_ste.c
  1.14      +1 -3      src/sys/pci/if_stereg.h


More information about the cvs-all mailing list