netdev
[Top] [All Lists]

Re: NAPI, e100, and system performance problem

To: Stephen Hemminger <shemminger@xxxxxxxx>
Subject: Re: NAPI, e100, and system performance problem
From: "David S. Miller" <davem@xxxxxxxxxxxxx>
Date: Fri, 22 Apr 2005 16:43:01 -0700
Cc: gnb@xxxxxxx, hadi@xxxxxxxxxx, ak@xxxxxx, akepner@xxxxxxx, jesse.brandeburg@xxxxxxxxx, netdev@xxxxxxxxxxx, davem@xxxxxxxxxx
In-reply-to: <20050423094038.72a8da73@xxxxxxxxxxxxxxxxxxxxx>
References: <C925F8B43D79CC49ACD0601FB68FF50C03A633C7@orsmsx408> <Pine.LNX.4.61.0504180943290.15052@xxxxxxxxxx> <1113855967.7436.39.camel@xxxxxxxxxxxxxxxxxxxxx> <20050419055535.GA12211@xxxxxxx> <m1hdhzyrdz.fsf@xxxxxx> <1114173195.7679.30.camel@xxxxxxxxxxxxxxxxxxxxx> <20050422172108.GA10598@xxxxxx> <1114193902.7978.39.camel@xxxxxxxxxxxxxxxxxxxxx> <20050422232831.GB6462@xxxxxxx> <20050423094038.72a8da73@xxxxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Sat, 23 Apr 2005 09:40:38 +1000
Stephen Hemminger <shemminger@xxxxxxxx> wrote:

> My experience is that NAPI adds latency and that can cause worse performance.
> I haven't seen a good analysis of the problem and/or simple tests to reproduce
> the problem

Right, and it's cpu and bus speed dependant as to when you hit
this bad case.  If your packet rate is perfectly such that
only 1 or 2 packets get processed per interrupt then NAPI loses
badly due to the extra PIO overhead entailed from enabling and
disabling interrupts.

This is essential and well understood, and I personally don't need
to see "numbers" to acknowledge this flaw.

I hope that minimal mitigation settings alleviate this problem for
the most part.

When I moved tg3 over to NAPI, the happiest part of that was deleting
the dynamic hw mitigation setting code the tg3 driver had.  If ever
that kind of thing goes back into the drivers, it should be based
upon a common feedback variable (something based upon dev->weight
perhaps), not reimplemented N times, once in every driver.

With the dynamic schemes comes a new issue, how quickly to respond
to changes in traffic patterns.

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