From: "Michael S. Tsirkin" <mst@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Alex Williamson <alex.williamson@hp.com>,
kvm@vger.kernel.org, sheng.yang@intel.com
Subject: Re: [PATCH v4] kvm: Use a bitmap for tracking used GSIs
Date: Mon, 18 May 2009 18:01:30 +0300 [thread overview]
Message-ID: <20090518150130.GC23940@redhat.com> (raw)
In-Reply-To: <4A1174B1.9080201@redhat.com>
On Mon, May 18, 2009 at 05:46:09PM +0300, Avi Kivity wrote:
> Michael S. Tsirkin wrote:
>>> If it generates the interrupt after masking it in the msi-x entry,
>>> we'll see it. If it generates the interrupt before masking it, it
>>> may or may not receive the interrupt, even on real hardware.
>>>
>>
>> Yes but in the later case, real hardware must re-send the pending
>> interrupt after it is unmasked (that's the spec). We would just lose it.
>>
>
> That's a different matter. We need to buffer the interrupt pending bit,
> and a way for userspace to either query that buffer or have a
> conditional injection (inject_if_pending).
Here's the race as I see it: we discussed the possibility
of making kernel and user share and actual memory page,
and using that for MSI-X tables.
host kernel want to send msi x message
host kernel test mask bit: unmasked
guest sets mask bit
guest does read to flash msi writes
guest does sync irq and makes sure there are no
outstanging interrupts
---> at this stage guest expects not to get interrupts
guest starts editing msix entry
host kernel never saw mask so it sends message to the old address
or even a corrupted address which the guest is in
the middle of editing
bad things happen
This race is not easy to solve, except by catching writes to msix table,
and syncronising them with interrupt delivery.
--
MST
next prev parent reply other threads:[~2009-05-18 15:02 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-07 22:22 [PATCH] kvm: Use a bitmap for tracking used GSIs Alex Williamson
2009-05-08 22:31 ` [PATCH v2] " Alex Williamson
2009-05-12 19:39 ` Michael S. Tsirkin
2009-05-12 21:56 ` Alex Williamson
2009-05-12 22:07 ` [PATCH v3] " Alex Williamson
2009-05-13 3:30 ` Yang, Sheng
2009-05-13 3:42 ` Alex Williamson
2009-05-13 4:10 ` Alex Williamson
2009-05-13 4:15 ` Yang, Sheng
2009-05-13 4:41 ` [PATCH v4] " Alex Williamson
2009-05-13 4:58 ` Yang, Sheng
2009-05-13 9:47 ` Avi Kivity
2009-05-13 12:28 ` Alex Williamson
2009-05-13 12:35 ` Avi Kivity
2009-05-13 12:55 ` Alex Williamson
2009-05-13 13:00 ` Avi Kivity
2009-05-13 13:11 ` Alex Williamson
2009-05-13 13:55 ` Michael S. Tsirkin
2009-05-13 14:15 ` Alex Williamson
2009-05-13 14:30 ` Michael S. Tsirkin
2009-05-13 14:33 ` Alex Williamson
2009-05-13 23:07 ` Alex Williamson
2009-05-17 20:47 ` Avi Kivity
2009-05-18 11:12 ` Michael S. Tsirkin
2009-05-18 11:36 ` Avi Kivity
2009-05-18 12:19 ` Michael S. Tsirkin
2009-05-18 12:33 ` Avi Kivity
2009-05-18 13:45 ` Michael S. Tsirkin
2009-05-18 13:55 ` Avi Kivity
2009-05-18 14:40 ` Michael S. Tsirkin
2009-05-18 14:46 ` Avi Kivity
2009-05-18 15:01 ` Michael S. Tsirkin [this message]
2009-05-18 15:08 ` Avi Kivity
2009-05-13 14:32 ` Michael S. Tsirkin
2009-05-13 15:13 ` [PATCH v5] " Alex Williamson
2009-05-13 16:05 ` Michael S. Tsirkin
2009-05-13 17:13 ` Alex Williamson
2009-05-17 20:51 ` Avi Kivity
2009-05-13 17:28 ` [PATCH v6] " Alex Williamson
2009-05-13 18:46 ` Michael S. Tsirkin
2009-05-17 20:54 ` Avi Kivity
2009-05-18 22:32 ` Alex Williamson
2009-05-19 8:01 ` Avi Kivity
2009-05-19 20:48 ` [PATCH v7] " Alex Williamson
2009-05-20 11:55 ` Avi Kivity
2009-05-13 7:03 ` [PATCH v3] " Michael S. Tsirkin
2009-05-13 12:15 ` Alex Williamson
2009-05-13 7:04 ` Michael S. Tsirkin
2009-05-13 12:19 ` Alex Williamson
2009-05-13 14:25 ` Michael S. Tsirkin
2009-05-17 20:49 ` Avi Kivity
2009-05-11 12:00 ` [PATCH] " Yang, Sheng
2009-05-12 18:45 ` Alex Williamson
2009-05-12 19:06 ` Alex Williamson
2009-05-12 19:10 ` Michael S. Tsirkin
2009-05-12 19:23 ` Alex Williamson
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=20090518150130.GC23940@redhat.com \
--to=mst@redhat.com \
--cc=alex.williamson@hp.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=sheng.yang@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.