* [PATCH] meson.build: fix building of Xen support for aarch64 @ 2020-10-28 17:44 Alex Bennée 2020-10-28 21:17 ` Stefano Stabellini 2020-10-29 2:11 ` Masami Hiramatsu 0 siblings, 2 replies; 7+ messages in thread From: Alex Bennée @ 2020-10-28 17:44 UTC (permalink / raw) To: qemu-devel Cc: Stefano Stabellini, Masami Hiramatsu, Paul Durrant, Anthony Perard, xen-devel, Alex Bennée Xen is supported on aarch64 although weirdly using the i386-softmmu model. Checking based on the host CPU meant we never enabled Xen support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to make it not seem weird but that will require further build surgery. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> Cc: Stefano Stabellini <sstabellini@kernel.org> Cc: Anthony Perard <anthony.perard@citrix.com> Cc: Paul Durrant <paul@xen.org> Fixes: 8a19980e3f ("configure: move accelerator logic to meson") --- meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson.build b/meson.build index 835424999d..f1fcbfed4c 100644 --- a/meson.build +++ b/meson.build @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] 'CONFIG_HVF': ['x86_64-softmmu'], 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], } +elif cpu in [ 'arm', 'aarch64' ] + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } endif ################## -- 2.20.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-28 17:44 [PATCH] meson.build: fix building of Xen support for aarch64 Alex Bennée @ 2020-10-28 21:17 ` Stefano Stabellini 2020-10-29 10:01 ` Alex Bennée 2020-10-29 2:11 ` Masami Hiramatsu 1 sibling, 1 reply; 7+ messages in thread From: Stefano Stabellini @ 2020-10-28 21:17 UTC (permalink / raw) To: Alex Bennée Cc: Stefano Stabellini, Masami Hiramatsu, Paul Durrant, qemu-devel, Anthony Perard, xen-devel [-- Attachment #1: Type: text/plain, Size: 2664 bytes --] On Wed, 28 Oct 2020, Alex Bennée wrote: > Xen is supported on aarch64 although weirdly using the i386-softmmu > model. Checking based on the host CPU meant we never enabled Xen > support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to > make it not seem weird but that will require further build surgery. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> > Cc: Stefano Stabellini <sstabellini@kernel.org> > Cc: Anthony Perard <anthony.perard@citrix.com> > Cc: Paul Durrant <paul@xen.org> > Fixes: 8a19980e3f ("configure: move accelerator logic to meson") > --- > meson.build | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/meson.build b/meson.build > index 835424999d..f1fcbfed4c 100644 > --- a/meson.build > +++ b/meson.build > @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] > 'CONFIG_HVF': ['x86_64-softmmu'], > 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], > } > +elif cpu in [ 'arm', 'aarch64' ] > + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } > endif This looks very reasonable -- the patch makes sense. However I have two questions, mostly for my own understanding. I tried to repro the aarch64 build problem but it works at my end, even without this patch. I wonder why. I suspect it works thanks to these lines in meson.build: if not get_option('xen').disabled() and 'CONFIG_XEN_BACKEND' in config_host accelerators += 'CONFIG_XEN' have_xen_pci_passthrough = not get_option('xen_pci_passthrough').disabled() and targetos == 'linux' else have_xen_pci_passthrough = false endif But I am not entirely sure who is adding CONFIG_XEN_BACKEND to config_host. The other question is: does it make sense to print the value of CONFIG_XEN as part of the summary? Something like: diff --git a/meson.build b/meson.build index 47e32e1fcb..c6e7832dc9 100644 --- a/meson.build +++ b/meson.build @@ -2070,6 +2070,7 @@ summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')} summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')} summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')} summary_info += {'WHPX support': config_all.has_key('CONFIG_WHPX')} +summary_info += {'XEN support': config_all.has_key('CONFIG_XEN')} summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')} if config_all.has_key('CONFIG_TCG') summary_info += {'TCG debug enabled': config_host.has_key('CONFIG_DEBUG_TCG')} But I realize there is already: summary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')} so it would be a bit of a duplicate ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-28 21:17 ` Stefano Stabellini @ 2020-10-29 10:01 ` Alex Bennée 2020-10-29 13:37 ` Jason Andryuk 2020-10-29 20:06 ` Stefano Stabellini 0 siblings, 2 replies; 7+ messages in thread From: Alex Bennée @ 2020-10-29 10:01 UTC (permalink / raw) To: Stefano Stabellini Cc: Anthony Perard, xen-devel, qemu-devel, Masami Hiramatsu, Paul Durrant Stefano Stabellini <sstabellini@kernel.org> writes: > On Wed, 28 Oct 2020, Alex Bennée wrote: >> Xen is supported on aarch64 although weirdly using the i386-softmmu >> model. Checking based on the host CPU meant we never enabled Xen >> support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to >> make it not seem weird but that will require further build surgery. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> >> Cc: Stefano Stabellini <sstabellini@kernel.org> >> Cc: Anthony Perard <anthony.perard@citrix.com> >> Cc: Paul Durrant <paul@xen.org> >> Fixes: 8a19980e3f ("configure: move accelerator logic to meson") >> --- >> meson.build | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/meson.build b/meson.build >> index 835424999d..f1fcbfed4c 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] >> 'CONFIG_HVF': ['x86_64-softmmu'], >> 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], >> } >> +elif cpu in [ 'arm', 'aarch64' ] >> + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } >> endif > > This looks very reasonable -- the patch makes sense. > > > However I have two questions, mostly for my own understanding. I tried > to repro the aarch64 build problem but it works at my end, even without > this patch. Building on a x86 host or with cross compiler? > I wonder why. I suspect it works thanks to these lines in > meson.build: > > if not get_option('xen').disabled() and 'CONFIG_XEN_BACKEND' in config_host > accelerators += 'CONFIG_XEN' > have_xen_pci_passthrough = not get_option('xen_pci_passthrough').disabled() and targetos == 'linux' > else > have_xen_pci_passthrough = false > endif > > But I am not entirely sure who is adding CONFIG_XEN_BACKEND to > config_host. The is part of the top level configure check - which basically checks for --enable-xen or autodetects the presence of the userspace libraries. I'm not sure if we have a slight over proliferation of symbols for Xen support (although I'm about to add more). > The other question is: does it make sense to print the value of > CONFIG_XEN as part of the summary? Something like: > > diff --git a/meson.build b/meson.build > index 47e32e1fcb..c6e7832dc9 100644 > --- a/meson.build > +++ b/meson.build > @@ -2070,6 +2070,7 @@ summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')} > summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')} > summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')} > summary_info += {'WHPX support': config_all.has_key('CONFIG_WHPX')} > +summary_info += {'XEN support': config_all.has_key('CONFIG_XEN')} > summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')} > if config_all.has_key('CONFIG_TCG') > summary_info += {'TCG debug enabled': config_host.has_key('CONFIG_DEBUG_TCG')} > > > But I realize there is already: > > summary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')} > > so it would be a bit of a duplicate Hmm so what we have is: CONFIG_XEN_BACKEND - ensures that appropriate compiler flags are added - pegs RAM_ADDR_MAX at UINT64_MAX (instead of UINTPTR_MAX) CONFIG_XEN - which controls a bunch of build objects, some of which may be i386 only? ./accel/meson.build:15:specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss) ./accel/stubs/meson.build:2:specific_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c')) ./accel/xen/meson.build:1:specific_ss.add(when: 'CONFIG_XEN', if_true: files('xen-all.c')) ./hw/9pfs/meson.build:17:fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c')) ./hw/block/dataplane/meson.build:2:specific_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c')) ./hw/block/meson.build:14:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c')) ./hw/char/meson.build:23:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen_console.c')) ./hw/display/meson.build:18:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xenfb.c')) ./hw/i386/xen/meson.build:1:i386_ss.add(when: 'CONFIG_XEN', if_true: files('xen-hvm.c', 'xen-mapcache.c', 'xen_apic.c', 'xen_platform.c', 'xen_pvdevice.c') ./hw/net/meson.build:2:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen_nic.c')) ./hw/usb/meson.build:76:softmmu_ss.add(when: ['CONFIG_USB', 'CONFIG_XEN', libusb], if_true: files('xen-usb.c')) ./hw/xen/meson.build:1:softmmu_ss.add(when: ['CONFIG_XEN', xen], if_true: files( ./hw/xen/meson.build:20:specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: xen_specific_ss) ./hw/xenpv/meson.build:3:xenpv_ss.add(when: 'CONFIG_XEN', if_true: files('xen_machine_pv.c')) - there are also some stubbed inline functions controlled by it CONFIG_XEN_IGD_PASSTHROUGH - specific x86 PC only feature via Kconfig rule CONFIG_XEN_PCI_PASSTHROUGH - control Linux specific specific feature (via meson rule) First obvious question - is everything in hw/i386/xen actually i386 only? APIC seems pretty PC orientated but what about xen_platform and pvdevice? There seem to be some dependancies on xen-mapcache across the code. -- Alex Bennée ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-29 10:01 ` Alex Bennée @ 2020-10-29 13:37 ` Jason Andryuk 2020-10-29 20:00 ` Stefano Stabellini 2020-10-29 20:06 ` Stefano Stabellini 1 sibling, 1 reply; 7+ messages in thread From: Jason Andryuk @ 2020-10-29 13:37 UTC (permalink / raw) To: Alex Bennée Cc: Stefano Stabellini, Masami Hiramatsu, Paul Durrant, QEMU, Anthony Perard, xen-devel On Thu, Oct 29, 2020 at 6:01 AM Alex Bennée <alex.bennee@linaro.org> wrote: > > > Stefano Stabellini <sstabellini@kernel.org> writes: > > > On Wed, 28 Oct 2020, Alex Bennée wrote: > >> Xen is supported on aarch64 although weirdly using the i386-softmmu > >> model. Checking based on the host CPU meant we never enabled Xen > >> support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to > >> make it not seem weird but that will require further build surgery. > >> > >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > >> Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> > >> Cc: Stefano Stabellini <sstabellini@kernel.org> > >> Cc: Anthony Perard <anthony.perard@citrix.com> > >> Cc: Paul Durrant <paul@xen.org> > >> Fixes: 8a19980e3f ("configure: move accelerator logic to meson") > >> --- > >> meson.build | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/meson.build b/meson.build > >> index 835424999d..f1fcbfed4c 100644 > >> --- a/meson.build > >> +++ b/meson.build > >> @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] > >> 'CONFIG_HVF': ['x86_64-softmmu'], > >> 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], > >> } > >> +elif cpu in [ 'arm', 'aarch64' ] > >> + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } > >> endif > > > > This looks very reasonable -- the patch makes sense. A comment would be useful to explain that Arm needs i386-softmmu for the xenpv machine. > > > > However I have two questions, mostly for my own understanding. I tried > > to repro the aarch64 build problem but it works at my end, even without > > this patch. > > Building on a x86 host or with cross compiler? > > > I wonder why. I suspect it works thanks to these lines in > > meson.build: I think it's a runtime and not a build problem. In osstest, Xen support was detected and configured, but CONFIG_XEN wasn't set for Arm. So at runtime xen_available() returns 0, and QEMU doesn't start with "qemu-system-i386: -xen-domid 1: Option not supported for this target" I posted my investigation here: https://lore.kernel.org/xen-devel/CAKf6xpss8KpGOvZrKiTPz63bhBVbjxRTYWdHEkzUo2q1KEMjhg@mail.gmail.com/ Regards, Jason ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-29 13:37 ` Jason Andryuk @ 2020-10-29 20:00 ` Stefano Stabellini 0 siblings, 0 replies; 7+ messages in thread From: Stefano Stabellini @ 2020-10-29 20:00 UTC (permalink / raw) To: Jason Andryuk Cc: Stefano Stabellini, Masami Hiramatsu, Paul Durrant, QEMU, Anthony Perard, xen-devel, Alex Bennée [-- Attachment #1: Type: text/plain, Size: 2444 bytes --] On Thu, 29 Oct 2020, Jason Andryuk wrote: > On Thu, Oct 29, 2020 at 6:01 AM Alex Bennée <alex.bennee@linaro.org> wrote: > > > > > > Stefano Stabellini <sstabellini@kernel.org> writes: > > > > > On Wed, 28 Oct 2020, Alex Bennée wrote: > > >> Xen is supported on aarch64 although weirdly using the i386-softmmu > > >> model. Checking based on the host CPU meant we never enabled Xen > > >> support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to > > >> make it not seem weird but that will require further build surgery. > > >> > > >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > >> Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> > > >> Cc: Stefano Stabellini <sstabellini@kernel.org> > > >> Cc: Anthony Perard <anthony.perard@citrix.com> > > >> Cc: Paul Durrant <paul@xen.org> > > >> Fixes: 8a19980e3f ("configure: move accelerator logic to meson") > > >> --- > > >> meson.build | 2 ++ > > >> 1 file changed, 2 insertions(+) > > >> > > >> diff --git a/meson.build b/meson.build > > >> index 835424999d..f1fcbfed4c 100644 > > >> --- a/meson.build > > >> +++ b/meson.build > > >> @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] > > >> 'CONFIG_HVF': ['x86_64-softmmu'], > > >> 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], > > >> } > > >> +elif cpu in [ 'arm', 'aarch64' ] > > >> + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } > > >> endif > > > > > > This looks very reasonable -- the patch makes sense. > > A comment would be useful to explain that Arm needs i386-softmmu for > the xenpv machine. > > > > > > > However I have two questions, mostly for my own understanding. I tried > > > to repro the aarch64 build problem but it works at my end, even without > > > this patch. > > > > Building on a x86 host or with cross compiler? > > > > > I wonder why. I suspect it works thanks to these lines in > > > meson.build: > > I think it's a runtime and not a build problem. In osstest, Xen > support was detected and configured, but CONFIG_XEN wasn't set for > Arm. So at runtime xen_available() returns 0, and QEMU doesn't start > with "qemu-system-i386: -xen-domid 1: Option not supported for this > target" > > I posted my investigation here: > https://lore.kernel.org/xen-devel/CAKf6xpss8KpGOvZrKiTPz63bhBVbjxRTYWdHEkzUo2q1KEMjhg@mail.gmail.com/ Right, but strangely I cannot reproduce it here. I am natively building (qemu-user) on aarch64 and for me CONFIG_XEN gets set. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-29 10:01 ` Alex Bennée 2020-10-29 13:37 ` Jason Andryuk @ 2020-10-29 20:06 ` Stefano Stabellini 1 sibling, 0 replies; 7+ messages in thread From: Stefano Stabellini @ 2020-10-29 20:06 UTC (permalink / raw) To: Alex Bennée Cc: Stefano Stabellini, Masami Hiramatsu, Paul Durrant, qemu-devel, Anthony Perard, xen-devel [-- Attachment #1: Type: text/plain, Size: 6429 bytes --] On Thu, 29 Oct 2020, Alex Bennée wrote: > > On Wed, 28 Oct 2020, Alex Bennée wrote: > >> Xen is supported on aarch64 although weirdly using the i386-softmmu > >> model. Checking based on the host CPU meant we never enabled Xen > >> support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to > >> make it not seem weird but that will require further build surgery. > >> > >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > >> Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> > >> Cc: Stefano Stabellini <sstabellini@kernel.org> > >> Cc: Anthony Perard <anthony.perard@citrix.com> > >> Cc: Paul Durrant <paul@xen.org> > >> Fixes: 8a19980e3f ("configure: move accelerator logic to meson") > >> --- > >> meson.build | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/meson.build b/meson.build > >> index 835424999d..f1fcbfed4c 100644 > >> --- a/meson.build > >> +++ b/meson.build > >> @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] > >> 'CONFIG_HVF': ['x86_64-softmmu'], > >> 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], > >> } > >> +elif cpu in [ 'arm', 'aarch64' ] > >> + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } > >> endif > > > > This looks very reasonable -- the patch makes sense. > > > > > > However I have two questions, mostly for my own understanding. I tried > > to repro the aarch64 build problem but it works at my end, even without > > this patch. > > Building on a x86 host or with cross compiler? native build (qemu-user) > > I wonder why. I suspect it works thanks to these lines in > > meson.build: > > > > if not get_option('xen').disabled() and 'CONFIG_XEN_BACKEND' in config_host > > accelerators += 'CONFIG_XEN' > > have_xen_pci_passthrough = not get_option('xen_pci_passthrough').disabled() and targetos == 'linux' > > else > > have_xen_pci_passthrough = false > > endif > > > > But I am not entirely sure who is adding CONFIG_XEN_BACKEND to > > config_host. > > The is part of the top level configure check - which basically checks > for --enable-xen or autodetects the presence of the userspace libraries. > I'm not sure if we have a slight over proliferation of symbols for Xen > support (although I'm about to add more). > > > The other question is: does it make sense to print the value of > > CONFIG_XEN as part of the summary? Something like: > > > > diff --git a/meson.build b/meson.build > > index 47e32e1fcb..c6e7832dc9 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -2070,6 +2070,7 @@ summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')} > > summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')} > > summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')} > > summary_info += {'WHPX support': config_all.has_key('CONFIG_WHPX')} > > +summary_info += {'XEN support': config_all.has_key('CONFIG_XEN')} > > summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')} > > if config_all.has_key('CONFIG_TCG') > > summary_info += {'TCG debug enabled': config_host.has_key('CONFIG_DEBUG_TCG')} > > > > > > But I realize there is already: > > > > summary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')} > > > > so it would be a bit of a duplicate > > Hmm so what we have is: > > CONFIG_XEN_BACKEND > - ensures that appropriate compiler flags are added > - pegs RAM_ADDR_MAX at UINT64_MAX (instead of UINTPTR_MAX) > CONFIG_XEN > - which controls a bunch of build objects, some of which may be i386 only? > ./accel/meson.build:15:specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss) > ./accel/stubs/meson.build:2:specific_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c')) > ./accel/xen/meson.build:1:specific_ss.add(when: 'CONFIG_XEN', if_true: files('xen-all.c')) > ./hw/9pfs/meson.build:17:fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c')) > ./hw/block/dataplane/meson.build:2:specific_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c')) > ./hw/block/meson.build:14:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c')) > ./hw/char/meson.build:23:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen_console.c')) > ./hw/display/meson.build:18:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xenfb.c')) > ./hw/i386/xen/meson.build:1:i386_ss.add(when: 'CONFIG_XEN', if_true: files('xen-hvm.c', > 'xen-mapcache.c', > 'xen_apic.c', > 'xen_platform.c', > 'xen_pvdevice.c') > ./hw/net/meson.build:2:softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen_nic.c')) > ./hw/usb/meson.build:76:softmmu_ss.add(when: ['CONFIG_USB', 'CONFIG_XEN', libusb], if_true: files('xen-usb.c')) > ./hw/xen/meson.build:1:softmmu_ss.add(when: ['CONFIG_XEN', xen], if_true: files( > ./hw/xen/meson.build:20:specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: xen_specific_ss) > ./hw/xenpv/meson.build:3:xenpv_ss.add(when: 'CONFIG_XEN', if_true: files('xen_machine_pv.c')) > - there are also some stubbed inline functions controlled by it > CONFIG_XEN_IGD_PASSTHROUGH > - specific x86 PC only feature via Kconfig rule > CONFIG_XEN_PCI_PASSTHROUGH > - control Linux specific specific feature (via meson rule) > > > First obvious question - is everything in hw/i386/xen actually i386 > only? APIC seems pretty PC orientated but what about xen_platform and > pvdevice? There seem to be some dependancies on xen-mapcache across the > code. All files under hw/i386/xen are only used on x86 today, because they are either x86 specific, or ioreq specific (required to handle ioreqs.) Given that today ioreqs are not used on ARM, they are not used. In the near future when we are going to handle ioreqs on ARM, they'll become useful. xen_apic.c: x86 specific xen-hvm.c: There are some x86 things there, but mostly it is about handling ioreqs which is going to be used on ARM soon as part of the virtio enablement xen-mapcache.c: The mapcache is used when ioreqs are used, it will get useful xen_platform.c: x86 specific xen_pvdevice.c: x86 specific ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] meson.build: fix building of Xen support for aarch64 2020-10-28 17:44 [PATCH] meson.build: fix building of Xen support for aarch64 Alex Bennée 2020-10-28 21:17 ` Stefano Stabellini @ 2020-10-29 2:11 ` Masami Hiramatsu 1 sibling, 0 replies; 7+ messages in thread From: Masami Hiramatsu @ 2020-10-29 2:11 UTC (permalink / raw) To: Alex Bennée Cc: Anthony Perard, xen-devel, Stefano Stabellini, qemu-devel, Paul Durrant Hi Alex, 2020年10月29日(木) 2:44 Alex Bennée <alex.bennee@linaro.org>: > > Xen is supported on aarch64 although weirdly using the i386-softmmu > model. Checking based on the host CPU meant we never enabled Xen > support. It would be nice to enable CONFIG_XEN for aarch64-softmmu to > make it not seem weird but that will require further build surgery. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Masami Hiramatsu <masami.hiramatsu@linaro.org> > Cc: Stefano Stabellini <sstabellini@kernel.org> > Cc: Anthony Perard <anthony.perard@citrix.com> > Cc: Paul Durrant <paul@xen.org> > Fixes: 8a19980e3f ("configure: move accelerator logic to meson") Thanks for the fix, I confirmed that the CONFIG_XEN=1 on arm64 build. Reviewed-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> Thank you, > --- > meson.build | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/meson.build b/meson.build > index 835424999d..f1fcbfed4c 100644 > --- a/meson.build > +++ b/meson.build > @@ -81,6 +81,8 @@ if cpu in ['x86', 'x86_64'] > 'CONFIG_HVF': ['x86_64-softmmu'], > 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], > } > +elif cpu in [ 'arm', 'aarch64' ] > + accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu'] } > endif > > ################## > -- > 2.20.1 > -- Masami Hiramatsu ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-10-29 20:07 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-10-28 17:44 [PATCH] meson.build: fix building of Xen support for aarch64 Alex Bennée 2020-10-28 21:17 ` Stefano Stabellini 2020-10-29 10:01 ` Alex Bennée 2020-10-29 13:37 ` Jason Andryuk 2020-10-29 20:00 ` Stefano Stabellini 2020-10-29 20:06 ` Stefano Stabellini 2020-10-29 2:11 ` Masami Hiramatsu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).