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

From: Conor Dooley
Date: Wed Mar 08 2023 - 11:09:15 EST


On Sat, Feb 25, 2023 at 01:43:44PM +0000, Conor Dooley wrote:
>
>
> On 25 February 2023 00:28:36 GMT, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
> >
> >
> >On 2/24/23 16:22, Conor Dooley wrote:
> >> On Fri, Feb 24, 2023 at 04:12:49PM -0800, Randy Dunlap wrote:
> >>> Hi Conor, Palmer,
> >>>
> >>> 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 suppose Christmas is doing Christmas things :)
> >>>
> >>> Has this been solved (merged) yet?
> >>> I'm still seeing a warning on linux-next-20230224.
> >>
> >> I thought it was fixed in the iommu tree with this series:
> >> https://lore.kernel.org/all/7a53ac6f-640b-436d-9bfa-3e49066b2460@xxxxxxx/
> >>
> >> If it is not, I'll take a look tomorrow...
> >
> >I see this warning on today's linux-next-20230224:
> >
> >WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE
> > Depends on [n]: IOMMU_SUPPORT [=y] && (ARM || ARM64 || COMPILE_TEST [=n]) && !GENERIC_ATOMIC64 [=n]
> > Selected by [y]:
> > - IPMMU_VMSA [=y] && IOMMU_SUPPORT [=y] && (ARCH_RENESAS [=y] || COMPILE_TEST [=n]) && !GENERIC_ATOMIC64 [=n]
> >
> >with the attached config file. Please have a look.
>
> My main hard drive in my dev machine died overnight, so I'll have to renage on my tomorrow promise above.

I finally got around to looking at this today. I tried Palmer's original
reproducer (riscv32 allmodconfig) on top of v6.3-rc1 & this randconfig +
olddefconfig on it, and couldn't get the selection to trigger.
Maybe I misunderstand the randconfig process, but I had thought that
olddefconfig was supposed to be (the equivalent of) idempotent for
randconfigs.

Robin did make some changes to the IOMMU Kconfig stuff that landed in
v6.3, so perhaps that's what has eventually sorted this out.

Please LMK if I've misunderstood & ruined the randconfig w/
olddefconfig!

Cheers,
Conor.

Attachment: signature.asc
Description: PGP signature