Re: Failure to shutdown/reboot with intel_iommu=on

From: Lu Baolu
Date: Fri May 08 2020 - 22:01:33 EST


Hi Uwe,

Have you tried commenting out intel_disable_iommus() in
intel_iommu_shutdowan()?

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 0182cff2c7ac..532e62600f95 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -4928,8 +4928,10 @@ void intel_iommu_shutdown(void)
for_each_iommu(iommu, drhd)
iommu_disable_protect_mem_regions(iommu);

+#if 0
/* Make sure the IOMMUs are switched off */
intel_disable_iommus();
+#endif

up_write(&dmar_global_lock);
}

Best regards,
baolu

On 5/8/20 11:07 PM, Joerg Roedel wrote:
+ Baolu, Maintainer of Intel IOMMU

Baolu, does that ring any bells?

On Wed, May 06, 2020 at 04:46:02PM +0200, Uwe Kleine-KÃnig wrote:
Hello,

On my Lenovo T460p I cannot shutdown and reboot when the iommu is
enabled. This is using linux 5.2.7 as provided by Debian, 5.6.4 has the
same problem. Suspend/resume also fails; I suspect this is the same
issue.

When requesting power off the kernel messages just end with:

sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
e1000e: EEE TX LPI TIMER: 00000011
ACPI: Preparing to enter system sleep state S5
reboot: Power down
acpi_power_off called

(photo at https://www.kleine-koenig.org/tmp/uklsiommu.jpg in case I
mistyped something. Full dmesg and lspci -vvv at
https://www.kleine-koenig.org/tmp/uklsiommu.tar.gz with and without
iommu enabled.)

With the iommu disabled (CONFIG_INTEL_IOMMU_DEFAULT_ON unset or
intel_iommu=off on cmdline) the machine just works as expected
(including working suspend/resume).

I already talked to tglx on irc but unfortunately no new insights
resulted from that.

Any ideas how to fix or continue debugging the issue?

Best regards
Uwe