From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Eric Auger <eric.auger@redhat.com>
Cc: eric.auger.pro@gmail.com, marc.zyngier@arm.com,
christoffer.dall@linaro.org, andre.przywara@arm.com,
drjones@redhat.com, kvmarm@lists.cs.columbia.edu,
kvm@vger.kernel.org, pbonzini@redhat.com
Subject: Re: [RFC v7 1/7] KVM: api: pass the devid in the msi routing entry
Date: Thu, 21 Jul 2016 18:01:25 +0200 [thread overview]
Message-ID: <20160721160124.GB32739@potion> (raw)
In-Reply-To: <1468848357-2331-2-git-send-email-eric.auger@redhat.com>
2016-07-18 13:25+0000, Eric Auger:
> On ARM, the MSI msg (address and data) comes along with
> out-of-band device ID information. The device ID encodes the
> device that writes the MSI msg. Let's convey the device id in
> kvm_irq_routing_msi and use KVM_MSI_VALID_DEVID flag value in
> kvm_irq_routing_entry to indicate the msi devid is populated.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
>
> ---
>
> v6 -> v7:
> - Added Andre's R-b
>
> v4 -> v5:
> - some rephrasing in api.txt according to Christoffer's comments
> v2 -> v3:
> - replace usage of KVM_IRQ_ROUTING_EXTENDED_MSI type by
> usage of KVM_MSI_VALID_DEVID flag
> - add note about KVM_CAP_MSI_DEVID capability
>
> v1 -> v2:
> - devid id passed in kvm_irq_routing_msi instead of in
> kvm_irq_routing_entry
>
> RFC -> PATCH
> - remove kvm_irq_routing_extended_msi and use union instead
> ---
> diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
> @@ -1479,9 +1483,20 @@ struct kvm_irq_routing_msi {
> __u32 address_lo;
> __u32 address_hi;
> __u32 data;
> - __u32 pad;
> + union {
> + __u32 pad;
> + __u32 devid;
> + };
> };
>
> +devid: If KVM_MSI_VALID_DEVID is set, contains a unique device identifier
> + for the device that wrote the MSI message.
> + For PCI, this is usually a BFD identifier in the lower 16 bits.
> +
> +The per-VM KVM_CAP_MSI_DEVID capability advertises the requirement to
> +provide the device ID. If this capability is not set, userland cannot
> +rely on the kernel to allow the KVM_MSI_VALID_DEVID flag being set.
It would be better to enforce this mentioned dependency on set
KVM_CAP_MSI_DEVID, but is the dependency even required?
It seems we were checking flags for zero, so KVM_MSI_VALID_DEVID
couldn't have been set by old userspaces, therefor it is ok to only make
it depend only on the presence of KVM_CAP_MSI_DEVID, like the patch does
now. (I assume KVM_MSI_VALID_DEVID and KVM_CAP_MSI_DEVID are being
merged at the same time.)
Then there would be little point in having KVM_CAP_MSI_DEVID enableable,
so does enabling KVM_CAP_MSI_DEVID mean that every MSI must have a valid
devid?
Thanks.
---
I'm confused about the purpose behind two dynamic flags that seem to do
that same thing, but those are just nitpicks, the API looks good in
general.
next prev parent reply other threads:[~2016-07-21 16:01 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-18 13:25 [RFC v7 0/7] KVM: arm/arm64: gsi routing support Eric Auger
2016-07-18 13:25 ` [RFC v7 1/7] KVM: api: pass the devid in the msi routing entry Eric Auger
2016-07-21 16:01 ` Radim Krčmář [this message]
2016-07-21 16:43 ` Andre Przywara
2016-07-21 17:15 ` Radim Krčmář
2016-07-21 20:48 ` Auger Eric
2016-07-18 13:25 ` [RFC v7 2/7] KVM: kvm_host: add devid in kvm_kernel_irq_routing_entry Eric Auger
2016-07-21 16:13 ` Radim Krčmář
2016-07-21 16:54 ` Marc Zyngier
2016-07-21 17:22 ` Radim Krčmář
2016-07-21 17:25 ` Marc Zyngier
2016-07-21 20:47 ` Auger Eric
2016-07-18 13:25 ` [RFC v7 3/7] KVM: irqchip: convey devid to kvm_set_msi Eric Auger
2016-07-18 13:25 ` [RFC v7 4/7] KVM: move kvm_setup_default/empty_irq_routing declaration in arch specific header Eric Auger
2016-07-18 13:25 ` [RFC v7 5/7] KVM: arm/arm64: enable irqchip routing Eric Auger
2016-07-19 14:56 ` Marc Zyngier
2016-07-19 15:46 ` Paolo Bonzini
2016-07-19 16:16 ` Marc Zyngier
2016-07-20 7:31 ` Auger Eric
2016-07-21 15:33 ` Marc Zyngier
2016-07-18 13:25 ` [RFC v7 6/7] KVM: arm/arm64: enable MSI routing Eric Auger
2016-07-21 16:21 ` Radim Krčmář
2016-07-21 20:50 ` Auger Eric
2016-07-18 13:25 ` [RFC v7 7/7] KVM: arm: enable KVM_SIGNAL_MSI and " Eric Auger
2016-07-21 16:33 ` Radim Krčmář
2016-07-21 21:10 ` Auger Eric
2016-07-22 13:39 ` Radim Krčmář
2016-07-22 13:52 ` Auger Eric
2016-07-22 13:56 ` Radim Krčmář
2016-07-22 13:59 ` Auger Eric
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=20160721160124.GB32739@potion \
--to=rkrcmar@redhat.com \
--cc=andre.przywara@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=marc.zyngier@arm.com \
--cc=pbonzini@redhat.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