Re: kismet: WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE when selected by IPMMU_VMSA

From: Randy Dunlap
Date: Tue Dec 27 2022 - 18:06:17 EST


Hi Conor,

On 12/27/22 10:59, Conor Dooley wrote:
> Hey Randy,
>
> On Thu, Dec 22, 2022 at 05:00:06PM -0800, Randy Dunlap wrote:
>> On 12/21/22 20:49, kernel test robot wrote:
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head: 9d2f6060fe4c3b49d0cdc1dce1c99296f33379c8
>>> commit: 8292493c22c8e28b6e67a01e0f5c6db1cf231eb1 riscv: Kconfig.socs: Add ARCH_RENESAS kconfig option
>>> date: 6 weeks ago
>>> config: riscv-kismet-CONFIG_IOMMU_IO_PGTABLE_LPAE-CONFIG_IPMMU_VMSA-0-0
>>> reproduce:
>>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8292493c22c8e28b6e67a01e0f5c6db1cf231eb1
>>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>> git fetch --no-tags linus master
>>> git checkout 8292493c22c8e28b6e67a01e0f5c6db1cf231eb1
>>> # 1. reproduce by kismet
>>> # install kmax per https://github.com/paulgazz/kmax/blob/master/README.md
>>> kismet --linux-ksrc=linux --selectees CONFIG_IOMMU_IO_PGTABLE_LPAE --selectors CONFIG_IPMMU_VMSA -a=riscv
>>> # 2. reproduce by make
>>> # save the config file to linux source tree
>>> cd linux
>>> make ARCH=riscv olddefconfig
>>>
>>> If you fix the issue, kindly add following tag where applicable
>>> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
>>>
>>> kismet warnings: (new ones prefixed by >>)
>>>>> kismet: WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE when selected by IPMMU_VMSA
>>> .config:4814:warning: symbol value 'ONFIG_ARCH_MMAP_RND_BITS_MI' invalid for ARCH_MMAP_RND_BITS
>>>
>>> WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE
>>> Depends on [n]: IOMMU_SUPPORT [=y] && (ARM || ARM64 || COMPILE_TEST [=y] && !GENERIC_ATOMIC64 [=y])
>>> Selected by [y]:
>>> - IPMMU_VMSA [=y] && IOMMU_SUPPORT [=y] && (ARCH_RENESAS [=y] || COMPILE_TEST [=y] && !GENERIC_ATOMIC64 [=y])
>>>
>>
>> Maybe this:
>>
>> ---
>> drivers/iommu/Kconfig | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff -- a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
>> --- a/drivers/iommu/Kconfig
>> +++ b/drivers/iommu/Kconfig
>> @@ -32,7 +32,8 @@ config IOMMU_IO_PGTABLE
>> config IOMMU_IO_PGTABLE_LPAE
>> bool "ARMv7/v8 Long Descriptor Format"
>> select IOMMU_IO_PGTABLE
>> - depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)
>> + depends on ARM || ARM64 || ARCH_RENESAS || \
>> + (COMPILE_TEST && !GENERIC_ATOMIC64)
>> help
>> Enable support for the ARM long descriptor pagetable format.
>> This allocator supports 4K/2M/1G, 16K/32M and 64K/512M page
>>
>>
>> or is way off?
>
> Apologies for the radio silence here..
>
> Palmer initially sent a workaround and there was some discussion there:
> https://lore.kernel.org/all/20221214180409.7354-1-palmer@xxxxxxxxxxxx/

> Guo sent a patch too:
> https://lore.kernel.org/linux-riscv/20221215073212.1966823-1-guoren@xxxxxxxxxx/

I prefer Guo's patch. :)

> I suppose Christmas is doing Christmas things :)

Sure, no problem.

Thanks.

--
~Randy