From 93ef224d63f9f04a0897d64981c619eb4816c0d3 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 2 Jul 2019 13:27:39 +0200 Subject: [PATCH] AMD/IOMMU: restrict feature logging The common case is all IOMMUs having the same features. Log them only for the first IOMMU, or for any that have a differing feature set. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Acked-by: Brian Woods --- xen/drivers/passthrough/amd/iommu_detect.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/drivers/passthrough/amd/iommu_detect.c b/xen/drivers/passthrough/amd/iommu_detect.c index 3c5d4de1a3..28282e47ac 100644 --- a/xen/drivers/passthrough/amd/iommu_detect.c +++ b/xen/drivers/passthrough/amd/iommu_detect.c @@ -62,6 +62,7 @@ void __init get_iommu_features(struct amd_iommu *iommu) { u32 low, high; int i = 0 ; + const struct amd_iommu *first; static const char *__initdata feature_str[] = { "- Prefetch Pages Command", "- Peripheral Page Service Request", @@ -89,6 +90,11 @@ void __init get_iommu_features(struct amd_iommu *iommu) iommu->features = ((u64)high << 32) | low; + /* Don't log the same set of features over and over. */ + first = list_first_entry(&amd_iommu_head, struct amd_iommu, list); + if ( iommu != first && iommu->features == first->features ) + return; + printk("AMD-Vi: IOMMU Extended Features:\n"); while ( feature_str[i] ) -- 2.30.2