[PATCH v2 2/2] Documentation/kernel-parameters.txt : Remove IA-64 from iommu=pt doc
Remove IA-64 from iommu=pt doc There is no sign of either iommu parameter parsing or use of iommu_pass_through in arch/ia64/kernel/pci-dma.c, so remove IA-64 from iommu=pt documentation. This patch depends on patch iommu_default_pt.patch. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1747,7 +1747,7 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH v2 1/2] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. The reason we use iommu=pt is to support using the DPDK igb_uio driver, which we need to do on servers that have an iommu but lack ACS. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1748,6 +1748,7 @@ forcesac soft pt [x86, IA-64] + nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -882,6 +882,13 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + def_bool n + prompt "Set iommu=pt by default" + help + Selecting this option will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = IS_ENABLED(CONFIG_IOMMU_DEFAULT_PT); extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v1 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Good morning, On 10/04/2016 10:03 AM, Konrad Rzeszutek Wilk wrote: On Tue, Oct 04, 2016 at 10:00:50AM -0700, Glenn Serre wrote: Good afternoon, On 10/04/2016 09:52 AM, Konrad Rzeszutek Wilk wrote: On Tue, Oct 04, 2016 at 09:11:39AM -0700, Glenn Serre wrote: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. The reason we use iommu=pt is to support using the DPDK igb_uio driver, which we need to do on servers that have an iommu but lack ACS. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] What about adding IA-64 back on? As far as I can see, IA-64 doesn't pay any attention at all to the iommu parameter. In arch/ia64/kernel/pci-dma.c, I see int iommu_pass_through; but no early_param("iommu"), other occurrence of "iommu", or reference to iommu_pass_through. That ought to be a seperate patch - one functional change per patch (see Documentation/SubmittingPatches). OK. One for remove IA-64 in kernel-parameters.txt, one for other stuff. --Glenn S. Or you can mention this in the commit description.. Thanks, --Glenn S. + nopt[x86] Or here? nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,13 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + def_bool n + prompt "Set iommu=pt by default" + help + Selecting this option will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = IS_ENABLED(CONFIG_IOMMU_DEFAULT_PT); extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.linuxfoundation.org_mailman_listinfo_iommu=DQIBAg=IL_XqQWOjubgfqINi2jTzg=3biwyMBB1JD9rm0R5wqz7zcDVkNif9HJ5Pflrr18dkw=sJQfEY5rZcAq-0QEyNvDxZkeujsoeiY8B_gabGOkyv8=ctQKeFfmQJ0ET8hJNBJmeRxdv_gwYgvysgku7sxdV4o= ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v1 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Good afternoon, On 10/04/2016 09:52 AM, Konrad Rzeszutek Wilk wrote: On Tue, Oct 04, 2016 at 09:11:39AM -0700, Glenn Serre wrote: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. The reason we use iommu=pt is to support using the DPDK igb_uio driver, which we need to do on servers that have an iommu but lack ACS. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] What about adding IA-64 back on? As far as I can see, IA-64 doesn't pay any attention at all to the iommu parameter. In arch/ia64/kernel/pci-dma.c, I see int iommu_pass_through; but no early_param("iommu"), other occurrence of "iommu", or reference to iommu_pass_through. Thanks, --Glenn S. + nopt[x86] Or here? nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,13 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + def_bool n + prompt "Set iommu=pt by default" + help + Selecting this option will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = IS_ENABLED(CONFIG_IOMMU_DEFAULT_PT); extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.linuxfoundation.org_mailman_listinfo_iommu=DQIBAg=IL_XqQWOjubgfqINi2jTzg=3biwyMBB1JD9rm0R5wqz7zcDVkNif9HJ5Pflrr18dkw=sJQfEY5rZcAq-0QEyNvDxZkeujsoeiY8B_gabGOkyv8=ctQKeFfmQJ0ET8hJNBJmeRxdv_gwYgvysgku7sxdV4o= ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH v1 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. The reason we use iommu=pt is to support using the DPDK igb_uio driver, which we need to do on servers that have an iommu but lack ACS. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] + nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,13 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + def_bool n + prompt "Set iommu=pt by default" + help + Selecting this option will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = IS_ENABLED(CONFIG_IOMMU_DEFAULT_PT); extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Good morning, On 09/29/2016 11:31 AM, Alex Williamson wrote: On Thu, 29 Sep 2016 09:58:55 -0700 Glenn Serre <gse...@brocade.com> wrote: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] + nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,15 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + int "Default iommu pt value (0-1)" + range 0 1 + default "0" + prompt "Set to 1 to default to iommu=pt" An integer that can be either zero or one... IOW a bool. There's support for bools in Kconfig. We had discussion about that during in-house code review. My initial take was bool like INTEL_IOMMU_DEFAULT_ON, but reviewers thought the current "right" way was range 0-1 like MTRR_SANITIZER_ENABLE_DEFAULT to avoid an ifdef, else, endif: #ifdef CONFIG_IOMMU_DEFAULT_PT int iommu_pass_through __read_mostly = 1; #else int iommu_pass_through __read_mostly; #endif /* CONFIG_IOMMU_DEFAULT_PT */ I'll go with whatever y'all prefer. Thanks, --Glenn S. + help + Setting this option to 1 will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = CONFIG_IOMMU_DEFAULT_PT; extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.linuxfoundation.org_mailman_listinfo_iommu=DQICAg=IL_XqQWOjubgfqINi2jTzg=3biwyMBB1JD9rm0R5wqz7zcDVkNif9HJ5Pflrr18dkw=6weXbuobXVwdVUVGUJUzgHf_32Tr95Ey128v4XLFPjs=XTyH-JkxzIj-W47wN4KHobMOdUQjXNnrngKhCndmG9I= ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Good morning, On 09/29/2016 11:11 AM, Konrad Rzeszutek Wilk wrote: On Thu, Sep 29, 2016 at 09:58:55AM -0700, Glenn Serre wrote: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. What's the reason / use-case for it? The top-level reason is we would prefer our kernel command line to not grow any larger than it already is. The reason we use iommu=pt is to support using the DPDK igb_uio driver, which we need to do on servers that have an iommu but lack ACS. Thanks, --Glenn S. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] + nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,15 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + int "Default iommu pt value (0-1)" + range 0 1 + default "0" + prompt "Set to 1 to default to iommu=pt" + help + Setting this option to 1 will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = CONFIG_IOMMU_DEFAULT_PT; extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.linuxfoundation.org_mailman_listinfo_iommu=DQIBAg=IL_XqQWOjubgfqINi2jTzg=3biwyMBB1JD9rm0R5wqz7zcDVkNif9HJ5Pflrr18dkw=JAPHQW96EkN4p33Jc7yZG15XGwK_KprKNxbbQvkgJ1c=HSZCSWNkVn-60uhbA_07tZgukoQbP3zZAhU0con30VY= ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH 1/1] arch/x86: Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt
Add CONFIG_IOMMU_DEFAULT_PT for iommu=pt Allow default to iommu=pt without adding to command line. Add iommu=nopt to turn off default. Signed-off-by: Glenn Serre <gse...@brocade.com> --- Documentation/kernel-parameters.txt | 3 ++- arch/x86/Kconfig| 7 +++ arch/x86/kernel/pci-dma.c | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1607,7 +1607,8 @@ nomerge forcesac soft - pt [x86, IA-64] + pt [x86] + nopt[x86] nobypass[PPC/POWERNV] Disable IOMMU bypass, using IOMMU for PCI devices. --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -845,6 +845,15 @@ def_bool y depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU +config IOMMU_DEFAULT_PT + int "Default iommu pt value (0-1)" + range 0 1 + default "0" + prompt "Set to 1 to default to iommu=pt" + help + Setting this option to 1 will set iommu passthrough (iommu=pt) + by default. Use iommu=nopt to override. + config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -43,7 +43,7 @@ * useful if a user wants to use an IOMMU only for KVM device assignment to * guests and not for driver dma translation. */ -int iommu_pass_through __read_mostly; +int iommu_pass_through __read_mostly = CONFIG_IOMMU_DEFAULT_PT; extern struct iommu_table_entry __iommu_table[], __iommu_table_end[]; @@ -196,6 +196,8 @@ #endif if (!strncmp(p, "pt", 2)) iommu_pass_through = 1; + if (!strncmp(p, "nopt", 4)) + iommu_pass_through = 0; gart_parse_options(p); ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu