2008-11-04 16:29:20

by Constantin Baranov

[permalink] [raw]
Subject: [PATCH 2.6.28-rc3] x86: make CONFIG_SWIOTLB configurable

Make it possible to enable individually the CONFIG_SWIOTLB option.
This is useful for Intel x86_64 systems without DMAR support.

Signed-off-by: Constantin Baranov <[email protected]>
---
Tested on my system based on Gigabyte GA-EP45-DS3 mainboard
(P45 chipset) with 8 GiB of RAM.
Currently I need to enable either CONFIG_GART_IOMMU or
CONFIG_AMD_IOMMU for proper work. Both are AMD specific.
When the patch applied, just CONFIG_SWIOTLB is sufficient.

arch/x86/Kconfig | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

--- linux-2.6.28-rc3/arch/x86/Kconfig 2008-11-04 17:32:29.846408880 +0400
+++ linux-2.6.28-rc3-swiotlb/arch/x86/Kconfig 2008-11-04 18:11:47.796408084 +0400
@@ -566,7 +566,9 @@ config AMD_IOMMU

# need this always selected by IOMMU for the VIA workaround
config SWIOTLB
- bool
+ bool "Support for software bounce buffers"
+ depends on X86_64 && EXPERIMENTAL
+ default n
help
Support for software bounce buffers used on x86-64 systems
which don't have a hardware IOMMU (e.g. the current generation


2008-11-05 10:22:27

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH 2.6.28-rc3] x86: make CONFIG_SWIOTLB configurable

On Tue 2008-11-04 20:28:52, Constantin Baranov wrote:
> Make it possible to enable individually the CONFIG_SWIOTLB option.
> This is useful for Intel x86_64 systems without DMAR support.
>
> Signed-off-by: Constantin Baranov <[email protected]>
> ---
> Tested on my system based on Gigabyte GA-EP45-DS3 mainboard
> (P45 chipset) with 8 GiB of RAM.
> Currently I need to enable either CONFIG_GART_IOMMU or
> CONFIG_AMD_IOMMU for proper work. Both are AMD specific.
> When the patch applied, just CONFIG_SWIOTLB is sufficient.
>
> arch/x86/Kconfig | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> --- linux-2.6.28-rc3/arch/x86/Kconfig 2008-11-04 17:32:29.846408880 +0400
> +++ linux-2.6.28-rc3-swiotlb/arch/x86/Kconfig 2008-11-04 18:11:47.796408084 +0400
> @@ -566,7 +566,9 @@ config AMD_IOMMU
>
> # need this always selected by IOMMU for the VIA workaround
> config SWIOTLB
> - bool
> + bool "Support for software bounce buffers"
> + depends on X86_64 && EXPERIMENTAL
> + default n
> help
> Support for software bounce buffers used on x86-64 systems
> which don't have a hardware IOMMU (e.g. the current generation

Why experimental?

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-11-05 15:59:26

by Constantin Baranov

[permalink] [raw]
Subject: Re: [PATCH 2.6.28-rc3] x86: make CONFIG_SWIOTLB configurable

Pavel Machek wrote:
> On Tue 2008-11-04 20:28:52, Constantin Baranov wrote:
>> Make it possible to enable individually the CONFIG_SWIOTLB option.
>> This is useful for Intel x86_64 systems without DMAR support.
>>
>> Signed-off-by: Constantin Baranov <[email protected]>
>> ---
>> Tested on my system based on Gigabyte GA-EP45-DS3 mainboard
>> (P45 chipset) with 8 GiB of RAM.
>> Currently I need to enable either CONFIG_GART_IOMMU or
>> CONFIG_AMD_IOMMU for proper work. Both are AMD specific.
>> When the patch applied, just CONFIG_SWIOTLB is sufficient.
>>
>> arch/x86/Kconfig | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> --- linux-2.6.28-rc3/arch/x86/Kconfig 2008-11-04 17:32:29.846408880 +0400
>> +++ linux-2.6.28-rc3-swiotlb/arch/x86/Kconfig 2008-11-04 18:11:47.796408084 +0400
>> @@ -566,7 +566,9 @@ config AMD_IOMMU
>>
>> # need this always selected by IOMMU for the VIA workaround
>> config SWIOTLB
>> - bool
>> + bool "Support for software bounce buffers"
>> + depends on X86_64 && EXPERIMENTAL
>> + default n
>> help
>> Support for software bounce buffers used on x86-64 systems
>> which don't have a hardware IOMMU (e.g. the current generation
>
> Why experimental?
>

As far as I understood, the comment before config SWIOTLB ('need this always selected by IOMMU for the VIA workaround') stands that voluntary enabling SWIOTLB may cause problems. Although I'm not sure that EXPERIMENTAL is really needed, or may be something else is better to prevent catastrophes.

2008-11-06 00:54:29

by FUJITA Tomonori

[permalink] [raw]
Subject: Re: [PATCH 2.6.28-rc3] x86: make CONFIG_SWIOTLB configurable

On Tue, 04 Nov 2008 20:28:52 +0400
Constantin Baranov <[email protected]> wrote:

> Make it possible to enable individually the CONFIG_SWIOTLB option.
> This is useful for Intel x86_64 systems without DMAR support.
>
> Signed-off-by: Constantin Baranov <[email protected]>
> ---
> Tested on my system based on Gigabyte GA-EP45-DS3 mainboard
> (P45 chipset) with 8 GiB of RAM.
> Currently I need to enable either CONFIG_GART_IOMMU or
> CONFIG_AMD_IOMMU for proper work. Both are AMD specific.
> When the patch applied, just CONFIG_SWIOTLB is sufficient.
>
> arch/x86/Kconfig | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> --- linux-2.6.28-rc3/arch/x86/Kconfig 2008-11-04 17:32:29.846408880 +0400
> +++ linux-2.6.28-rc3-swiotlb/arch/x86/Kconfig 2008-11-04 18:11:47.796408084 +0400
> @@ -566,7 +566,9 @@ config AMD_IOMMU
>
> # need this always selected by IOMMU for the VIA workaround
> config SWIOTLB
> - bool
> + bool "Support for software bounce buffers"
> + depends on X86_64 && EXPERIMENTAL
> + default n
> help
> Support for software bounce buffers used on x86-64 systems
> which don't have a hardware IOMMU (e.g. the current generation

IMHO, it's better to always enable SWIOTLB for X86_64 (the description
is a bit misleading; even with a hardware IOMMU, SWIOTLB is
necessary).