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 6/6] KVM: assigned dev: MSI-X mask support
Date: Thu, 18 Nov 2010 11:37:37 +0200 [thread overview]
Message-ID: <20101118093737.GI16832@redhat.com> (raw)
In-Reply-To: <4CE4F1A2.9010604@redhat.com>
On Thu, Nov 18, 2010 at 11:28:02AM +0200, Avi Kivity wrote:
> On 11/18/2010 03:58 AM, Sheng Yang wrote:
> >On Wednesday 17 November 2010 21:58:00 Avi Kivity wrote:
> >> On 11/15/2010 11:15 AM, Sheng Yang wrote:
> >> > This patch enable per-vector mask for assigned devices using MSI-X.
> >> >
> >> > This patch provided two new APIs: one is for guest to specific device's
> >> > MSI-X table address in MMIO, the other is for userspace to get
> >> > information about mask bit.
> >> >
> >> > All the mask bit operation are kept in kernel, in order to accelerate.
> >> > Userspace shouldn't access the device MMIO directly for the information,
> >> > instead it should uses provided API to do so.
> >> >
> >> > Signed-off-by: Sheng Yang<sheng@linux.intel.com>
> >> > ---
> >> >
> >> > arch/x86/kvm/x86.c | 1 +
> >> > include/linux/kvm.h | 32 +++++
> >> > include/linux/kvm_host.h | 5 +
> >> > virt/kvm/assigned-dev.c | 318
> >> > +++++++++++++++++++++++++++++++++++++++++++++- 4 files changed,
> >355
> >> > insertions(+), 1 deletions(-)
> >>
> >> Documentation?
> >
> >For we are keeping changing the API for last several versions, I'd like to settle
> >down the API first. Would bring back the document after API was agreed.
>
> Maybe for APIs we should start with only the documentation patch,
> agree on that, and move on to the implementation.
>
> >> What if it's a 64-bit write on a 32-bit host?
> >
> >In fact we haven't support QWORD(64bit) accessing now. The reason is we haven't
> >seen any OS is using it in this way now, so I think we can leave it later.
> >
> >Also seems QEmu doesn't got the way to handle 64bit MMIO.
>
> There's a difference, if the API doesn't support it, we can't add it
> later without changing both kernel and userspace.
>
> >>
> >> That's not very good. We should do the entire thing in the kernel or in
> >> userspace. We can have a new EXIT_REASON to let userspace know an msix
> >> entry changed, and it should read it from the kernel.
> >
> >If you look it in this way:
> >1. Mask bit owned by kernel.
> >2. Routing owned by userspace.
> >3. Read the routing in kernel is an speed up for normal operation - because kernel
> >can read from them.
> >
> >So I think the logic here is clear to understand.
>
> Still, it's complicated and the state is split across multiple components.
>
> >But if we can modify the routing in kernel, it would be raise some sync issues due
> >to both kernel and userspace own routing. So maybe the better solution is move the
> >routing to kernel.
>
> That may work, but I don't think we can do this for vfio.
Actually, if done right it might work for VFIO: we would need
2 eventfds to notify it that it has to mask/unmask entries.
The interface would need to be careful to keep programming of the guest
side emulation and the masking in the backend device completely
separate.
> --
> error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-11-18 9:37 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-15 9:15 [PATCH 0/6 v5] MSI-X mask support for assigned device Sheng Yang
2010-11-15 9:15 ` [PATCH 1/6] PCI: MSI: Move MSI-X entry definition to pci_regs.h Sheng Yang
2010-11-15 9:15 ` [PATCH 2/6] PCI: Add mask bit definition for MSI-X table Sheng Yang
2010-11-15 9:15 ` [PATCH 3/6] KVM: Move struct kvm_io_device to kvm_host.h Sheng Yang
2010-11-15 9:15 ` [PATCH 4/6] KVM: Add kvm_get_irq_routing_entry() func Sheng Yang
2010-11-17 14:01 ` Avi Kivity
2010-11-18 2:22 ` Sheng Yang
2010-11-18 9:30 ` Avi Kivity
2010-11-18 9:41 ` Michael S. Tsirkin
2010-11-18 11:59 ` Sheng Yang
2010-11-18 12:33 ` Michael S. Tsirkin
2010-11-18 12:40 ` Sheng Yang
2010-11-15 9:15 ` [PATCH 5/6] KVM: assigned dev: Clean up assigned_device's flag Sheng Yang
2010-11-15 9:15 ` [PATCH 6/6] KVM: assigned dev: MSI-X mask support Sheng Yang
2010-11-15 9:27 ` [PATCH 6/6 v5 updated] " Sheng Yang
2010-11-16 19:45 ` [PATCH 6/6] " Marcelo Tosatti
2010-11-17 1:29 ` Sheng Yang
2010-11-17 13:35 ` Marcelo Tosatti
2010-11-18 9:43 ` Michael S. Tsirkin
2010-11-17 13:58 ` Avi Kivity
2010-11-18 1:58 ` Sheng Yang
2010-11-18 6:21 ` Michael S. Tsirkin
2010-11-18 6:39 ` Sheng Yang
2010-11-18 9:28 ` Avi Kivity
2010-11-18 9:37 ` Michael S. Tsirkin [this message]
2010-11-18 12:08 ` 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=20101118093737.GI16832@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