Patchwork [PULL] pci,virtio

login
register
mail settings
Submitter Michael S. Tsirkin
Date Jan. 15, 2013, 4:32 p.m.
Message ID <20130115163237.GA7997@redhat.com>
Download mbox | patch
Permalink /patch/212221/
State New
Headers show

Comments

Michael S. Tsirkin - Jan. 15, 2013, 4:32 p.m.
On Tue, Jan 15, 2013 at 11:09:22AM +0100, Andreas Färber wrote:
> Am 13.01.2013 11:47, schrieb Michael S. Tsirkin:
> > The following changes since commit 8e4a424b305e29dc0e454f52df3b35577f342975:
> > 
> >   Revert "virtio-pci: replace byte swap hack" (2013-01-06 18:30:17 +0000)
> > 
> > are available in the git repository at:
> > 
> >   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_anthony
> > 
> > for you to fetch changes up to feb9a2ab4b0260d8d680a7ffd25063dafc7ec628:
> > 
> >   pci-assign: Enable MSIX on device to match guest (2013-01-09 12:11:16 +0200)
> > 
> > ----------------------------------------------------------------
> > pci,virtio
> > 
> > This further optimizes MSIX handling in virtio-pci.
> > Also included is pci cleanup by Paolo, and pci device
> > assignment fix by Alex.
> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > 
> > ----------------------------------------------------------------
> > Alex Williamson (1):
> >       pci-assign: Enable MSIX on device to match guest
> > 
> > Michael S. Tsirkin (8):
> >       virtio: don't waste irqfds on control vqs
> >       msix: add api to access msix message
> >       kvm: add stub for update msi route
> >       virtio-pci: cache msix messages
> 
> This broke the build with PowerKVM:
> 
>   LINK  ppc64-softmmu/qemu-system-ppc64
> ../hw/virtio-pci.o: In function `kvm_virtio_pci_vq_vector_unmask':
> /home/andreas/QEMU/qemu/hw/virtio-pci.c:622: undefined reference to
> `kvm_irqchip_update_msi_route'
> collect2: error: ld returned 1 exit status
> make[1]: *** [qemu-system-ppc64] Fehler 1
> make: *** [subdir-ppc64-softmmu] Fehler 2
> 
> Can you supply a fix? It's not obvious to me how.
> 
> Thanks,
> Andreas

I'm not sure how to build this. Can you tell me pls?
Maybe the below helps?

kvm: add stub for kvm_irqchip_update_msi_route

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Andreas Färber - Jan. 15, 2013, 5:40 p.m.
Am 15.01.2013 17:32, schrieb Michael S. Tsirkin:
> On Tue, Jan 15, 2013 at 11:09:22AM +0100, Andreas Färber wrote:
>> Am 13.01.2013 11:47, schrieb Michael S. Tsirkin:
>>>       virtio-pci: cache msix messages
>>
>> This broke the build with PowerKVM:
>>
>>   LINK  ppc64-softmmu/qemu-system-ppc64
>> ../hw/virtio-pci.o: In function `kvm_virtio_pci_vq_vector_unmask':
>> /home/andreas/QEMU/qemu/hw/virtio-pci.c:622: undefined reference to
>> `kvm_irqchip_update_msi_route'
>> collect2: error: ld returned 1 exit status
>> make[1]: *** [qemu-system-ppc64] Fehler 1
>> make: *** [subdir-ppc64-softmmu] Fehler 2
>>
>> Can you supply a fix? It's not obvious to me how.
> 
> I'm not sure how to build this. Can you tell me pls?

Ideally Daniel would set up your pci branch to build on the revived ppc
buildbot (and on s390, thinking of virtio).

When on a Linux/ppc host the KVM headers are detected, nothing special
needs to be configured to build that code. Cross-compilation should work
as well but obviously needs the right environment; same for a ppc chroot
with linux-user+binfmt.

> Maybe the below helps?
> 
> kvm: add stub for kvm_irqchip_update_msi_route
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Tested-by: Andreas Färber <afaerber@suse.de>

Great, together with Blue's bswap patch this fixes the build for me.
Thanks for the quick response!

Regards,
Andreas

> diff --git a/kvm-all.c b/kvm-all.c
> index fc0c6e7..bac67da 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -1182,6 +1182,11 @@ static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign)
>  {
>      abort();
>  }
> +
> +int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)
> +{
> +    return -ENOSYS;
> +}
>  #endif /* !KVM_CAP_IRQ_ROUTING */
>  
>  int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)

Patch

diff --git a/kvm-all.c b/kvm-all.c
index fc0c6e7..bac67da 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1182,6 +1182,11 @@  static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign)
 {
     abort();
 }
+
+int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)
+{
+    return -ENOSYS;
+}
 #endif /* !KVM_CAP_IRQ_ROUTING */
 
 int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)