Subject: Re: Info: NAPI performance at "low" loads

From: Jeff Garzik <[email-masked]>
Date: Tue, 17 Sep 2002 22:36:36 -0400

David S. Miller wrote:
>    From: Jeff Garzik <[email-masked]>
>    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 :)]