Re: [PATCH v3 18/19] hw/arm: Do not build to 'virt' machine on Xen

2020-03-16 Thread Philippe Mathieu-Daudé

On 3/16/20 6:11 PM, Peter Maydell wrote:

On Mon, 16 Mar 2020 at 16:08, Philippe Mathieu-Daudé  wrote:


Xen on ARM does not use QEMU machines [*]. Disable the 'virt'
machine there to avoid odd errors such:

 CC  i386-softmmu/hw/cpu/a15mpcore.o
   hw/cpu/a15mpcore.c:28:10: fatal error: kvm_arm.h: No such file or directory

[*] 
https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Use_of_qemu-system-i386_on_ARM

Signed-off-by: Philippe Mathieu-Daudé 
---
Cc: Stefano Stabellini 
Cc: Anthony Perard 
Cc: Paul Durrant 
Cc: xen-de...@lists.xenproject.org
---
  hw/arm/Kconfig | 1 +
  1 file changed, 1 insertion(+)

diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 8e801cd15f..69a8e30125 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -1,5 +1,6 @@
  config ARM_VIRT
  bool
+depends on !XEN
  default y if KVM
  imply PCI_DEVICES
  imply TEST_DEVICES
--


This seems odd to me:
(1) the error message you quote is for a15mpcore.c, not virt.c


This is the first device the virt board selects:

config ARM_VIRT
bool
imply PCI_DEVICES
imply TEST_DEVICES
imply VFIO_AMD_XGBE
imply VFIO_PLATFORM
imply VFIO_XGMAC
imply TPM_TIS_SYSBUS
select A15MPCORE
...


(2) shouldn't this be prevented by something saying "don't build
guest architecture X boards into Y-softmmu", rather than a specific
flag for a specific arm board ?


Yes, agreed. This surgical change was quicker for my testing, but we 
don't need this patch right now, so let's drop it.




thanks
-- PMM






Re: [PATCH v3 18/19] hw/arm: Do not build to 'virt' machine on Xen

2020-03-16 Thread Stefano Stabellini
On Mon, 16 Mar 2020, Philippe Mathieu-Daudé wrote:
> Xen on ARM does not use QEMU machines [*]. Disable the 'virt'
> machine there to avoid odd errors such:
> 
> CC  i386-softmmu/hw/cpu/a15mpcore.o
>   hw/cpu/a15mpcore.c:28:10: fatal error: kvm_arm.h: No such file or directory
> 
> [*] 
> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Use_of_qemu-system-i386_on_ARM


I confirm that what's written on that wikipage is correct: Xen on ARM
doesn't use QEMU for emulation, only as a PV backends provider. As such,
and also because the code is a bit entangled with the x86 platform, even
on ARM we are building and running qemu-system-i386 to get the PV disk
and PV framebuffer. Of course, no x86 emulation is actually done.

Ideally we would have a non-arch-specific machine type for the PV
backends, but that doesn't exist today.

In short, I think this patch is fine, at least until somebody comes
around and tries to add emulation to Xen on ARM.



> Signed-off-by: Philippe Mathieu-Daudé 
> ---
> Cc: Stefano Stabellini 
> Cc: Anthony Perard 
> Cc: Paul Durrant 
> Cc: xen-de...@lists.xenproject.org
> ---
>  hw/arm/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> index 8e801cd15f..69a8e30125 100644
> --- a/hw/arm/Kconfig
> +++ b/hw/arm/Kconfig
> @@ -1,5 +1,6 @@
>  config ARM_VIRT
>  bool
> +depends on !XEN
>  default y if KVM
>  imply PCI_DEVICES
>  imply TEST_DEVICES
> -- 
> 2.21.1
> 

Re: [PATCH v3 18/19] hw/arm: Do not build to 'virt' machine on Xen

2020-03-16 Thread Peter Maydell
On Mon, 16 Mar 2020 at 16:08, Philippe Mathieu-Daudé  wrote:
>
> Xen on ARM does not use QEMU machines [*]. Disable the 'virt'
> machine there to avoid odd errors such:
>
> CC  i386-softmmu/hw/cpu/a15mpcore.o
>   hw/cpu/a15mpcore.c:28:10: fatal error: kvm_arm.h: No such file or directory
>
> [*] 
> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Use_of_qemu-system-i386_on_ARM
>
> Signed-off-by: Philippe Mathieu-Daudé 
> ---
> Cc: Stefano Stabellini 
> Cc: Anthony Perard 
> Cc: Paul Durrant 
> Cc: xen-de...@lists.xenproject.org
> ---
>  hw/arm/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> index 8e801cd15f..69a8e30125 100644
> --- a/hw/arm/Kconfig
> +++ b/hw/arm/Kconfig
> @@ -1,5 +1,6 @@
>  config ARM_VIRT
>  bool
> +depends on !XEN
>  default y if KVM
>  imply PCI_DEVICES
>  imply TEST_DEVICES
> --

This seems odd to me:
(1) the error message you quote is for a15mpcore.c, not virt.c
(2) shouldn't this be prevented by something saying "don't build
guest architecture X boards into Y-softmmu", rather than a specific
flag for a specific arm board ?

thanks
-- PMM