Re: [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb

Jeremy Fitzhardinge
2008-12-17T16:31:59Z

FUJITA Tomonori wrote:
> On Tue, 16 Dec 2008 21:35:13 +0100
> Ingo Molnar <mingo@elte.hu> wrote:
>
>
>> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>>
>>
>>> Hi Ingo,
>>>
>>> Here's some patches to clean up swiotlb to prepare for some Xen dom0
>>> patches. These have been posted before, but undergone a round of
>>> cleanups to address various comments.
>>>
>> applied to tip/core/iommu, thanks Jeremy.
>>
>> the only patch that seems to have the potential to break drivers is:
>>
>> be4ac7b: swiotlb: consistently use address_needs_mapping everywhere
>>
>
> Yeah, as I already wrote, this patch is wrong.
>

I'll have a look.

> I think that the whole patchset is against the swiotlb design. swiotlb
> is designed to be used as a library. Each architecture implements the
> own swiotlb by using swiotlb library
> (e.g. arch/x86/kernel/pci-swiotlb_64.c).
>

The whole patchset? The bulk of the changes to lib/swiotlb.c are
relatively minor to remove the unwarranted assumptions it is making in
the face of a new user. They will have no effect on other existing
users, including non-Xen x86 builds.

If you have specific objections we can discuss those, but I don't think
there's anything fundamentally wrong with making lib/swiotlb.c a bit
more generically useful.

> For example, adding the following code (9/14) for just Xen that the
> majority of swiotbl users (x86_64 and IA64) don't need to the library
> is against the design.
>

If the architecture doesn't support highmem then this code will compile
to nothing - PageHighMem() will always evaluate to 0. It will therefore
have zero effect on the code generated for IA64 or x86-64. This is not
really a Xen-specific change, but a result of adding swiotlb support for
i386. Other architectures which support a notion of highmem would also
need this code if they wanted to use swiotlb.

J