From: ebiederm@xmission.com (Eric W. Biederman)
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
"Siddha, Suresh B" <suresh.b.siddha@intel.com>,
"Darrick J. Wong" <djwong@us.ibm.com>,
linux-kernel@vger.kernel.org, ak@suse.de
Subject: Re: Device hang when offlining a CPU due to IRQ misrouting
Date: Sat, 23 Jun 2007 18:45:05 -0600 [thread overview]
Message-ID: <m1abuq89ke.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <20070623165841.1c8f705c.akpm@linux-foundation.org> (Andrew Morton's message of "Sat, 23 Jun 2007 16:58:41 -0700")
Andrew Morton <akpm@linux-foundation.org> writes:
> On Sun, 24 Jun 2007 01:54:52 +0200 "Rafael J. Wysocki" <rjw@sisk.pl> wrote:
>
>> On Wednesday, 20 June 2007 00:08, Siddha, Suresh B wrote:
>> > On Tue, Jun 19, 2007 at 01:49:30PM -0700, Darrick J. Wong wrote:
>> > >
>> > > This fixes the problem! Hurrah!
>> >
>> > Great! Andrew, please include the appended patch in -mm.
>> >
>> > ----
>> > Subject: [patch] x86_64, irq: use mask/unmask and proper locking in
> fixup_irqs
>> > From: Suresh Siddha <suresh.b.siddha@intel.com>
>> >
>> > Force irq migration path during cpu offline, is not using proper
>> > locks and irq_chip mask/unmask routines. This will result in
>> > some races(especially the device generating the interrupt can see
>> > some inconsistent state, resulting in issues like stuck irq,..).
>> >
>> > Appended patch fixes the issue by taking proper lock and
>> > encapsulating irq_chip set_affinity() with a mask() before and an
>> > unmask() after.
>> >
>> > This fixes a MSI irq stuck issue reported by Darrick Wong.
>> >
>> > There are several more general bugs in this area(irq migration in the
>> > process context). For example,
>> >
>> > 1. Possibility of missing edge triggered irq.
>> > 2. Reliable method of migrating level triggered irq in the process context.
>> >
>> > We plan to look and close these in the near future.
>>
>> This patch breaks hibernation on my Turion 64 X2 - based testbox (HPC nx6325).
>>
>> _cpu_down() just hangs as though there were a deadlock in there, 100% of the
>> time.
>>
>
> Thanks, I dropped it.
Hmm. It looks like Siddha sent the wrong version of the patch.
The working tested version had an additional test to ensure
the mask and unmask methods were implemented.
i.e.
+ if (irq_desc[irq].chip->mask)
+ irq_desc[irq].chip->mask(irq);
and
+ if (irq_desc[irq].chip->unmask)
+ irq_desc[irq].chip->unmask(irq);
+
Siddha think you can resend the correct version.
Rafael. Think you can add those two ifs and see if you test bed box
works?
I'm still not convinced that we can make fixup_irqs work in general
but if we aren't going to yank it we should at least make it
consistent with the rest of the code.
Eric
next prev parent reply other threads:[~2007-06-24 0:45 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-01 0:44 Darrick J. Wong
2007-06-01 19:39 ` Eric W. Biederman
2007-06-05 17:23 ` Siddha, Suresh B
2007-06-05 17:36 ` Darrick J. Wong
2007-06-05 18:13 ` Siddha, Suresh B
2007-06-05 18:33 ` Darrick J. Wong
2007-06-05 18:40 ` Siddha, Suresh B
2007-06-05 20:09 ` Darrick J. Wong
2007-06-05 21:14 ` Siddha, Suresh B
2007-06-05 23:57 ` Darrick J. Wong
2007-06-06 1:37 ` Siddha, Suresh B
2007-06-06 18:58 ` Darrick J. Wong
2007-06-06 19:35 ` Siddha, Suresh B
2007-06-06 23:16 ` Darrick J. Wong
2007-06-08 0:57 ` Siddha, Suresh B
2007-06-18 22:38 ` Darrick J. Wong
2007-06-18 23:54 ` Siddha, Suresh B
2007-06-19 0:51 ` Darrick J. Wong
2007-06-19 17:54 ` Eric W. Biederman
2007-06-19 18:00 ` Siddha, Suresh B
2007-06-19 18:55 ` Eric W. Biederman
2007-06-19 19:06 ` Darrick J. Wong
2007-06-19 19:59 ` Siddha, Suresh B
2007-06-19 20:49 ` Darrick J. Wong
2007-06-19 22:08 ` Siddha, Suresh B
2007-06-23 23:54 ` Rafael J. Wysocki
2007-06-23 23:58 ` Andrew Morton
2007-06-24 0:45 ` Eric W. Biederman [this message]
2007-06-24 0:51 ` Siddha, Suresh B
2007-06-24 12:50 ` Rafael J. Wysocki
2007-06-24 0:28 ` Siddha, Suresh B
2007-06-24 12:48 ` Rafael J. Wysocki
2007-06-01 21:57 Emmanuel Fusté
2007-06-02 0:18 ` Eric W. Biederman
2007-06-02 2:19 ` Darrick J. Wong
2007-06-02 3:48 ` Eric W. Biederman
2007-06-03 21:03 Emmanuel Fusté
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=m1abuq89ke.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=djwong@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=suresh.b.siddha@intel.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
Powered by JetHome