All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
@ 2019-11-06  5:11 ` Lu Baolu
  0 siblings, 0 replies; 6+ messages in thread
From: Lu Baolu @ 2019-11-06  5:11 UTC (permalink / raw)
  To: Joerg Roedel, David Woodhouse
  Cc: ashok.raj, jacob.jun.pan, kevin.tian, iommu, linux-kernel, Lu Baolu

This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
it easier for distributions to enable or disable the Intel IOMMU
scalable mode during kernel build.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 drivers/iommu/Kconfig       | 10 ++++++++++
 drivers/iommu/intel-iommu.c |  5 +++++
 2 files changed, 15 insertions(+)

diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index e3842eabcfdd..32f30e27791c 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
 	  workaround will setup a 1:1 mapping for the first
 	  16MiB to make floppy (an ISA device) work.
 
+config INTEL_IOMMU_SCALABLE_MODE_ON
+	def_bool n
+	prompt "Enable Intel IOMMU scalable mode by default"
+	depends on INTEL_IOMMU
+	help
+	  Selecting this option will enable the scalable mode if
+	  hardware presents the capability. If this option is not
+	  selected, scalable mode support could also be enabled
+	  by passing intel_iommu=sm_on to the kernel.
+
 config IRQ_REMAP
 	bool "Support for Interrupt Remapping"
 	depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 0f2f7124c1ca..545eb3b5c083 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -357,7 +357,12 @@ int dmar_disabled = 0;
 int dmar_disabled = 1;
 #endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
 
+#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
+int intel_iommu_sm = 1;
+#else
 int intel_iommu_sm;
+#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */
+
 int intel_iommu_enabled = 0;
 EXPORT_SYMBOL_GPL(intel_iommu_enabled);
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
@ 2019-11-06  5:11 ` Lu Baolu
  0 siblings, 0 replies; 6+ messages in thread
From: Lu Baolu @ 2019-11-06  5:11 UTC (permalink / raw)
  To: Joerg Roedel, David Woodhouse
  Cc: kevin.tian, ashok.raj, linux-kernel, iommu, jacob.jun.pan

This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
it easier for distributions to enable or disable the Intel IOMMU
scalable mode during kernel build.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 drivers/iommu/Kconfig       | 10 ++++++++++
 drivers/iommu/intel-iommu.c |  5 +++++
 2 files changed, 15 insertions(+)

diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index e3842eabcfdd..32f30e27791c 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
 	  workaround will setup a 1:1 mapping for the first
 	  16MiB to make floppy (an ISA device) work.
 
+config INTEL_IOMMU_SCALABLE_MODE_ON
+	def_bool n
+	prompt "Enable Intel IOMMU scalable mode by default"
+	depends on INTEL_IOMMU
+	help
+	  Selecting this option will enable the scalable mode if
+	  hardware presents the capability. If this option is not
+	  selected, scalable mode support could also be enabled
+	  by passing intel_iommu=sm_on to the kernel.
+
 config IRQ_REMAP
 	bool "Support for Interrupt Remapping"
 	depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 0f2f7124c1ca..545eb3b5c083 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -357,7 +357,12 @@ int dmar_disabled = 0;
 int dmar_disabled = 1;
 #endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
 
+#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
+int intel_iommu_sm = 1;
+#else
 int intel_iommu_sm;
+#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */
+
 int intel_iommu_enabled = 0;
 EXPORT_SYMBOL_GPL(intel_iommu_enabled);
 
-- 
2.17.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-06  5:11 ` Lu Baolu
@ 2019-11-07  9:34   ` Christoph Hellwig
  -1 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2019-11-07  9:34 UTC (permalink / raw)
  To: Lu Baolu
  Cc: Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan

On Wed, Nov 06, 2019 at 01:11:30PM +0800, Lu Baolu wrote:
> This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
> it easier for distributions to enable or disable the Intel IOMMU
> scalable mode during kernel build.



> 
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> ---
>  drivers/iommu/Kconfig       | 10 ++++++++++
>  drivers/iommu/intel-iommu.c |  5 +++++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index e3842eabcfdd..32f30e27791c 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
>  	  workaround will setup a 1:1 mapping for the first
>  	  16MiB to make floppy (an ISA device) work.
>  
> +config INTEL_IOMMU_SCALABLE_MODE_ON

That should have a DEFAULT in the name as it is a default.

> +	def_bool n

n is the default default, so this can just be bool.

> +#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
> +int intel_iommu_sm = 1;
> +#else
>  int intel_iommu_sm;
> +#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */

This can use IS_ENABLED().

But then again the distro can just add iommu=sm_on to CONFIG_CMDLINE
and have the same effect, so I don't really get the point of the whole
patch.

