netdev
[Top] [All Lists]

Re: Info: NAPI performance at "low" loads

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: Re: Info: NAPI performance at "low" loads
From: Jeff Garzik <jgarzik@xxxxxxxxxxxxxxxx>
Date: Tue, 17 Sep 2002 22:36:36 -0400
Cc: akpm@xxxxxxxxx, manfred@xxxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Organization: MandrakeSoft
References: <3D87A4A2.6050403@xxxxxxxxxxxxxxxx> <20020917.144911.43656989.davem@xxxxxxxxxx> <3D87E0C2.6040004@xxxxxxxxxxxxxxxx> <20020917.190641.84134530.davem@xxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826
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 :)]


<Prev in Thread] Current Thread [Next in Thread>