| To: | Patrick McHardy <kaber@xxxxxxxxx> |
|---|---|
| Subject: | Re: LLTX and netif_stop_queue |
| From: | Eric Lemoine <eric.lemoine@xxxxxxxxx> |
| Date: | Fri, 24 Dec 2004 17:10:38 +0100 |
| Cc: | "David S. Miller" <davem@xxxxxxxxxxxxx>, hadi@xxxxxxxxxx, roland@xxxxxxxxxxx, netdev@xxxxxxxxxxx, openib-general@xxxxxxxxxx |
| Domainkey-signature: | a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=RPJI48dglD8YeBJ46kWN+HcSYDXuZzBK0eRBKUhaeAwuhky7aczYeTZ0Pud/QjsnD52fn+zitTjRd42LJY43rxgj2gbB4l2uy/iO2biGJGYObHOWnCWR8LwjEPhzCzZTeBdWOXQ8OUlS3UDgCjZXeQPQk+m1CkEHyW7/7usk/X0= |
| In-reply-to: | <41CAF444.3000305@xxxxxxxxx> |
| References: | <52llbwoaej.fsf@xxxxxxxxxxx> <20041217214432.07b7b21e.davem@xxxxxxxxxxxxx> <1103484675.1050.158.camel@xxxxxxxxxxxxxxxx> <5cac192f04122210491d64d4b6@xxxxxxxxxxxxxx> <20041222202919.057b8331.davem@xxxxxxxxxxxxx> <5cac192f0412230110628749e3@xxxxxxxxxxxxxx> <41CAF444.3000305@xxxxxxxxx> |
| Reply-to: | Eric Lemoine <eric.lemoine@xxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
On Thu, 23 Dec 2004 17:37:24 +0100, Patrick McHardy <kaber@xxxxxxxxx> wrote: > Eric Lemoine wrote: > > I still have one concern with the LLTX code (and it may be that the > > correct patch is Jamal's) : > > > > Without LLTX we do : lock(queue_lock), lock(xmit_lock), > > release(queue_lock), release(xmit_lock). With LLTX (without Jamal's > > patch) we do : lock(queue_lock), release(queue_lock), lock(tx_lock), > > release(tx_lock). LLTX doesn't look correct because it creates a race > > condition window between the the two lock-protected sections. So you > > may want to reconsider Jamal's patch or pull out LLTX... > > You're right, it can cause packet reordering if something like this > happens: > > CPU1 CPU2 > lock(queue_lock) > dequeue > unlock(queue_lock) > lock(queue_lock) > dequeue > unlock(queue_lock) > lock(xmit_lock) > hard_start_xmit > unlock(xmit_lock) > lock(xmit_lock) > hard_start_xmit > unlock(xmit_lock) > > Jamal's patch should fix this. Yes but requiring drivers to release a lock that they should not even be aware of doesn't sound good. Another way would be to keep dev->queue_lock grabbed when entering start_xmit() and let the driver drop it (and re-acquire it before it returns) only if it wishes so. Although I don't like this too much either, that's the best way I can think of up to now... -- Eric |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: ip6tables: accept of IPv6 transport esp packages not possible - no rule matches, Peter Bieringer |
|---|---|
| Next by Date: | tcp sequence no. query, linux lover |
| Previous by Thread: | Re: LLTX and netif_stop_queue, Eric Lemoine |
| Next by Thread: | Re: LLTX and netif_stop_queue, jamal |
| Indexes: | [Date] [Thread] [Top] [All Lists] |