On Thu, May 03, 2018 at 10:23:02AM -0400, Sinan Kaya wrote: > +Bjorn, > > On 5/3/2018 9:59 AM, Joerg Roedel wrote: > > On Thu, May 03, 2018 at 09:46:34AM -0400, Sinan Kaya wrote: > >> I also like the idea in general. > >> Minor nit.. > >> > >> Shouldn't this be an iommu parameter rather than a PCI kernel command line parameter? > >> We now have an iommu.passthrough argument that prevents page translation. > >> > >> Doesn't this fit into the same category especially when it is the IOMMU drivers that > >> call ATS functions for enablement not the PCI drivers. > > > > ATS is a bit of a grey area between PCI and IOMMU, but since ATS is > > PCI-specific and the code to enable/disable it is in PCI as well, I > > think the parameter makes sense for PCI too. > > OK. Bjorn was interested in having a command line driven feature enables > in driver/pci directory with bitmasks for each optional PCI spec > capability rather than noXYZ feature. It's true that I try to avoid adding *any* kernel parameters as much as possible because they're usually not practical for end-users. I think it's unreasonable to expect users to use "pci=" parameters based on what specific hardware they have. That's too hard to discover and too hard to use. I did wonder about a "pci=safe" parameter that would disable potentially risky features just as a debugging feature [1]. This ATS case is a security question and the parameter is not something that would have to be used to get certain hardware to work, so I think it's probably reasonable to add. I would maybe expand the documentation so it includes the reason somebody might want it, i.e., to defend against malicious PCIe devices. A parameter using bitmasks could be conceivable for developers but sounds too unwieldy for end-users. [1] https://bugzilla.kernel.org/show_bug.cgi?id=196197#c53