]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Convert the if_vr(4) driver model to the interrupt filter model and use
authorrpaulo <rpaulo@FreeBSD.org>
Sat, 12 May 2012 14:37:25 +0000 (14:37 +0000)
committerrpaulo <rpaulo@FreeBSD.org>
Sat, 12 May 2012 14:37:25 +0000 (14:37 +0000)
commitf05de090832a1cf1ee734c13843ec7841d8736fd
tree889be61a23bc06df3cddf407f17f63f97b7ea14c
parent693ceab23e831ec3a19ac0daa29f797e2596fb93
Convert the if_vr(4) driver model to the interrupt filter model and use
a taskqueue.

This gives a 16% performance improvement under high load on slow systems,
especially when vr shares an interrupt with another device, which is
common with the Alix x86 boards.
Contrary to the other devices, I left the interrupt processing for loop
in because there was no significant difference in performance and this
should avoid enqueuing more taskqueues unnecessarily.
We also decided to move the vr_start_locked() call inside the for loop
because we found out that it helps performance since TCP ACKs now have a
chance to go out quicker.

Reviewed by: yongari (older version, same idea)
Discussed with: yongari, jhb
sys/dev/vr/if_vr.c
sys/dev/vr/if_vrreg.h