Message ID | 20190123065618.3520-1-yang.zhong@intel.com |
---|---|
Headers | show |
Series | Support Kconfig in QEMU | expand |
On 23/01/19 07:55, Yang Zhong wrote: > This Kconfig implementation is rebased from Paolo's branch > https://github.com/bonzini/qemu/commits/kconfig > > I rebased most of patches except non-x86 ARCHs dependency definitions > this time. > https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig > > The current RFC patches only support > (*) x86_64 platform build > Once design is fixed, we can do other archs. > > (*) defconfig > "randconfig" build has some issues, which are mostly related > with CONFIG* in Kconfig.host abd configure. In randconfig mode, > some CONFIG* has different setting value in config-host.mak and > %/config-device.mak, which make QEMU build failure. > > (*) Kconfig in hw/ directory > > The current configure and build command are same with previous > commands and if we want to disable or enable some features, like > "tcg", we still need add "--enable/--disable-tcg" in configure > command line. If we want to disable one emulation device, we can > disable this in related Kconfig file in hw/ directory. > > The current build command: > (*) ./configure --target-list=x86_64-softmmu > (*) make -j8 > > Since the Kconfig language replace traditional CONFIG_* in > default-config/%-softmmu.mak, the %-softmmu.mak file only > define embeded boards or machines, like 440fx and Q35 in x86_64 > platform. The Kconfig has already defined dependency topology > between different Kconfig files, but there are still some issues > > (*) Kconfig for configure(config-host.mak) > Some CONFIG* in configure need some logic to generate, those > are hard to input this CONFIG* in Kconfig.host or Kconfig* file. > > (*) Kconfig for %config-target.mak > The CONFIG* in %/config-target.mak file, this is still related > with configure. > > (*) randconfig support issue. > > Before this RFC patches, we have talked Kconfig in another thread > http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html > > Please give your comments on this RFC thread, many thanks! I started looking at this, and found two bugs in current code (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, ACPI_NVDIMM for MIPS). There are a few issues in that the script is not Python 3-enabled and only x86 compiles, but they are easily fixed. A slightly bigger thing is to make VFIO configuration more fine-grained and express it with kconfig dependencies, but it's just a couple patches in the same spirit as these ones. I'll look at randconfig next. Paolo
On Thu, Jan 24, 2019 at 02:09:25AM +0100, Paolo Bonzini wrote: > On 23/01/19 07:55, Yang Zhong wrote: > > This Kconfig implementation is rebased from Paolo's branch > > https://github.com/bonzini/qemu/commits/kconfig > > > > I rebased most of patches except non-x86 ARCHs dependency definitions > > this time. > > https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig > > > > The current RFC patches only support > > (*) x86_64 platform build > > Once design is fixed, we can do other archs. > > > > (*) defconfig > > "randconfig" build has some issues, which are mostly related > > with CONFIG* in Kconfig.host abd configure. In randconfig mode, > > some CONFIG* has different setting value in config-host.mak and > > %/config-device.mak, which make QEMU build failure. > > > > (*) Kconfig in hw/ directory > > > > The current configure and build command are same with previous > > commands and if we want to disable or enable some features, like > > "tcg", we still need add "--enable/--disable-tcg" in configure > > command line. If we want to disable one emulation device, we can > > disable this in related Kconfig file in hw/ directory. > > > > The current build command: > > (*) ./configure --target-list=x86_64-softmmu > > (*) make -j8 > > > > Since the Kconfig language replace traditional CONFIG_* in > > default-config/%-softmmu.mak, the %-softmmu.mak file only > > define embeded boards or machines, like 440fx and Q35 in x86_64 > > platform. The Kconfig has already defined dependency topology > > between different Kconfig files, but there are still some issues > > > > (*) Kconfig for configure(config-host.mak) > > Some CONFIG* in configure need some logic to generate, those > > are hard to input this CONFIG* in Kconfig.host or Kconfig* file. > > > > (*) Kconfig for %config-target.mak > > The CONFIG* in %/config-target.mak file, this is still related > > with configure. > > > > (*) randconfig support issue. > > > > Before this RFC patches, we have talked Kconfig in another thread > > http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html > > > > Please give your comments on this RFC thread, many thanks! > > I started looking at this, and found two bugs in current code > (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, > ACPI_NVDIMM for MIPS). There are a few issues in that the script is not > Python 3-enabled and only x86 compiles, but they are easily fixed. A > slightly bigger thing is to make VFIO configuration more fine-grained > and express it with kconfig dependencies, but it's just a couple patches > in the same spirit as these ones. I'll look at randconfig next. > Yes, thanks Paolo. The v4 patches have gotten new comments from other maintainers, and i will send v5 patches in next week. Regards, Yang > Paolo
On Thu, 24 Jan 2019, Paolo Bonzini wrote: > On 23/01/19 07:55, Yang Zhong wrote: >> This Kconfig implementation is rebased from Paolo's branch >> https://github.com/bonzini/qemu/commits/kconfig >> >> I rebased most of patches except non-x86 ARCHs dependency definitions >> this time. >> https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig >> >> The current RFC patches only support >> (*) x86_64 platform build >> Once design is fixed, we can do other archs. >> >> (*) defconfig >> "randconfig" build has some issues, which are mostly related >> with CONFIG* in Kconfig.host abd configure. In randconfig mode, >> some CONFIG* has different setting value in config-host.mak and >> %/config-device.mak, which make QEMU build failure. >> >> (*) Kconfig in hw/ directory >> >> The current configure and build command are same with previous >> commands and if we want to disable or enable some features, like >> "tcg", we still need add "--enable/--disable-tcg" in configure >> command line. If we want to disable one emulation device, we can >> disable this in related Kconfig file in hw/ directory. >> >> The current build command: >> (*) ./configure --target-list=x86_64-softmmu >> (*) make -j8 >> >> Since the Kconfig language replace traditional CONFIG_* in >> default-config/%-softmmu.mak, the %-softmmu.mak file only >> define embeded boards or machines, like 440fx and Q35 in x86_64 >> platform. The Kconfig has already defined dependency topology >> between different Kconfig files, but there are still some issues >> >> (*) Kconfig for configure(config-host.mak) >> Some CONFIG* in configure need some logic to generate, those >> are hard to input this CONFIG* in Kconfig.host or Kconfig* file. >> >> (*) Kconfig for %config-target.mak >> The CONFIG* in %/config-target.mak file, this is still related >> with configure. >> >> (*) randconfig support issue. >> >> Before this RFC patches, we have talked Kconfig in another thread >> http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html >> >> Please give your comments on this RFC thread, many thanks! > > I started looking at this, and found two bugs in current code > (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, > ACPI_NVDIMM for MIPS). There are a few issues in that the script is not The ACPI_NVDIMM for MIPS is pulled in by CONFIG_VT82C686 which needs ACPI which needs NVDIMM even though it's probably not used. At least I think so, I haven't tested if it could be removed. Regards, BALATON Zoltan > Python 3-enabled and only x86 compiles, but they are easily fixed. A > slightly bigger thing is to make VFIO configuration more fine-grained > and express it with kconfig dependencies, but it's just a couple patches > in the same spirit as these ones. I'll look at randconfig next. > > Paolo > >
On 24/01/19 03:38, BALATON Zoltan wrote: >> >> I started looking at this, and found two bugs in current code >> (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, >> ACPI_NVDIMM for MIPS). There are a few issues in that the script is not > > The ACPI_NVDIMM for MIPS is pulled in by CONFIG_VT82C686 which needs > ACPI which needs NVDIMM even though it's probably not used. At least I > think so, I haven't tested if it could be removed. Oh, you're right. The functions exported by hw/acpi/nvdimm.o are called by hw/i386/pc.c, hw/i386/pc_piix.c, hw/i386/pc_q35.c, hw/acpi/nvdimm.c, hw/acpi/piix4.c (piix4_device_plug_cb), hw/i386/acpi-build.c. hw/acpi/piix4.c indeed is used by Malta. I'll change it so that the symbol is selected by CONFIG_ACPI_X86. Maybe
On 24/01/19 03:00, Yang Zhong wrote: > On Thu, Jan 24, 2019 at 02:09:25AM +0100, Paolo Bonzini wrote: >> On 23/01/19 07:55, Yang Zhong wrote: >>> This Kconfig implementation is rebased from Paolo's branch >>> https://github.com/bonzini/qemu/commits/kconfig >>> >>> I rebased most of patches except non-x86 ARCHs dependency definitions >>> this time. >>> https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig >>> >>> The current RFC patches only support >>> (*) x86_64 platform build >>> Once design is fixed, we can do other archs. >>> >>> (*) defconfig >>> "randconfig" build has some issues, which are mostly related >>> with CONFIG* in Kconfig.host abd configure. In randconfig mode, >>> some CONFIG* has different setting value in config-host.mak and >>> %/config-device.mak, which make QEMU build failure. >>> >>> (*) Kconfig in hw/ directory >>> >>> The current configure and build command are same with previous >>> commands and if we want to disable or enable some features, like >>> "tcg", we still need add "--enable/--disable-tcg" in configure >>> command line. If we want to disable one emulation device, we can >>> disable this in related Kconfig file in hw/ directory. >>> >>> The current build command: >>> (*) ./configure --target-list=x86_64-softmmu >>> (*) make -j8 >>> >>> Since the Kconfig language replace traditional CONFIG_* in >>> default-config/%-softmmu.mak, the %-softmmu.mak file only >>> define embeded boards or machines, like 440fx and Q35 in x86_64 >>> platform. The Kconfig has already defined dependency topology >>> between different Kconfig files, but there are still some issues >>> >>> (*) Kconfig for configure(config-host.mak) >>> Some CONFIG* in configure need some logic to generate, those >>> are hard to input this CONFIG* in Kconfig.host or Kconfig* file. >>> >>> (*) Kconfig for %config-target.mak >>> The CONFIG* in %/config-target.mak file, this is still related >>> with configure. >>> >>> (*) randconfig support issue. >>> >>> Before this RFC patches, we have talked Kconfig in another thread >>> http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html >>> >>> Please give your comments on this RFC thread, many thanks! >> >> I started looking at this, and found two bugs in current code >> (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, >> ACPI_NVDIMM for MIPS). There are a few issues in that the script is not >> Python 3-enabled and only x86 compiles, but they are easily fixed. A >> slightly bigger thing is to make VFIO configuration more fine-grained >> and express it with kconfig dependencies, but it's just a couple patches >> in the same spirit as these ones. I'll look at randconfig next. >> > Yes, thanks Paolo. The v4 patches have gotten new comments from other > maintainers, and i will send v5 patches in next week. Ok, I'll pass you offlist a tree to use as a base for v5. Paolo
Patchew URL: https://patchew.org/QEMU/20190123065618.3520-1-yang.zhong@intel.com/ Hi, This series failed the docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash time make docker-test-mingw@fedora SHOW_ENV=1 J=14 === TEST SCRIPT END === The full log is available at http://patchew.org/logs/20190123065618.3520-1-yang.zhong@intel.com/testing.docker-mingw@fedora/?type=message. --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com