LKML Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
@ 2019-11-09  3:40 Lu Baolu
  2019-11-09  3:59 ` Qian Cai
  2019-11-11  2:58 ` Qian Cai
  0 siblings, 2 replies; 9+ messages in thread
From: Lu Baolu @ 2019-11-09  3:40 UTC (permalink / raw)
  To: Joerg Roedel, David Woodhouse
  Cc: ashok.raj, jacob.jun.pan, kevin.tian, iommu, linux-kernel, Lu Baolu

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

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

diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index e3842eabcfdd..fbdf3fd291d9 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -242,6 +242,15 @@ 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_DEFAULT_ON
+	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 6db6d969e31c..6051fe790c61 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -355,9 +355,14 @@ static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain,
 int dmar_disabled = 0;
 #else
 int dmar_disabled = 1;
-#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
+#endif /* CONFIG_INTEL_IOMMU_DEFAULT_ON */
 
+#ifdef INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
+int intel_iommu_sm = 1;
+#else
 int intel_iommu_sm;
+#endif /* INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON */
+
 int intel_iommu_enabled = 0;
 EXPORT_SYMBOL_GPL(intel_iommu_enabled);
 
-- 
2.17.1


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

* Re: [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-09  3:40 [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode Lu Baolu
@ 2019-11-09  3:59 ` Qian Cai
  2019-11-11  1:27   ` Lu Baolu
  2019-11-11  2:58 ` Qian Cai
  1 sibling, 1 reply; 9+ messages in thread
From: Qian Cai @ 2019-11-09  3:59 UTC (permalink / raw)
  To: Lu Baolu
  Cc: Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan



> On Nov 8, 2019, at 10:40 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
> 
> This adds Kconfig option INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
> to make it easier for distributions to enable or disable the
> Intel IOMMU scalable mode by default during kernel build.
> 
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> ---
> drivers/iommu/Kconfig       | 9 +++++++++
> drivers/iommu/intel-iommu.c | 7 ++++++-
> 2 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index e3842eabcfdd..fbdf3fd291d9 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -242,6 +242,15 @@ 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_DEFAULT_ON
> +	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.


Maybe a sentence or two to describe what the scalable mode is in layman's
terms could be useful, so developers don’t need to search around for the
Kconfig selection?

> +
> 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 6db6d969e31c..6051fe790c61 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -355,9 +355,14 @@ static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain,
> int dmar_disabled = 0;
> #else
> int dmar_disabled = 1;
> -#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
> +#endif /* CONFIG_INTEL_IOMMU_DEFAULT_ON */
> 
> +#ifdef INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
> +int intel_iommu_sm = 1;
> +#else
> int intel_iommu_sm;
> +#endif /* INTEL_IOMMU_SCALABLE_MODE_DEFAULT_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	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-09  3:59 ` Qian Cai
@ 2019-11-11  1:27   ` Lu Baolu
  2019-11-11  2:00     ` Qian Cai
  0 siblings, 1 reply; 9+ messages in thread
From: Lu Baolu @ 2019-11-11  1:27 UTC (permalink / raw)
  To: Qian Cai
  Cc: baolu.lu, Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan

Hi,

On 11/9/19 11:59 AM, Qian Cai wrote:
> 
> 
>> On Nov 8, 2019, at 10:40 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
>>
>> This adds Kconfig option INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
>> to make it easier for distributions to enable or disable the
>> Intel IOMMU scalable mode by default during kernel build.
>>
>> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
>> ---
>> drivers/iommu/Kconfig       | 9 +++++++++
>> drivers/iommu/intel-iommu.c | 7 ++++++-
>> 2 files changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
>> index e3842eabcfdd..fbdf3fd291d9 100644
>> --- a/drivers/iommu/Kconfig
>> +++ b/drivers/iommu/Kconfig
>> @@ -242,6 +242,15 @@ 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_DEFAULT_ON
>> +	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.
> 
> 
> Maybe a sentence or two to describe what the scalable mode is in layman's
> terms could be useful, so developers don’t need to search around for the
> Kconfig selection?

How about "pasid based multiple stages DMA translation"?

Best regards,
baolu

> 
>> +
>> 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 6db6d969e31c..6051fe790c61 100644
>> --- a/drivers/iommu/intel-iommu.c
>> +++ b/drivers/iommu/intel-iommu.c
>> @@ -355,9 +355,14 @@ static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain,
>> int dmar_disabled = 0;
>> #else
>> int dmar_disabled = 1;
>> -#endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
>> +#endif /* CONFIG_INTEL_IOMMU_DEFAULT_ON */
>>
>> +#ifdef INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
>> +int intel_iommu_sm = 1;
>> +#else
>> int intel_iommu_sm;
>> +#endif /* INTEL_IOMMU_SCALABLE_MODE_DEFAULT_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	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-11  1:27   ` Lu Baolu
@ 2019-11-11  2:00     ` Qian Cai
  2019-11-11  2:17       ` Lu Baolu
  0 siblings, 1 reply; 9+ messages in thread
From: Qian Cai @ 2019-11-11  2:00 UTC (permalink / raw)
  To: Lu Baolu
  Cc: Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan



> On Nov 10, 2019, at 8:30 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
> 
> How about "pasid based multiple stages DMA translation"?

It is better but I am still not sure how developers should select it or not when asking. Ideally, should it mention pros and cons of this? At minimal, there should be a line said “if not sure what this is, select N”?

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

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

Hi,

On 11/11/19 10:00 AM, Qian Cai wrote:
> 
> 
>> On Nov 10, 2019, at 8:30 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
>>
>> How about "pasid based multiple stages DMA translation"?
> 
> It is better but I am still not sure how developers should select it or not when asking. Ideally, should it mention pros and cons of this? At minimal, there should be a line said “if not sure what this is, select N”?
> 

Actually, I'd recommend "if not sure, use the default value". :-)

Best regards,
baolu

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

* Re: [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-09  3:40 [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode Lu Baolu
  2019-11-09  3:59 ` Qian Cai
@ 2019-11-11  2:58 ` Qian Cai
  2019-11-11  5:20   ` Lu Baolu
  1 sibling, 1 reply; 9+ messages in thread
From: Qian Cai @ 2019-11-11  2:58 UTC (permalink / raw)
  To: Lu Baolu
  Cc: Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan



> On Nov 8, 2019, at 10:43 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
> 
> +config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
> +    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.
> +

Does it also make sense to mention which hardware presents this capability or how to check it?

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

* Re: [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode
  2019-11-11  2:58 ` Qian Cai
@ 2019-11-11  5:20   ` Lu Baolu
  2019-11-11 14:05     ` Qian Cai
  0 siblings, 1 reply; 9+ messages in thread
From: Lu Baolu @ 2019-11-11  5:20 UTC (permalink / raw)
  To: Qian Cai
  Cc: baolu.lu, Joerg Roedel, David Woodhouse, kevin.tian, ashok.raj,
	linux-kernel, iommu, jacob.jun.pan

Hi,

On 11/11/19 10:58 AM, Qian Cai wrote:
> 
> 
>> On Nov 8, 2019, at 10:43 PM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
>>
>> +config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
>> +    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.
>> +
> 
> Does it also make sense to mention which hardware presents this capability or how to check it?
> 

The scalable mode is defined in VT-d 3.0. The scalable mode capability
could be checked by reading /sys/devices/virtual/iommu/dmar*/intel-
iommu/ecap. It's currently not friendly for reading. You need to decode
it according to the spec.

Best regards,
baolu



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

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



> On Nov 11, 2019, at 12:23 AM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
> 
> The scalable mode is defined in VT-d 3.0. The scalable mode capability
> could be checked by reading /sys/devices/virtual/iommu/dmar*/intel-
> iommu/ecap. It's currently not friendly for reading. You need to decode
> it according to the spec.

This looks like some perfect information to put in the Kconfig description.

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

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

Hi,

On 11/11/19 10:05 PM, Qian Cai wrote:
> 
> 
>> On Nov 11, 2019, at 12:23 AM, Lu Baolu <baolu.lu@linux.intel.com> wrote:
>>
>> The scalable mode is defined in VT-d 3.0. The scalable mode capability
>> could be checked by reading /sys/devices/virtual/iommu/dmar*/intel-
>> iommu/ecap. It's currently not friendly for reading. You need to decode
>> it according to the spec.
> 
> This looks like some perfect information to put in the Kconfig description.
> 

Okay. Will add it in the next version.

Best regards,
baolu

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

end of thread, back to index

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-09  3:40 [PATCH v2 1/1] iommu/vt-d: Add Kconfig option to enable/disable scalable mode Lu Baolu
2019-11-09  3:59 ` Qian Cai
2019-11-11  1:27   ` Lu Baolu
2019-11-11  2:00     ` Qian Cai
2019-11-11  2:17       ` Lu Baolu
2019-11-11  2:58 ` Qian Cai
2019-11-11  5:20   ` Lu Baolu
2019-11-11 14:05     ` Qian Cai
2019-11-12  5:48       ` Lu Baolu

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git