DragonFly kernel List (threaded) for 2008-05
recent network related changes
[Only applies to MP safe tests]
The effect of my recent changes to interface<->ethernet is at:
I think the above two cases is the most common use cases, and the
current throughput almost doubles the old one.
The ETHER_CHAIN_INPUT effect is not obvious in above two cases, but
its effect is quite obvious, when if_start does not contend:
The results of various tests mentioned in:
are shown at:
I also compared fastforwarding and non-fastforwarding on HEAD:
NOTE: There IS performance regression introduced in fastforwarding
when reducing if_start serializer contention:
But even with the best fastforwarding result (max at 520Kpps), it is
still _quite_ slower than non-fastforwarding.
The comparison of two major changes under various tests are at:
There are two regression under specific tests:
1) em0 on cpu0, em1 on cpu1, stream target cpu1:
2) em0 on cpu0, em1 on cpu1, stream target cpu0:
I have studied 1) with ktr:
in udp_thread, each packet enqueueing triggers if_start, and if_start
interlock checking happens for each packets.
I have experimented one solution, which utilizes our lwkt scheduling feature:
schedule if_start on the same CPU but in different thread.
This solution is not as good as the current one in most cases,
especially when packets are spread evenly on each CPUs.
No matter what, I think I currently have a relative good ground to
keep moving on :)
Live Free or Die