From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: kuznet@ms2.inr.ac.ru, "David S. Miller" <davem@redhat.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: more tcpdumpinfo for nfs3 problem: aix-server --- linux 2.4.15pre5 client
Date: Wed, 21 Nov 2001 11:07:14 +0100 [thread overview]
Message-ID: <E166UHi-0005dA-00@charged.uio.no> (raw)
In-Reply-To: <200111201945.WAA03637@ms2.inr.ac.ru>
In-Reply-To: <200111201945.WAA03637@ms2.inr.ac.ru>
On Tuesday 20. November 2001 20:45, kuznet@ms2.inr.ac.ru wrote:
> (Call QDIO bottom half code)
> spin_lock(&QDIO_lock);
> <QDIO hard interrupt>
>
> ->spin_lock(&QDIO_lock)
> (spins...)
>
> with the same result. No help of nfs is required. :-)
Now that my blood caffeine levels are above the 'sleep' watermark, I should
probably correct the above in case Ulrich decides to slap us both with a
slander lawsuit 8-)...
Since (as I said in the original mail) CPU 1 is in a bottom half context,
both local bh and local interrupts should be disabled on that process!
Basically, the deadlock between the QDIO driver and RPC/fasync can be reduced
to:
CPU 1 CPU 2
(In BH context) (In ordinary process context)
spin_lock_irq(&lock1);
spin_lock_bh(&lock2);
dev_kfree_skb_any(skb);
<QDIO Hard interrupt>
(switch to QDIO interrupt context)
-> sk->write_space();
spin_lock(&lock1);
-> spin_lock(&lock2);
IOW:
Either we must demand that CPU 2 uses irq-safe spinlocks in order to
protect against sk->write_space(), or we must demand that CPU 1 should drop
'lock1' before being allowed to call dev_kfree_skb_any().
Cheers,
Trond
next prev parent reply other threads:[~2001-11-21 10:07 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-15 21:29 nfs problem: hp-server --- linux 2.4.13 client, ooops Birger Lammering
2001-11-15 23:58 ` Trond Myklebust
2001-11-16 11:24 ` nfs problem: hp|aix-server --- linux 2.4.15pre5 client Birger Lammering
2001-11-16 11:45 ` Trond Myklebust
2001-11-16 12:01 ` Miquel van Smoorenburg
2001-11-16 12:24 ` Trond Myklebust
2001-11-16 13:19 ` nfs problem: aix-server " Birger Lammering
[not found] ` <15349.39320.876188.274548@charged.uio.no>
2001-11-19 10:20 ` IPV4 socket layer, was: " Birger Lammering
2001-11-19 11:16 ` Alan Cox
2001-11-19 16:37 ` more tcpdumpinfo for nfs3 " Birger Lammering
2001-11-19 18:22 ` Trond Myklebust
2001-11-19 18:49 ` kuznet
2001-11-19 18:55 ` Trond Myklebust
2001-11-19 19:09 ` kuznet
2001-11-19 19:29 ` Trond Myklebust
2001-11-19 19:52 ` kuznet
2001-11-19 20:38 ` Trond Myklebust
2001-11-19 21:17 ` Trond Myklebust
2001-11-20 17:42 ` kuznet
2001-11-20 19:39 ` Trond Myklebust
2001-11-20 19:45 ` kuznet
2001-11-20 20:05 ` Trond Myklebust
2001-11-20 20:18 ` David S. Miller
2001-11-20 20:28 ` more tcpdumpinfo for nfs3 problem: aix-server --- linux kuznet
2001-11-20 20:29 ` more tcpdumpinfo for nfs3 problem: aix-server --- linux 2.4.15pre5 client Trond Myklebust
2001-11-21 10:07 ` Trond Myklebust [this message]
2001-11-21 17:05 ` kuznet
2001-11-20 17:41 ` kuznet
2001-11-20 9:26 ` Birger Lammering
-- strict thread matches above, loose matches on Subject: below --
2001-11-21 19:09 Manfred Spraul
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=E166UHi-0005dA-00@charged.uio.no \
--to=trond.myklebust@fys.uio.no \
--cc=davem@redhat.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
/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