From: Pavel Machek <pavel@ucw.cz>
To: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Cc: bh74.an@samsung.com, ks.giri@samsung.com,
vipul.pandya@samsung.com, peppe.cavallaro@st.com,
alexandre.torgue@st.com, davem@davemloft.net,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH 2/2] net: ethernet: stmmac: remove private tx queue lock
Date: Wed, 7 Dec 2016 21:59:42 +0100 [thread overview]
Message-ID: <20161207205942.GB2250@amd> (raw)
In-Reply-To: <1481141138-19466-3-git-send-email-LinoSanfilippo@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 1881 bytes --]
Hi!
> The driver uses a private lock for synchronization between the xmit
> function and the xmit completion handler, but since the NETIF_F_LLTX flag
> is not set, the xmit function is also called with the xmit_lock held.
>
> On the other hand the xmit completion handler first takes the private lock
> and (in case that the tx queue has been stopped) the xmit_lock, leading to
> a reverse locking order and the potential danger of a deadlock.
>
> Fix this by removing the private lock completely and synchronizing the xmit
> function and completion handler solely by means of the xmit_lock. By doing
> this remove also the now unnecessary double check for a stopped tx queue.
>
> Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Oops, sorry no, that broke the driver after a while:
(So please ignore my tested-by:)
root@wagabuibui:/data/tmp/udpt# ./udp-test raw 10.0.0.6 1234 1000 100
30
Sending 100 packets (1000b each) at an interval of 30ms, expected data
rate:3333333b/s (3373333b/s incl udp overhead)
[ 30.948626] socfpga-dwmac ff702000.ethernet eth0: Link is Up -
100Mbps/Full - flow control rx/tx
[ 31.076064] Link is Up - 100/Full
[ 32.979526] random: crng init done
[ 262.244030] ------------[ cut here ]------------
[ 262.248669] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:316
dev_watchdog+0x254/0x26c
[ 262.256916] NETDEV WATCHDOG: eth0 (socfpga-dwmac): transmit queue 0
timed out
[ 262.264028] Modules linked in:
[ 262.267102] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.9.0-rc7-118095-g2d70d9b-dirty #339
[ 262.275328] Hardware name: Altera SOCFPGA
[ 262.279352] [<8010f758>] (unwind_backtrace) from [<8010affc>]
(show_stack+0x10/0x14)
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2016-12-07 20:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-07 20:05 Remove private locks to avoid possible deadlock Lino Sanfilippo
2016-12-07 20:05 ` [PATCH 1/2] net: ethernet: sxgbe: remove private tx queue lock Lino Sanfilippo
2016-12-07 23:15 ` Francois Romieu
2016-12-08 20:32 ` Lino Sanfilippo
2016-12-08 21:54 ` Pavel Machek
2016-12-08 22:12 ` Lino Sanfilippo
2016-12-08 22:18 ` Pavel Machek
2016-12-08 22:45 ` Lino Sanfilippo
2016-12-08 23:19 ` Francois Romieu
2016-12-09 11:21 ` Pavel Machek
2016-12-10 2:25 ` Lino Sanfilippo
2016-12-11 20:11 ` Pavel Machek
2016-12-15 19:27 ` Lino Sanfilippo
2016-12-15 21:03 ` Pavel Machek
2016-12-15 21:32 ` Lino Sanfilippo
2016-12-15 22:33 ` Lino Sanfilippo
2016-12-17 17:31 ` Pavel Machek
2016-12-18 0:15 ` Francois Romieu
2016-12-18 16:15 ` Lino Sanfilippo
2016-12-18 17:23 ` Pavel Machek
2016-12-18 18:30 ` Pavel Machek
2016-12-19 22:49 ` Lino Sanfilippo
2016-12-18 20:16 ` Pavel Machek
2016-12-19 10:02 ` Pavel Machek
2016-12-20 0:05 ` Francois Romieu
2016-12-07 20:05 ` [PATCH 2/2] net: ethernet: stmmac: " Lino Sanfilippo
2016-12-07 20:55 ` Pavel Machek
2016-12-07 20:59 ` Pavel Machek [this message]
2016-12-07 21:37 ` Pavel Machek
2016-12-07 21:43 ` Lino Sanfilippo
2016-12-07 22:34 ` Lino Sanfilippo
2016-12-07 23:21 ` Pavel Machek
2016-12-07 23:41 ` David Miller
2016-12-08 14:08 ` Pavel Machek
2016-12-08 15:26 ` David Miller
2016-12-08 15:46 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161207205942.GB2250@amd \
--to=pavel@ucw.cz \
--cc=LinoSanfilippo@gmx.de \
--cc=alexandre.torgue@st.com \
--cc=bh74.an@samsung.com \
--cc=davem@davemloft.net \
--cc=ks.giri@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peppe.cavallaro@st.com \
--cc=vipul.pandya@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).