2015-07-20 06:12:15

by David Gibson

[permalink] [raw]
Subject: [PATCH] vfio: Enable VFIO device for powerpc

ec53500f "kvm: Add VFIO device" added a special KVM pseudo-device which is
used to handle any necessary interactions between KVM and VFIO.

Currently that device is built on x86 and ARM, but not powerpc, although
powerpc does support both KVM and VFIO. This makes things awkward in
userspace

Currently qemu prints an alarming error message if you attempt to use VFIO
and it can't initialize the KVM VFIO device. We don't want to remove the
warning, because lack of the KVM VFIO device could mean coherency problems
on x86. On powerpc, however, the error is harmless but looks disturbing,
and a test based on host architecture in qemu would be ugly, and break if
we do need the KVM VFIO device for something important in future.

There's nothing preventing the KVM VFIO device from being built for
powerpc, so this patch turns it on. It won't actually do anything, since
we don't define any of the arch_*() hooks, but it will make qemu happy and
we can extend it in future if we need to.

Signed-off-by: David Gibson <[email protected]>
---
arch/powerpc/kvm/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
index 0570eef..7f7b6d8 100644
--- a/arch/powerpc/kvm/Makefile
+++ b/arch/powerpc/kvm/Makefile
@@ -8,7 +8,7 @@ ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
KVM := ../../../virt/kvm

common-objs-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
- $(KVM)/eventfd.o
+ $(KVM)/eventfd.o $(KVM)/vfio.o

CFLAGS_e500_mmu.o := -I.
CFLAGS_e500_mmu_host.o := -I.
--
2.4.3


2015-07-31 07:28:38

by Eric Auger

[permalink] [raw]
Subject: Re: [PATCH] vfio: Enable VFIO device for powerpc

Hi David,

As noticed we did the same on ARM (4.2) for the same reason.
Reviewed-by: Eric Auger <[email protected]>

Best Regards

Eric



On 07/20/2015 08:12 AM, David Gibson wrote:
> ec53500f "kvm: Add VFIO device" added a special KVM pseudo-device which is
> used to handle any necessary interactions between KVM and VFIO.
>
> Currently that device is built on x86 and ARM, but not powerpc, although
> powerpc does support both KVM and VFIO. This makes things awkward in
> userspace
>
> Currently qemu prints an alarming error message if you attempt to use VFIO
> and it can't initialize the KVM VFIO device. We don't want to remove the
> warning, because lack of the KVM VFIO device could mean coherency problems
> on x86. On powerpc, however, the error is harmless but looks disturbing,
> and a test based on host architecture in qemu would be ugly, and break if
> we do need the KVM VFIO device for something important in future.
>
> There's nothing preventing the KVM VFIO device from being built for
> powerpc, so this patch turns it on. It won't actually do anything, since
> we don't define any of the arch_*() hooks, but it will make qemu happy and
> we can extend it in future if we need to.
>
> Signed-off-by: David Gibson <[email protected]>
> ---
> arch/powerpc/kvm/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
> index 0570eef..7f7b6d8 100644
> --- a/arch/powerpc/kvm/Makefile
> +++ b/arch/powerpc/kvm/Makefile
> @@ -8,7 +8,7 @@ ccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
> KVM := ../../../virt/kvm
>
> common-objs-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o \
> - $(KVM)/eventfd.o
> + $(KVM)/eventfd.o $(KVM)/vfio.o
>
> CFLAGS_e500_mmu.o := -I.
> CFLAGS_e500_mmu_host.o := -I.
>