]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r218789,218820,218826-218828:
authoryongari <yongari@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 27 Mar 2011 22:31:17 +0000 (22:31 +0000)
committeryongari <yongari@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 27 Mar 2011 22:31:17 +0000 (22:31 +0000)
commit645f158ee7ba7967ef9d1a7e061a18cc95265296
tree9d0e418f8fb89bca959e5d1846fb27fcc0620883
parent149508ac19f6f17e65c9fc4f05abed17ba38138f
MFC r218789,218820,218826-218828:
r218789:
  Remove use case of DC_TX_ONE. It was used to limit queue just 1 TX
  frame in DM910x controllers. In r67595(more than 10 years ago) it
  was replaced to use "Store and Forward" mode and made controller
  generate TX completion interrupt for every frame.

r218820:
  For controllers that have TX interrupt moderation capability,
  request TX completion interrupt for every 8-th frames. Previously
  dc(4) requested TX completion interrupt if number of queued TX
  descriptors is greater than 64. This caused a lot of TX completion
  interrupt under high TX load once driver queued more than 64 TX
  descriptors. It's quite normal to see more than 64 queued TX
  descriptors under high TX load.
  This change reduces the number of TX completion interrupts to be
  less than 17k under high TX load. Because this change does not
  generate TX completion interrupt for each frame, add reclaiming
  transmitted buffers in dc_tick not to generate false watchdog
  timeouts.
  While I'm here add check for queued descriptors in dc_txeof() since
  there is no more work to do when there is no pending descriptors.

r218826:
  Make sure to clear status word of TX descriptor in dc_list_tx_init().
  Do not update if_opackets if the transmission had failed.

r218827:
  There is no need to execute filter configuration when driver is not
  running. Remove wrong driver state change in dc_setfilt_xircom().
  While I'm here nuke unnecessary assignments.

r218828:
  Fix a long standing bug where driver handed over RX descriptor
  ownership to controller before completion of access to the
  descriptor. Driver is faking up status word so it should not give
  ownership to controller until it completes RX processing.

git-svn-id: svn://svn.freebsd.org/base/stable/8@220068 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/dc/if_dc.c
sys/dev/dc/if_dcreg.h