David S. Miller wrote:
From: Jeff Garzik <jgarzik@xxxxxxxxxxxxxxxx>
Date: Tue, 17 Sep 2002 22:11:14 -0400
You're looking at at least one extra get-irq-status too, at least in the
classical 10/100 drivers I'm used to seeing...
How so? The number of ones done in the e1000 NAPI code are the same
(read register until no interesting status bits remain set, same as
pre-NAPI e1000 driver).
For tg3 it's a cheap memory read from the status block not a PIO.
Non-NAPI:
get-irq-stat
ack-irq
get-irq-stat (omit, if no work loop)
NAPI:
get-irq-stat
ack-all-but-rx-irq
mask-rx-irqs
get-irq-stat (omit, if work loop)
...
ack-rx-irqs
get-irq-stat
unmask-rx-irqs
This is the low load / low latency case only. The number of IOs
decreases at higher loads [obviously :)]
|