From: "Michael S. Tsirkin" <mst@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Sheng Yang <sheng@linux.intel.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
kvm@vger.kernel.org, Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [PATCH 2/2][RFC] KVM: Emulate MSI-X table and PBA in kernel
Date: Thu, 30 Dec 2010 12:32:56 +0200 [thread overview]
Message-ID: <20101230103256.GB6441@redhat.com> (raw)
In-Reply-To: <4D1C5124.2090409@redhat.com>
On Thu, Dec 30, 2010 at 11:30:12AM +0200, Avi Kivity wrote:
> On 12/30/2010 09:47 AM, Michael S. Tsirkin wrote:
> >I am not really suggesting this. What I say is PBA is unimplemented
> >let us not commit to an interface yet.
>
> What happens to a guest that tries to use PBA?
> It's a mandatory part of MSI-X, no?
Yes. Unfortunately the pending bit is in fact a communication channel
used for function specific purposes when mask bit is set,
and 0 when unset. The spec even seems to *require* this use:
I refer to this:
For MSI and MSI-X, while a vector is masked, the function is prohibited
from sending the associated message, and the function must set the
associated Pending bit whenever the function would otherwise send the
message. When software unmasks a vector whose associated Pending bit is
set, the function must schedule sending the associated message, and
clear the Pending bit as soon as the message has been sent. Note that
clearing the MSI-X Function Mask bit may result in many messages needing
to be sent.
If a masked vector has its Pending bit set, and the associated
underlying interrupt events are somehow satisfied (usually by software
though the exact manner is function-specific), the function must clear
the Pending bit, to avoid sending a spurious interrupt message later
when software unmasks the vector. However, if a subsequent interrupt
event occurs while the vector is still masked, the function must again
set the Pending bit.
Software is permitted to mask one or more vectors indefinitely, and
service their associated interrupt events strictly based on polling
their Pending bits. A function must set and clear its Pending bits as
necessary to support this “pure polling” mode of operation.
For assigned devices, supporting this would require
that the mask bits on the device are set if the mask bit in
guest is set (otherwise pending bits are disabled).
Existing code does not support PBA in assigned devices, so at least it's
not a regression there, and the virtio spec says nothing about this so
we should be fine.
> --
> error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-12-30 10:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-22 8:44 [PATCH 0/2 v6] MSI-X mask bit support for KVM Sheng Yang
2010-12-22 8:44 ` [PATCH 1/2] KVM: Move struct kvm_io_device to kvm_host.h Sheng Yang
2010-12-22 8:44 ` [PATCH 2/2][RFC] KVM: Emulate MSI-X table and PBA in kernel Sheng Yang
2010-12-28 12:26 ` Avi Kivity
2010-12-29 7:18 ` Sheng Yang
2010-12-29 8:31 ` Michael S. Tsirkin
2010-12-29 8:55 ` Sheng Yang
2010-12-29 9:28 ` Michael S. Tsirkin
2010-12-30 7:32 ` Sheng Yang
2010-12-30 7:47 ` Michael S. Tsirkin
2010-12-30 7:55 ` Sheng Yang
2010-12-30 8:15 ` Michael S. Tsirkin
2010-12-30 8:24 ` Sheng Yang
2010-12-30 8:52 ` Michael S. Tsirkin
2010-12-30 9:13 ` Sheng Yang
2010-12-30 9:30 ` Avi Kivity
2010-12-30 10:32 ` Michael S. Tsirkin [this message]
2010-12-30 10:37 ` Avi Kivity
2010-12-30 11:07 ` Michael S. Tsirkin
2010-12-30 11:27 ` Avi Kivity
2010-12-30 12:17 ` Michael S. Tsirkin
2010-12-31 3:05 ` Sheng Yang
2011-01-02 9:26 ` Michael S. Tsirkin
2011-01-02 10:26 ` Avi Kivity
2011-01-02 10:39 ` Michael S. Tsirkin
2011-01-02 10:58 ` Avi Kivity
2011-01-02 11:51 ` Michael S. Tsirkin
2011-01-02 13:34 ` Avi Kivity
2011-01-02 13:57 ` Michael S. Tsirkin
2010-12-30 9:28 ` Avi Kivity
2010-12-30 10:03 ` Michael S. Tsirkin
2010-12-28 4:05 ` [PATCH 0/2 v6] MSI-X mask bit support for KVM Sheng Yang
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=20101230103256.GB6441@redhat.com \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=sheng@linux.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