lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BN9PR11MB5276428A5462738F89190A5A8C9C2@BN9PR11MB5276.namprd11.prod.outlook.com>
Date: Wed, 4 Sep 2024 06:49:11 +0000
From: "Tian, Kevin" <kevin.tian@...el.com>
To: Lu Baolu <baolu.lu@...ux.intel.com>, Joerg Roedel <joro@...tes.org>, "Will
 Deacon" <will@...nel.org>, Robin Murphy <robin.murphy@....com>
CC: "Saarinen, Jani" <jani.saarinen@...el.com>, "iommu@...ts.linux.dev"
	<iommu@...ts.linux.dev>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "stable@...r.kernel.org"
	<stable@...r.kernel.org>
Subject: RE: [PATCH 1/1] iommu/vt-d: Prevent boot failure with devices
 requiring ATS

> From: Lu Baolu <baolu.lu@...ux.intel.com>
> Sent: Wednesday, September 4, 2024 2:07 PM
> 
> SOC-integrated devices on some platforms require their PCI ATS enabled
> for operation when the IOMMU is in scalable mode. Those devices are
> reported via ACPI/SATC table with the ATC_REQUIRED bit set in the Flags
> field.
> 
> The PCI subsystem offers the 'pci=noats' kernel command to disable PCI
> ATS on all devices. Using 'pci=noat' with devices that require PCI ATS
> can cause a conflict, leading to boot failure, especially if the device
> is a graphics device.
> 
> To prevent this issue, check PCI ATS support before enumerating the IOMMU
> devices. If any device requires PCI ATS, but PCI ATS is disabled by
> 'pci=noats', switch the IOMMU to operate in legacy mode to ensure
> successful booting.

I guess the reason of switching to legacy mode is because the platform
automatically enables ATS in this mode, as the comment says in
dmar_ats_supported(). This should be explained otherwise it's unclear
why switching the mode can make ATS working for those devices.

But then doesn't it break the meaning of 'pci=noats' which means 
disabling ATS physically? It's described as "do not use PCIe ATS and
IOMMU device IOTLB" in kernel doc, which is not equivalent to
"leave PCIe ATS to be managed by HW".

and why would one want to use 'pci=noats' on a platform which
requires ats?


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