From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Auger Eric <eric.auger@redhat.com>
Cc: kvm@vger.kernel.org, marc.zyngier@arm.com,
andre.przywara@arm.com, pbonzini@redhat.com,
kvmarm@lists.cs.columbia.edu, eric.auger.pro@gmail.com
Subject: Re: [RFC v7 7/7] KVM: arm: enable KVM_SIGNAL_MSI and MSI routing
Date: Fri, 22 Jul 2016 15:39:37 +0200 [thread overview]
Message-ID: <20160722133937.GA11512@potion> (raw)
In-Reply-To: <9fa6bc46-6711-5825-48a3-1de5262ee34f@redhat.com>
2016-07-21 23:10+0200, Auger Eric:
> On 21/07/2016 18:33, Radim Krčmář wrote:
>> 2016-07-18 13:25+0000, Eric Auger:
>>> If the ITS modality is not available, let's simply support MSI
>>> injection by transforming the MSI.data into an SPI ID.
>>>
>>> This becomes possible to use KVM_SIGNAL_MSI ioctl and MSI
>>> routing for arm too.
>>>
>>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>>>
>>> ---
>>> diff --git a/virt/kvm/arm/vgic/vgic-irqfd.c b/virt/kvm/arm/vgic/vgic-irqfd.c
>>> +static int vgic_v2m_inject_msi(struct kvm *kvm, struct kvm_msi *msi)
>>> +{
>>> + if (msi->flags & KVM_MSI_VALID_DEVID)
>>> + return -EINVAL;
>>> + if (!vgic_valid_spi(kvm, msi->data))
>>> + return -EINVAL;
>>> +
>>> + return kvm_vgic_inject_irq(kvm, 0, msi->data, 1);
>>
>> Hm, this isn't very MSI related ...
>>
>> arm already has KVM_IRQ_LINE/kvm_vm_ioctl_irq_line with
>> KVM_ARM_IRQ_TYPE_SPI that does
>> kvm_vgic_inject_irq(kvm, 0, irq_num, level)
>>
>> Is that interface lacking?
>
> You mean KVM_SIGNAL_MSI? Well at QEMU level, for ARM/ARM64 is doesn't.
No, I meant KVM_IRQ_LINE, the one that is used to deliver SPI today.
Or isn't it?
> For kvm-tools I guess, Andre manages without.
>
> My first feeling was it is part of the KVM API and we can implement it
> easily for GICv2M, as we do for GICv3 ITS . This can avoid a user app to
> do what QEMU implements as "kvm_gsi_direct_mapping" and manage the
> translation into the semantic of the ARM GSI.
I think that reusing KVM_SIGNAL_MSI and KVM_IRQ_ROUTING_MSI for SPI is
unfortunate.
SPI only uses msi.data, which makes remaining fields in the msi struct
arbitrary and [5/7] defined KVM_IRQ_ROUTING_IRQCHIP for SPI, so two
route types now do the same, but only sometimes (without ITS), which
makes the situation even less understandable ...
Delivering SPI as KVM_IRQ_ROUTING_IRQCHIP seems more sensible and if we
wanted ad-hoc delivery of KVM_IRQ_ROUTING_IRQCHIP, then I would prefer a
new interface to two different meanings for KVM_SIGNAL_MSI:
KVM_SIGNAL_MSI was created because we didn't have anything that could
inject an interrupt without setting up a route with KVM_SET_GSI_ROUTING
and we are still missing a generic interface to do that.
> But Well, if you prefer we do not implement it for GICv2M, since
> considered as far fetched I can remove this patch.
I do, thanks. Documentation in [6/7] was ahead and needs changing then.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
next prev parent reply other threads:[~2016-07-22 13:33 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ář
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ář [this message]
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=20160722133937.GA11512@potion \
--to=rkrcmar@redhat.com \
--cc=andre.przywara@arm.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 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.