summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2011-12-07 19:08:54 +0000
committeryongari <yongari@FreeBSD.org>2011-12-07 19:08:54 +0000
commitfbd2077e9a7438404706cb5778aa2e8f431e759c (patch)
tree07d0e152e6417df47a58da27d745e1ce5ffad332 /lib/libc/stdlib
parentc6a9c8f2c8308b3d82c1704f4976cf05b9d9e55f (diff)
downloadFreeBSD-src-fbd2077e9a7438404706cb5778aa2e8f431e759c.zip
FreeBSD-src-fbd2077e9a7438404706cb5778aa2e8f431e759c.tar.gz
Controller does not require TX start command for every frame. So
send a single TX command after setting up all TX frames. This removes unnecessary register accesses and bus_dmamap_sync(9) calls. et(4) uses TX interrupt moderation so it's possible to have TX buffers that were already transmitted but waiting for TX completion interrupt. If the number of available TX descriptor is less then 1/3 of total TX descriptor, try reclaiming first to get enough free TX descriptors before setting up TX descriptors. After r228325, et_txeof() no longer tries to send frames after reclaiming TX buffers. That change was made to give more chance to transmit frames in main interrupt handler since we can still send frames in interrupt handler with RX interrupt. So right before exiting interrupt hander, after enabling interrupt, try to send more frames. This gives slightly better performance numbers. While I'm here reduce number of spare TX descriptors from 8 to 4. Controller does not require reserved TX descriptors, it was just to reduce TX overhead. After r228325, driver has much lower TX overhead so it does not make sense to reserve 8 TX descriptors.
Diffstat (limited to 'lib/libc/stdlib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud