diff options
author | rwatson <rwatson@FreeBSD.org> | 2006-08-01 10:30:26 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2006-08-01 10:30:26 +0000 |
commit | cedd19512d5ec8d27159476420b827e2e01731e1 (patch) | |
tree | 20b032b51bec9502f0c354ae03f8f7a68d6f1f67 /sys/dev/mxge | |
parent | 1157b51024537d013f39373f730c9a1462a81c8b (diff) | |
download | FreeBSD-src-cedd19512d5ec8d27159476420b827e2e01731e1.zip FreeBSD-src-cedd19512d5ec8d27159476420b827e2e01731e1.tar.gz |
Reimplement socket buffer tear-down in sofree(): as the socket is no
longer referenced by other threads (hence our freeing it), we don't need
to set the can't send and can't receive flags, wake up the consumers,
perform two levels of locking, etc. Implement a fast-path teardown,
sbdestroy(), which flushes and releases each socket buffer. A manual
dom_dispose of the receive buffer is still required explicitly to GC
any in-flight file descriptors, etc, before flushing the buffer.
This results in a 9% UP performance improvement and 16% SMP performance
improvement on a tight loop of socket();close(); in micro-benchmarking,
but will likely also affect CPU-bound macro-benchmark performance.
Diffstat (limited to 'sys/dev/mxge')
0 files changed, 0 insertions, 0 deletions