Re: [Xen-devel] XEN tools for ARM64 build issue
create ^ title it tools/acpi: Make mk_dsdt more architecture agnostic severity it wishlist thanks On 28/11/16 08:02, Jan Beulich wrote: On 25.11.16 at 18:59, wrote: On 25/11/16 17:00, Julien Grall wrote: On 25/11/16 15:52, Jan Beulich wrote: On 25.11.16 at 16:30, wrote: On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: Building latest XEN master branch (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using the same yocto as here https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X I've faced following issue: Maximum error count (200) exceeded /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) Error4084 - Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? The CONFIG_* values are available in the Makefile (from config/arm*.mk). I think it would be better if the tool was told via command line option what architecture to build tables for. That would imply converting the problematic #if-s to if()s. Of course the per-arch #include-s at the top may be a problem here, but then again I'm not convinced the full xen/arch-arm.h is really needed here (I'm pretty sure including xen/hvm/hvm_info_table.h would cause no issue for ARM, the more that nominally this is an arch-independent header anyway). FYI, I am only planning to fix the compilation issue as this is a problem for some user. Regarding hvm/hvm_info_table.h, It contains few things that are x86 specific (such as the PFN). Furthermore, I don't think this header should be included on ARM because it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS the correct value for ARM guests. I forgot to mention that xen/arch-arm.h is necessary in order to get GUEST_MAX_VCPUS. I think we should strive to solve this in a more elegant way, without (almost) colliding definitions, and without the need to include stuff we don't really need here. But yes, as a first step just fixing the build issue without converting to runtime controlled behavior is going to be fine. We just shouldn't put the issue fully to rest afterwards. Jan -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
>>> On 25.11.16 at 18:59, wrote: > On 25/11/16 17:00, Julien Grall wrote: >> On 25/11/16 15:52, Jan Beulich wrote: >> On 25.11.16 at 16:30, wrote: On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: >> Building latest XEN master branch >> (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform >> using >> the same yocto as here >> https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X >> >> >> I've >> faced following issue: >> >> Maximum error count (200) exceeded >> >> /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ >> >> gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl >> 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) >> Error4084 - >> >> Object does not exist ^ (\_SB.MSUA) > > Looking at the source I see that this statement gets included for > x86 only. Are you perhaps doing a cross build of the ARM tools > on an x86 host? If so, it looks like some work would be needed to > make that work (again? not sure if it ever worked), as there are > various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? >>> >>> The CONFIG_* values are available in the Makefile (from >>> config/arm*.mk). I think it would be better if the tool was told >>> via command line option what architecture to build tables for. >>> That would imply converting the problematic #if-s to if()s. Of >>> course the per-arch #include-s at the top may be a problem >>> here, but then again I'm not convinced the full xen/arch-arm.h >>> is really needed here (I'm pretty sure including >>> xen/hvm/hvm_info_table.h would cause no issue for ARM, the >>> more that nominally this is an arch-independent header anyway). >> >> FYI, I am only planning to fix the compilation issue as this is a >> problem for some user. >> >> Regarding hvm/hvm_info_table.h, It contains few things that are x86 >> specific (such as the PFN). >> >> Furthermore, I don't think this header should be included on ARM because >> it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS >> the correct value for ARM guests. > > I forgot to mention that xen/arch-arm.h is necessary in order to get > GUEST_MAX_VCPUS. I think we should strive to solve this in a more elegant way, without (almost) colliding definitions, and without the need to include stuff we don't really need here. But yes, as a first step just fixing the build issue without converting to runtime controlled behavior is going to be fine. We just shouldn't put the issue fully to rest afterwards. Jan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
Hi, On 25/11/16 17:00, Julien Grall wrote: On 25/11/16 15:52, Jan Beulich wrote: On 25.11.16 at 16:30, wrote: On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: Building latest XEN master branch (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using the same yocto as here https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X I've faced following issue: Maximum error count (200) exceeded /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) Error4084 - Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? The CONFIG_* values are available in the Makefile (from config/arm*.mk). I think it would be better if the tool was told via command line option what architecture to build tables for. That would imply converting the problematic #if-s to if()s. Of course the per-arch #include-s at the top may be a problem here, but then again I'm not convinced the full xen/arch-arm.h is really needed here (I'm pretty sure including xen/hvm/hvm_info_table.h would cause no issue for ARM, the more that nominally this is an arch-independent header anyway). FYI, I am only planning to fix the compilation issue as this is a problem for some user. Regarding hvm/hvm_info_table.h, It contains few things that are x86 specific (such as the PFN). Furthermore, I don't think this header should be included on ARM because it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS the correct value for ARM guests. I forgot to mention that xen/arch-arm.h is necessary in order to get GUEST_MAX_VCPUS. Regards, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
Hi Wei, On 25/11/16 15:55, Wei Liu wrote: On Fri, Nov 25, 2016 at 03:30:44PM +, Julien Grall wrote: Hi all, On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: Building latest XEN master branch (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using the same yocto as here https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X I've faced following issue: Maximum error count (200) exceeded /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) Error4084 - Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? I would rather we limit the scope to libacpi. How do you cross-compile tools? If CONFIG_ARM_64 is usable within Makefile, we can do something like: MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64 MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86 Then add MKDIST_CFLAGS-y to mkdsdt's build rune. Change mkdsdt.c source code accordingly. This would work. I was actually expecting a nicer way :). I will prepare a patch based on this suggestion. Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
Hi Jan, On 25/11/16 15:52, Jan Beulich wrote: On 25.11.16 at 16:30, wrote: On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: Building latest XEN master branch (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using the same yocto as here https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X I've faced following issue: Maximum error count (200) exceeded /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) Error4084 - Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? The CONFIG_* values are available in the Makefile (from config/arm*.mk). I think it would be better if the tool was told via command line option what architecture to build tables for. That would imply converting the problematic #if-s to if()s. Of course the per-arch #include-s at the top may be a problem here, but then again I'm not convinced the full xen/arch-arm.h is really needed here (I'm pretty sure including xen/hvm/hvm_info_table.h would cause no issue for ARM, the more that nominally this is an arch-independent header anyway). FYI, I am only planning to fix the compilation issue as this is a problem for some user. Regarding hvm/hvm_info_table.h, It contains few things that are x86 specific (such as the PFN). Furthermore, I don't think this header should be included on ARM because it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS the correct value for ARM guests. Regards, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
On Fri, Nov 25, 2016 at 03:30:44PM +, Julien Grall wrote: > Hi all, > > On 23/11/16 10:47, Jan Beulich wrote: > On 23.11.16 at 11:29, wrote: > >>Building latest XEN master branch > >>(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using > >>the same yocto as here > >>https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X > >>I've > >>faced following issue: > >> > >>Maximum error count (200) exceeded > >> > >>/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ > >>gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl > >> 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) > >>Error4084 - > >> > >> Object does not exist ^ (\_SB.MSUA) > > > >Looking at the source I see that this statement gets included for > >x86 only. Are you perhaps doing a cross build of the ARM tools > >on an x86 host? If so, it looks like some work would be needed to > >make that work (again? not sure if it ever worked), as there are > >various build host architecture conditionals in mk_dsdt.c. > > I gave a look at this error, I had in mind to replace all the #if > defined(__*__) by the CONFIG_* equivalent. > > However, the CONFIG_* are not available for the tools. I guess we need to > add them in the tools config.h. Any opinions? I would rather we limit the scope to libacpi. How do you cross-compile tools? If CONFIG_ARM_64 is usable within Makefile, we can do something like: MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64 MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86 Then add MKDIST_CFLAGS-y to mkdsdt's build rune. Change mkdsdt.c source code accordingly. > > Cheers, > > -- > Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
>>> On 25.11.16 at 16:30, wrote: > On 23/11/16 10:47, Jan Beulich wrote: > On 23.11.16 at 11:29, wrote: >>> Building latest XEN master branch >>> (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using >>> the same yocto as here >>> https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X >>> I've >>> faced following issue: >>> >>> Maximum error count (200) exceeded >>> >>> /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ >>> gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl >>> 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) >>> Error4084 - >>> >>> Object does not exist ^ (\_SB.MSUA) >> >> Looking at the source I see that this statement gets included for >> x86 only. Are you perhaps doing a cross build of the ARM tools >> on an x86 host? If so, it looks like some work would be needed to >> make that work (again? not sure if it ever worked), as there are >> various build host architecture conditionals in mk_dsdt.c. > > I gave a look at this error, I had in mind to replace all the #if > defined(__*__) by the CONFIG_* equivalent. > > However, the CONFIG_* are not available for the tools. I guess we need > to add them in the tools config.h. Any opinions? The CONFIG_* values are available in the Makefile (from config/arm*.mk). I think it would be better if the tool was told via command line option what architecture to build tables for. That would imply converting the problematic #if-s to if()s. Of course the per-arch #include-s at the top may be a problem here, but then again I'm not convinced the full xen/arch-arm.h is really needed here (I'm pretty sure including xen/hvm/hvm_info_table.h would cause no issue for ARM, the more that nominally this is an arch-independent header anyway). Jan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
Hi all, On 23/11/16 10:47, Jan Beulich wrote: On 23.11.16 at 11:29, wrote: Building latest XEN master branch (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using the same yocto as here https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X I've faced following issue: Maximum error count (200) exceeded /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) Error4084 - Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. I gave a look at this error, I had in mind to replace all the #if defined(__*__) by the CONFIG_* equivalent. However, the CONFIG_* are not available for the tools. I guess we need to add them in the tools config.h. Any opinions? Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
> Looking at the source I see that this statement gets included for > x86 only. Are you perhaps doing a cross build of the ARM tools > on an x86 host? Indeed. I do. Sincerely, Andrii Anisov. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] XEN tools for ARM64 build issue
>>> On 23.11.16 at 11:29, wrote: > Building latest XEN master branch > (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using > the same yocto as here > https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X > I've > faced following issue: > > Maximum error count (200) exceeded > > /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+ > gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl > 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 ) > Error4084 - > > Object does not exist ^ (\_SB.MSUA) Looking at the source I see that this statement gets included for x86 only. Are you perhaps doing a cross build of the ARM tools on an x86 host? If so, it looks like some work would be needed to make that work (again? not sure if it ever worked), as there are various build host architecture conditionals in mk_dsdt.c. Shannon, it was you who introduced this (in commit c4ac107799), so would you please take a look? Jan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel