Re: [PATCH] iommu: Print default strict or lazy mode at init time
From: Robin Murphy
Date: Tue Jun 01 2021 - 12:42:38 EST
On 2021-06-01 16:50, John Garry wrote:
On 01/06/2021 10:09, Robin Murphy wrote:
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 808ab70d5df5..f25fae62f077 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -138,6 +138,11 @@ static int __init iommu_subsys_init(void)
(iommu_cmd_line & IOMMU_CMD_LINE_DMA_API) ?
"(set via kernel command line)" : "");
+ pr_info("Default DMA domain mode: %s %s\n",
Nit: I think this might be a little unclear for end-users - *I'm* not
even sure whether "Default" here is meant to refer to the mode setting
itself or to default domains (of DMA type). Maybe something like "DMA
domain TLB invalidation policy"? Certainly it seems like a good idea
to explicitly mention invalidation to correlate with the documentation
of the "iommu.strict" parameter.
Ack to the general idea though.
ok, so I'll go with this:
pr_info("DMA domain default TLB invalidation policy: %s mode %s\n",
iommu_dma_strict ? "strict" : "lazy",
(iommu_cmd_line & IOMMU_CMD_LINE_STRICT) ?
"(set via kernel command line)" : "");
I think it's worth mentioning "default" somewhere, as not all IOMMUs or
devices will use lazy mode even if it's default.
But that's part of what I think is misleading - I boot and see that the
default is something, so I reboot with iommu.strict to explicitly set it
the other way, but now that's the default... huh?
The way I see it, we're saying what the current IOMMU API policy is -
the value of iommu_dma_strict at any given time is fact - but we're not
necessarily saying how widely that policy is enforced. We similarly
report the type for default domains from global policy even though that
may also be overridden per-group by drivers and/or userspace later; we
don't say it's the *default* default domain type.
However, having now debugged the AMD issue from another thread, I think
doing this at subsys_initcall is in fact going to be too early to be
meaningful, since it ignores drivers' ability to change the global policy :(
Robin.