On Fri, 2025-09-19 at 18:32 +0900, Hajime Tazaki wrote: > currently, drivers/pci/Kconfig (CONFIG_PCI) marks as depends on MMU,
Right. > so we cannot select it when CONFIG_MMU=n. Actually, I believe that's not true, I think it *can* select something even if you override the 'depends on' it has, it just causes a warning in Kconfig. But I don't think PCI is even selected, UML_PCI is selected, and then that selects PCI_MSI which should really only be reachable when PCI is enabled, so this perhaps does nothing? Not sure ... > but it's different with kunit when using them via kunit.py config, It really isn't, you just don't see everything because kunit.py hides the build from you. > it first adds > > CONFIG_VIRTIO_UML=y > CONFIG_UML_PCI_OVER_VIRTIO=y > > via tools/testing/kunit/configs/arch_uml.config, and then add > > CONIFG_MMU=n > > via --kconfig_add CONFIG_MMU=n. Sure. But that should disable CONFIG_UML_PCI_OVER_VIRTIO, and it doesn't now. > and then execute make ARCH=um olddefconfig, which in turn enables > CONFIG_UML_PCI_OVER_VIRTIO. Keeps it, let's say. > if we append "--kconfig_add CONFIG_UML_PCI_OVER_VIRTIO=n" to kunit.py, > it will overwrite the arch_uml.config. Yeah but that being required doesn't make sense - the Kconfig should express the correct dependencies. > # I don't know how kunit handles those appended CONFIG entries, though.. It just puts them into the file and runs oldconfig, I guess? > my goal is simple; to test !MMU code via kunit. Sure. > my original patch or the additional kconfig argument (--kconfig_add) > satisfies this goal. Sure. But both are the wrong solution, as I said, the Kconfig should express the correct dependencies. > > The problem is probably UML_PCI_OVER_VIRTIO selecting UML_PCI selecting > > various PCI code, but nothing depends on PCI in the first place. Which > > it should, then? > > I don't understand the 'nothing depends on PCI...' part. care to > elaborate ? See above, I think? My gut feeling is that UML_PCI_OVER_VIRTIO should depend on PCI but I don't know if that then doesn't end up in some kind of circular dependency. johannes
