netdev
[Top] [All Lists]

Re: RFR: new SiS gige driver

To: Andi Kleen <ak@xxxxxxx>
Subject: Re: RFR: new SiS gige driver
From: Jeff Garzik <jgarzik@xxxxxxxxx>
Date: Sun, 10 Aug 2003 21:07:31 -0400
Cc: netdev@xxxxxxxxxxx
In-reply-to: <20030809152747.GA1618@wotan.suse.de>
Organization: none
References: <20030808173932.GA4077@gtf.org> <20030809141533.GB4539@wotan.suse.de> <3F350CC8.3090605@pobox.com> <20030809152747.GA1618@wotan.suse.de>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021213 Debian/1.2.1-2.bunk
Andi Kleen wrote:
The netif_wake_queue is lost. It's only deadly when clean some packets
clears the full TX ring, otherwise it will likely recover with the next TX finished interrupt but give suboptimal performance.


Fix is to do the my queue is full -> netif_stop_queue inside the spinlock.

"a fix" not "the fix" :)

You can also do what some drivers do, and move the netif_queue_stop above the queue-packet-to-hw section of driver's ->hard_start_xmit. Then when this uncommon race occurs, you are guaranteed another TX-complete interrupt, even if the queue is stopped prematurely.

A lot of drivers netif_stop_queue after, not before, so this is indeed an issue that needs paying attention to.

        Jeff



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