Or why we can't just enable it by default for that matter.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
@ 2019-11-07  9:34   ` Christoph Hellwig
  0 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2019-11-07  9:34 UTC (permalink / raw)
  To: Lu Baolu
  Cc: kevin.tian, ashok.raj, linux-kernel, iommu, jacob.jun.pan,
	David Woodhouse

On Wed, Nov 06, 2019 at 01:11:30PM +0800, Lu Baolu wrote:
> This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
> it easier for distributions to enable or disable the Intel IOMMU
> scalable mode during kernel build.



> 
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> ---
>  drivers/iommu/Kconfig       | 10 ++++++++++
>  drivers/iommu/intel-iommu.c |  5 +++++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index e3842eabcfdd..32f30e27791c 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
>  	  workaround will setup a 1:1 mapping for the first
>  	  16MiB to make floppy (an ISA device) work.
>  
> +config INTEL_IOMMU_SCALABLE_MODE_ON

That should have a DEFAULT in the name as it is a default.

> +	def_bool n

n is the default default, so this can just be bool.

> +#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
> +int intel_iommu_sm = 1;
> +#else
>  int intel_iommu_sm;
> +#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */

This can use IS_ENABLED().

But then again the distro can just add iommu=sm_on to CONFIG_CMDLINE
and have the same effect, so I don't really get the point of the whole
patch.

Or why we can't just enable it by default for that matter.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-07  9:34   ` Christoph Hellwig
@ 2019-11-08  1:35     ` Lu Baolu
  -1 siblings, 0 replies; 6+ messages in thread
From: Lu Baolu @ 2019-11-08  1:35 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: baolu.lu, Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan

Hi Christoph,

On 11/7/19 5:34 PM, Christoph Hellwig wrote:
> On Wed, Nov 06, 2019 at 01:11:30PM +0800, Lu Baolu wrote:
>> This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
>> it easier for distributions to enable or disable the Intel IOMMU
>> scalable mode during kernel build.
> 
> 
> 
>>
>> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
>> ---
>>   drivers/iommu/Kconfig       | 10 ++++++++++
>>   drivers/iommu/intel-iommu.c |  5 +++++
>>   2 files changed, 15 insertions(+)
>>
>> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
>> index e3842eabcfdd..32f30e27791c 100644
>> --- a/drivers/iommu/Kconfig
>> +++ b/drivers/iommu/Kconfig
>> @@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
>>   	  workaround will setup a 1:1 mapping for the first
>>   	  16MiB to make floppy (an ISA device) work.
>>   
>> +config INTEL_IOMMU_SCALABLE_MODE_ON
> 
> That should have a DEFAULT in the name as it is a default.

Agreed.

> 
>> +	def_bool n
> 
> n is the default default, so this can just be bool.

Agreed.

> 
>> +#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
>> +int intel_iommu_sm = 1;
>> +#else
>>   int intel_iommu_sm;
>> +#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */
> 
> This can use IS_ENABLED().

We already have below in the code

#ifdef CONFIG_INTEL_IOMMU_DEFAULT_ON
int dmar_disabled = 0;
#else
int dmar_disabled = 1;
#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/

I prefer to make the code style consistent if these two doesn't make
much difference.

> 
> But then again the distro can just add iommu=sm_on to CONFIG_CMDLINE
> and have the same effect, so I don't really get the point of the whole
> patch.
> 
> Or why we can't just enable it by default for that matter.
>

Currently Intel IOMMU scalable mode is by default off since some related
features are still under active development. We will make it default on
later once all features are ready.

No matter scalable mode default on or off, we provide two ways to switch
it between on and off: kernel command and Kconfig option. The former is
mainly used for debugging and testing purpose and the later is liked by
the distributions.

Best regards,
baolu

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
@ 2019-11-08  1:35     ` Lu Baolu
  0 siblings, 0 replies; 6+ messages in thread
From: Lu Baolu @ 2019-11-08  1:35 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: kevin.tian, ashok.raj, linux-kernel, iommu, jacob.jun.pan,
	David Woodhouse

Hi Christoph,

On 11/7/19 5:34 PM, Christoph Hellwig wrote:
> On Wed, Nov 06, 2019 at 01:11:30PM +0800, Lu Baolu wrote:
>> This adds a Kconfig option INTEL_IOMMU_SCALABLE_MODE_ON to make
>> it easier for distributions to enable or disable the Intel IOMMU
>> scalable mode during kernel build.
> 
> 
> 
>>
>> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
>> ---
>>   drivers/iommu/Kconfig       | 10 ++++++++++
>>   drivers/iommu/intel-iommu.c |  5 +++++
>>   2 files changed, 15 insertions(+)
>>
>> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
>> index e3842eabcfdd..32f30e27791c 100644
>> --- a/drivers/iommu/Kconfig
>> +++ b/drivers/iommu/Kconfig
>> @@ -242,6 +242,16 @@ config INTEL_IOMMU_FLOPPY_WA
>>   	  workaround will setup a 1:1 mapping for the first
>>   	  16MiB to make floppy (an ISA device) work.
>>   
>> +config INTEL_IOMMU_SCALABLE_MODE_ON
> 
> That should have a DEFAULT in the name as it is a default.

Agreed.

> 
>> +	def_bool n
> 
> n is the default default, so this can just be bool.

Agreed.

> 
>> +#ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON
>> +int intel_iommu_sm = 1;
>> +#else
>>   int intel_iommu_sm;
>> +#endif /* CONFIG_INTEL_IOMMU_SCALABLE_MODE_ON */
> 
> This can use IS_ENABLED().

We already have below in the code

#ifdef CONFIG_INTEL_IOMMU_DEFAULT_ON
int dmar_disabled = 0;
#else
int dmar_disabled = 1;
#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/

I prefer to make the code style consistent if these two doesn't make
much difference.

> 
> But then again the distro can just add iommu=sm_on to CONFIG_CMDLINE
> and have the same effect, so I don't really get the point of the whole
> patch.
> 
> Or why we can't just enable it by default for that matter.
>

Currently Intel IOMMU scalable mode is by default off since some related
features are still under active development. We will make it default on
later once all features are ready.

No matter scalable mode default on or off, we provide two ways to switch
it between on and off: kernel command and Kconfig option. The former is
mainly used for debugging and testing purpose and the later is liked by
the distributions.

Best regards,
baolu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-11-08  1:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06  5:11 [PATCH 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode Lu Baolu
2019-11-06  5:11 ` Lu Baolu
2019-11-07  9:34 ` Christoph Hellwig
2019-11-07  9:34   ` Christoph Hellwig
2019-11-08  1:35   ` Lu Baolu
2019-11-08  1:35     ` Lu Baolu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.