[PATCH v2 2/2] Documentation/kernel-parameters.txt : Remove IA-64 from iommu=pt doc

2016-10-17 Thread Glenn Serre

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

2016-10-17 Thread Glenn Serre

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

2016-10-04 Thread Glenn Serre

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

2016-10-04 Thread Glenn Serre

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

2016-10-04 Thread Glenn Serre

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

2016-09-29 Thread Glenn Serre

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

2016-09-29 Thread Glenn Serre

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

2016-09-29 Thread Glenn Serre

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