diff mbox series

[RFC,09/15] meson.build: introduce CONFIG_XEN_HVM flag

Message ID 20201105175153.30489-10-alex.bennee@linaro.org
State New
Headers show
Series Xen guest-loader and arm64 build fixes/enhancements | expand

Commit Message

Alex Bennée Nov. 5, 2020, 5:51 p.m. UTC
While Xen traditionally uses i386-softmmu to run it's PV models on all
architectures some models are very much x86 only. This includes the
full hardware virtualisation (HVM) which is only used on x86 HW. By
introducing the symbol we can also fix the inclusion of
XEN_PCI_PASSTHROUGH which should only be built for x86 (and Linux)
systems.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 meson.build   | 6 +++++-
 accel/Kconfig | 3 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé Nov. 5, 2020, 6:21 p.m. UTC | #1
On 11/5/20 6:51 PM, Alex Bennée wrote:
> While Xen traditionally uses i386-softmmu to run it's PV models on all

> architectures some models are very much x86 only. This includes the

> full hardware virtualisation (HVM) which is only used on x86 HW. By

> introducing the symbol we can also fix the inclusion of

> XEN_PCI_PASSTHROUGH which should only be built for x86 (and Linux)

> systems.

> 

> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  meson.build   | 6 +++++-

>  accel/Kconfig | 3 +++

>  2 files changed, 8 insertions(+), 1 deletion(-)


Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Philippe Mathieu-Daudé Nov. 5, 2020, 6:47 p.m. UTC | #2
On 11/5/20 6:51 PM, Alex Bennée wrote:
> While Xen traditionally uses i386-softmmu to run it's PV models on all

> architectures some models are very much x86 only. This includes the

> full hardware virtualisation (HVM) which is only used on x86 HW. By

> introducing the symbol we can also fix the inclusion of

> XEN_PCI_PASSTHROUGH which should only be built for x86 (and Linux)

> systems.

> 

> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  meson.build   | 6 +++++-

>  accel/Kconfig | 3 +++

>  2 files changed, 8 insertions(+), 1 deletion(-)

> 

> diff --git a/meson.build b/meson.build

> index 58e95227ea..46e4c2fc3a 100644

> --- a/meson.build

> +++ b/meson.build

> @@ -83,6 +83,7 @@ endif

>  if cpu in ['x86', 'x86_64']

>    accelerator_targets += {

>      'CONFIG_HAX': ['i386-softmmu', 'x86_64-softmmu'],

> +    'CONFIG_XEN_HVM': ['i386-softmmu', 'x86_64-softmmu'],


I'm confused while looking at
https://wiki.xen.org/wiki/Xen_Project_Software_Overview#ARM_Hosts

Maybe it makes sense to add both CONFIG_XEN_PV /
CONFIG_XEN_HVM accelerators?

>      'CONFIG_HVF': ['x86_64-softmmu'],

>      'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'],

>    }

> @@ -204,6 +205,9 @@ if not get_option('kvm').disabled() and targetos == 'linux'

>  endif

>  if not get_option('xen').disabled() and 'CONFIG_XEN_BACKEND' in config_host

>    accelerators += 'CONFIG_XEN'

> +  if host_machine.cpu() == 'x86_64'


Are you sure it is restricted to 64-bit host? I can't find
the reference.

> +    accelerators += 'CONFIG_XEN_HVM'

> +  endif

>    have_xen_pci_passthrough = not get_option('xen_pci_passthrough').disabled() and targetos == 'linux'
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 58e95227ea..46e4c2fc3a 100644
--- a/meson.build
+++ b/meson.build
@@ -83,6 +83,7 @@  endif
 if cpu in ['x86', 'x86_64']
   accelerator_targets += {
     'CONFIG_HAX': ['i386-softmmu', 'x86_64-softmmu'],
+    'CONFIG_XEN_HVM': ['i386-softmmu', 'x86_64-softmmu'],
     'CONFIG_HVF': ['x86_64-softmmu'],
     'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'],
   }
@@ -204,6 +205,9 @@  if not get_option('kvm').disabled() and targetos == 'linux'
 endif
 if not get_option('xen').disabled() and 'CONFIG_XEN_BACKEND' in config_host
   accelerators += 'CONFIG_XEN'
+  if host_machine.cpu() == 'x86_64'
+    accelerators += 'CONFIG_XEN_HVM'
+  endif
   have_xen_pci_passthrough = not get_option('xen_pci_passthrough').disabled() and targetos == 'linux'
 else
   have_xen_pci_passthrough = false
@@ -916,7 +920,7 @@  foreach target : target_dirs
     if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, [])
       config_target += { sym: 'y' }
       config_all += { sym: 'y' }
-      if sym == 'CONFIG_XEN' and have_xen_pci_passthrough
+      if sym == 'CONFIG_XEN_HVM' and have_xen_pci_passthrough
         config_target += { 'CONFIG_XEN_PCI_PASSTHROUGH': 'y' }
       endif
       have_accel = true
diff --git a/accel/Kconfig b/accel/Kconfig
index 2ad94a3839..4cd54029bd 100644
--- a/accel/Kconfig
+++ b/accel/Kconfig
@@ -7,3 +7,6 @@  config KVM
 config XEN
     bool
     select FSDEV_9P if VIRTFS
+
+config XEN_HVM
+    bool