Re: [PATCH] iommu/io-pgtable: Make IOMMU_IO_PGTABLE_DART invisible

From: Robin Murphy
Date: Tue Sep 27 2022 - 11:52:08 EST


On 2022-09-27 16:29, Geert Uytterhoeven wrote:
Hi Robin,

On Tue, Sep 27, 2022 at 5:09 PM Robin Murphy <robin.murphy@xxxxxxx> wrote:
On 2022-09-27 15:48, Geert Uytterhoeven wrote:
On Tue, Sep 27, 2022 at 4:15 PM Robin Murphy <robin.murphy@xxxxxxx> wrote:
On 2022-09-27 14:36, Geert Uytterhoeven wrote:
There is no point in asking the user about both "Apple DART Formats" and
"Apple DART IOMMU Support", as the former is useless without the latter,
and the latter auto-selects the former.

Fixes: 745ef1092bcfcf3b ("iommu/io-pgtable: Move Apple DART support to its own file")
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
---
Should IOMMU_IO_PGTABLE_LPAE and IOMMU_IO_PGTABLE_ARMV7S be made
invisible, too?
Are there users that do not select them?

The aim was for formats to be independently selectable for COMPILE_TEST
coverage. The Arm formats are manually selectable for the sake of their
runtime self-tests, which are self-contained, but since DART format
doesn't do anything by itself I'd agree there's no need to prompt when
!COMPILE_TEST here.

IOMMU_IO_PGTABLE_LPAE and IOMMU_IO_PGTABLE_ARMV7S are
selected by other symbols that can be enabled when compile-testing, so
the tests can still be enabled in those cases, too

Sure, but when you want to compile-test a thing, what would you rather
do: enable the thing, or go hunting to find some other thing that
happens to select the thing you actually want, then potentially have to
figure out *that* thing's dependencies, and so on?

Agreed.

Coverage isn't solely about whether it's technically possible to ever
reach somewhere at all, it's just as much about how easily and/or often
you can get there in practice. I don't see who benefits from making
COMPILE_TEST harder to use :/

So perhaps the visibility of IOMMU_IO_PGTABLE_LPAE and
IOMMU_IO_PGTABLE_ARMV7S should depend on COMPILE_TEST?
Normal users would still get it through select when needed.

As I say those still offer functionality beyond compile-testing, but now you've got me suspecting that it's already suboptimal that one has to enable the format to make the self-test option appear... Perhaps what we want is a separate master option to enable io-pgtable self-tests in general, then rejig the rest around that.

Of course the self-tests would be even more useful if the harness was at the level of the core io-pgtable API so it could cover new formats automatically as long as they provide the configuration parameters, but that's a separate matter for someone with sufficient free time and enthusiasm :)

Cheers,
Robin.