From: ebiederm@xmission.com (Eric W. Biederman)
To: suresh.b.siddha@intel.com
Cc: Avi Kivity <avi@redhat.com>, Gleb Natapov <gleb@redhat.com>,
"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Sheng Yang <sheng@linux.intel.com>,
"kvm\@vger.kernel.org" <kvm@vger.kernel.org>,
garyhade@us.ibm.com
Subject: Re: [PATCH v3] enable x2APIC without interrupt remapping under KVM
Date: Wed, 01 Jul 2009 17:17:57 -0700 [thread overview]
Message-ID: <m1d48kndje.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <1246488808.27006.10691.camel@localhost.localdomain> (Suresh Siddha's message of "Wed\, 01 Jul 2009 15\:53\:28 -0700")
Suresh Siddha <suresh.b.siddha@intel.com> writes:
> On Tue, 2009-06-30 at 12:36 -0700, Eric W. Biederman wrote:
>> Dropped irqs.. Driver hangs because it is waiting for an irq. Hardware
>> hangs because it is waiting for the cpu to process the irq.
>>
>> Potentially we get a level triggered irq that is never acked by
>> the cpu that won't arm until the cpu send an ack, and we can't
>> send an ack from another cpu.
>
> Eric,
>
> Among number of experiments you have tried in the past to fix this, have
> you tried the experiment of explicitly clearing the remoteIRR by
> changing the trigger mode to edge and then back to level.
>
> Is there a problem with this?
The problem I had wasn't remoteIRR getting stuck, but the symptoms
were largely the same. I did try changing the trigger mode to edge
and back and that did not unstick the ioapic in all cases.
> We can send a spurious IPI (after the RTE migration) with the new vector
> to another cpu and handler which services the level interrupt will check
> if we saw the edge mode for a level interrupt and then the handler can
> explicitly restore the level trigger and reset the remote IRR by mask
> +edge and unmask+level.
>
> We might have to work with some rough edges but do you recollect any
> major issue with this approach..
This is coming up enough recently I expect it is time to cook up
a patch that does the ioapic migration in process context plus
some user space code that stress tests things. Just so people
can repeat my experiments and see what I am trying to avoid.
Eric
next prev parent reply other threads:[~2009-07-02 0:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-29 13:29 [PATCH v3] enable x2APIC without interrupt remapping under KVM Gleb Natapov
2009-06-29 14:58 ` Suresh Siddha
2009-06-29 15:10 ` Gleb Natapov
2009-06-29 15:15 ` Suresh Siddha
2009-06-29 15:45 ` Gleb Natapov
2009-06-30 9:24 ` Eric W. Biederman
2009-06-30 9:26 ` Gleb Natapov
2009-06-30 16:44 ` Eric W. Biederman
2009-06-30 17:12 ` Avi Kivity
2009-06-30 19:08 ` Eric W. Biederman
2009-06-30 19:16 ` Avi Kivity
2009-06-30 19:36 ` Eric W. Biederman
2009-07-01 8:30 ` Avi Kivity
2009-07-01 13:31 ` Eric W. Biederman
2009-07-01 22:53 ` Suresh Siddha
2009-07-02 0:17 ` Eric W. Biederman [this message]
2009-07-07 16:14 ` Suresh Siddha
2009-07-10 20:29 ` Eric W. Biederman
2009-06-30 19:03 ` Gleb Natapov
2009-06-30 19:43 ` Eric W. Biederman
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=m1d48kndje.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=avi@redhat.com \
--cc=garyhade@us.ibm.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sheng@linux.intel.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.