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

From: Jeremy Fitzhardinge
Date: Wed Dec 17 2008 - 11:31:59 EST


FUJITA Tomonori wrote:
On Tue, 16 Dec 2008 21:35:13 +0100
Ingo Molnar <mingo@xxxxxxx> wrote:

* Jeremy Fitzhardinge <jeremy@xxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/