PING! The discussion has suddenly stopped... What is our status? Is ITS v2 patch being developed, or what? And do we have some conclusion on irqfd ? Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia > -----Original Message----- > From: kvm-owner@xxxxxxxxxxxxxxx [mailto:kvm-owner@xxxxxxxxxxxxxxx] On Behalf Of Pavel > Fedin > Sent: Wednesday, June 10, 2015 6:30 PM > To: 'Eric Auger'; 'Marc Zyngier'; 'Andre Przywara'; christoffer.dall@xxxxxxxxxx > Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx > Subject: RE: IRQFD support with GICv3 ITS (WAS: RE: [PATCH 00/13] arm64: KVM: GICv3 ITS > emulation) > > Hi! > > > indeed in newly added qemu kvm-all.c kvm_arch_msi_data_to_gsi we could > > call a new ioctl that translates the data + deviceid? into an LPI and > > program irqfd with that LPI. This is done once when setting irqfd up. > > This also means extending irqfd support to lpi injection, gsi being the > > LPI index if gsi >= 8192. in that case we continue using > > kvm_gsi_direct_mapping and gsi still is an IRQ index. > > This is exactly what i have done in my kernel + qemu. I have added a new KVM capability > and then in qemu i do this: > --- cut --- > if (kvm_gsi_kernel_mapping()) { > struct kvm_msi msi; > > msi.address_lo = (uint32_t)msg.address; > msi.address_hi = msg.address >> 32; > msi.data = le32_to_cpu(msg.data); > memset(msi.pad, 0, sizeof(msi.pad)); > > if (dev) { > msi.devid = (pci_bus_num(dev->bus) << 8) | dev->devfn; > msi.flags = KVM_MSI_VALID_DEVID; > } else { > msi.devid = 0; > msi.flags = 0; > } > > return kvm_vm_ioctl(s, KVM_TRANSLATE_MSI, &msi); > } > --- cut --- > KVM_TRANSLATE_MSI returns an LPI number. This seemed to be the simplest and fastest thing > to do. > If someone is interested, i could prepare an RFC patch series for this, which would apply > on top of Andre's ITS implementation. > > Kind regards, > Pavel Fedin > Expert Engineer > Samsung Electronics Research center Russia > > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html