| 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@xxxxxxxxxxxxx> |
| Organization: | none |
| References: | <20030808173932.GA4077@xxxxxxx> <20030809141533.GB4539@xxxxxxxxxxxxx> <3F350CC8.3090605@xxxxxxxxx> <20030809152747.GA1618@xxxxxxxxxxxxx> |
| 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 packetsclears 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> |
|---|---|---|
| ||
| Previous by Date: | Re: Ethernet bridge performance, Robert Olsson |
|---|---|
| Next by Date: | Re: [SET 2][PATCH 2/8][bonding] Propagating master's settings to slaves, Shmulik Hen |
| Previous by Thread: | Re: RFR: new SiS gige driver, Andi Kleen |
| Next by Thread: | Re: RFR: new SiS gige driver, Ben Greear |
| Indexes: | [Date] [Thread] [Top] [All Lists] |