Subject: Re: [PATCH] [sis900] convert to NAPI, WAS Re: pktgen terminating condition

From: James Chapman <[email-masked]>
Date: Wed, 05 Sep 2007 14:55:17 +0100

jamal wrote:
> On Wed, 2007-05-09 at 13:03 +0100, James Chapman wrote:
> 
>> I have a patch that solves the high interrupt rate problem by keeping 
>> the driver in polled mode longer. It's written for the latest NAPI 
>> version that DaveM posted recently. I'll try to get some time to write 
>> it up and post it for comment.
> 
> Theres interesting challenges to be tackled with resolving that. 
> Just so you dont reinvent the wheel or to help invent a better one;
> please read:
> http://kernel.org/pub/linux/kernel/people/hadi/docs/UKUUG2005.pdf
> 
> if you have, what are the differences in your approach - and when
> do you find it useful?

Thanks Jamal. Yes, I'd already read your paper. I think my idea is 
different to the ideas described in your paper and I'm in the process of 
writing it up as an RFC to post to netdev. Briefly though, the driver's 
->poll() holds off doing netif_rx_complete() for 1-2 jiffies and keeps 
itself in poll_on mode for that time, consuming no quota. The net_rx 
softirq processing loop is modified to detect the case when the only 
devices in its poll list are doing no work (consuming no quota). The 
driver's ->poll() samples jiffies while it is considering when to do the 
netif_rx_complete() like your Parked state - no timers are used.

If I missed that this approach has already been tried before and 
rejected, please let me know. I see better throughput and latency in my 
packet forwarding and LAN setups using it.

-- 
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development