Remove the periodic timer and do rescheduling during Rx completion
authormikeb <mikeb@openbsd.org>
Wed, 3 Aug 2016 15:08:06 +0000 (15:08 +0000)
committermikeb <mikeb@openbsd.org>
Wed, 3 Aug 2016 15:08:06 +0000 (15:08 +0000)
commitab46522a10f02fdbf9c89b607f13666e2908eded
tree6a6f557ac1bac9b3d7c6eeda4ba5670d6979e8f2
parent4ef38d8395a08772f177cd28a89917eb0fc1960d
Remove the periodic timer and do rescheduling during Rx completion

This change adds a check into the Rx ring completion routine that
schedules an interrupt task to be executed immediately after if
consumer index has already advanced itself.  The benefit of doing
this compared to an additional loop after replenishing the ring
(as done in FreeBSD for example) is that first of all this goes
through the loop in the taskqueue thread with a yeild check to
prevent CPU hogging and second is that it triggers Tx completion
as well since interrupt handler runs both.
sys/dev/pv/if_xnf.c