From: Jeremy Fitzhardinge <jeremy@goop.org>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org,
xen-devel@lists.xensource.com, x86@kernel.org,
ian.campbell@citrix.com, jbeulich@novell.com,
joerg.roedel@amd.com
Subject: Re: [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb
Date: Wed, 17 Dec 2008 10:58:44 -0800 [thread overview]
Message-ID: <49494BE4.1070408@goop.org> (raw)
In-Reply-To: <20081218015705Z.fujita.tomonori@lab.ntt.co.jp>
FUJITA Tomonori wrote:
> On Wed, 17 Dec 2008 08:31:43 -0800
> Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>
>>> 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.
>>
>
> Sorry, but the highmem support is not generically useful.
>
That's a circular argument. lib/swiotlb currently used by 1 1/2 of the
23 architectures, neither of which happens to use highmem. If you
consider swiotlb to be a general purpose mechanism, then presumably the
other 21 1/2 architectures are at least potential users (and 6 1/2 of
those have highmem configurations). If you base your judgement of
what's a "generically useful" change based on what the current users
need, then you'll naturally exclude the requirements of all the other
(potential) users.
And the matter arises now because we're trying to unify the use of
swiotlb in x86, bringing the number of users up to 2.
> I'm especially against the highmem support. As you said, the rest
> looks fine but if you go with pci-swiotlb_32.c, I think that you don't
> need the most of them.
>
I really don't want to have to duplicate a lot of code just to
incorporate a few small changes. In fact the original Xen patch set
included its own swiotlb implementation, and that was rejected on the
grounds that we should use the common swiotlb.c.
This patch set abstracts out a few more architecture-specific details,
to allow the common swiotlb logic to be in one place. By not putting
highmem support into lib/swiotlb.c, you're effectively saying that we
should have separate lib/swiotlb-nohighmem.c and lib/swiotlb-highmem.c
files, with almost identical contents aside from the few places where we
need to use page+offset rather than a kernel vaddr.
Yes, highmem is ugly, and there'll be cheering in the streets when we
can finally kill the last highmem user. But for now we need to deal
with it, and unfortunately swiotlb is now one of the places that it
affects. Its true that adding highmem support to swiotlb.c increases
the maintenance burden to some extent. But I can't see an alternative
that doesn't increase the burden a lot more.
We can look at abstracting things a bit more so that non-highmem
architectures can keep using simple addresses rather than page+offset,
but that highmem code has got to be *somewhere*.
>> > 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.
>>
>
> Can you be more specific? What architecture is plan to use highmem
> support in swiotlb?
>
Well, concretely, x86-32. I don't know about the others, but I don't
see why there's an inherent reason that they won't have a problem that
swiotlb solves.
J
next prev parent reply other threads:[~2008-12-17 18:59 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-16 20:17 [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 01 of 14] x86: remove unused iommu_nr_pages Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 02 of 14] swiotlb: allow architectures to override swiotlb pool allocation Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 03 of 14] swiotlb: move some definitions to header Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 04 of 14] swiotlb: consistently use address_needs_mapping everywhere Jeremy Fitzhardinge
2008-12-17 2:48 ` FUJITA Tomonori
2008-12-17 2:51 ` FUJITA Tomonori
2008-12-17 16:43 ` Ian Campbell
2008-12-17 16:40 ` Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 05 of 14] swiotlb: add comment where we handle the overflow of a dma mask on 32 bit Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 06 of 14] swiotlb: allow architectures to override phys<->bus<->phys conversions Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 07 of 14] swiotlb: add arch hook to force mapping Jeremy Fitzhardinge
2008-12-22 5:34 ` FUJITA Tomonori
2008-12-16 20:17 ` [PATCH 08 of 14] swiotlb: factor out copy to/from device Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 09 of 14] swiotlb: support bouncing of HighMem pages Jeremy Fitzhardinge
2008-12-17 2:48 ` FUJITA Tomonori
2008-12-16 20:17 ` [PATCH 10 of 14] swiotlb: consolidate swiotlb info message printing Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 11 of 14] x86: add swiotlb allocation functions Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 12 of 14] x86: unify pci iommu setup and allow swiotlb to compile for 32 bit Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 13 of 14] x86/swiotlb: add default phys<->bus conversion Jeremy Fitzhardinge
2008-12-16 20:17 ` [PATCH 14 of 14] x86/swiotlb: add default swiotlb_arch_range_needs_mapping Jeremy Fitzhardinge
2008-12-16 20:35 ` [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb Ingo Molnar
2008-12-17 5:25 ` FUJITA Tomonori
2008-12-17 8:47 ` [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 useof swiotlb Jan Beulich
2008-12-17 16:51 ` FUJITA Tomonori
2008-12-17 16:31 ` [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb Jeremy Fitzhardinge
2008-12-17 16:56 ` FUJITA Tomonori
2008-12-17 18:58 ` Jeremy Fitzhardinge [this message]
2008-12-18 13:23 ` Ingo Molnar
2008-12-18 15:45 ` FUJITA Tomonori
2008-12-18 18:17 ` Becky Bruce
2008-12-18 20:09 ` Jeremy Fitzhardinge
2008-12-18 21:02 ` Ingo Molnar
2008-12-19 5:03 ` Becky Bruce
2008-12-19 7:02 ` Jeremy Fitzhardinge
2008-12-19 14:25 ` Becky Bruce
2008-12-19 17:48 ` Jeremy Fitzhardinge
2008-12-19 5:11 ` swiotlb highmem for ppc series Becky Bruce
2008-12-19 5:16 ` Becky Bruce
2008-12-19 5:11 ` [PATCH 01/11] swiotlb: Drop SG_ENT_VIRT_ADDRESS macro Becky Bruce
2008-12-19 5:11 ` [PATCH 02/11] swiotlb: Allow arch to provide address_needs_mapping Becky Bruce
2008-12-19 5:11 ` [PATCH 03/11] swiotlb: Rename SG_ENT_PHYS_ADDRESS to SG_ENT_BUS_ADDRESS Becky Bruce
2008-12-19 5:11 ` [PATCH 04/11] swiotlb: Print physical addr instead of bus addr in info printks Becky Bruce
2008-12-19 5:11 ` [PATCH 05/11] swiotlb: Create virt to/from dma_addr and phys_to_dma_addr funcs Becky Bruce
2008-12-19 5:11 ` [PATCH 06/11] swiotlb: Store phys address in io_tlb_orig_addr array Becky Bruce
2008-12-19 17:39 ` Jeremy Fitzhardinge
2008-12-22 5:34 ` FUJITA Tomonori
2008-12-19 5:11 ` [PATCH 07/11] swiotlb: Add support for systems with highmem Becky Bruce
2008-12-19 17:46 ` Jeremy Fitzhardinge
2008-12-19 18:12 ` Becky Bruce
2008-12-19 5:11 ` [PATCH 08/11] ia64/x86/swiotlb: use enum dma_data_direciton in dma_ops Becky Bruce
2008-12-19 5:11 ` [PATCH 09/11] swiotlb: add swiotlb_map/unmap_page Becky Bruce
2008-12-19 2:47 ` [PATCH 00 of 14] swiotlb/x86: lay groundwork for xen dom0 use of swiotlb FUJITA Tomonori
2008-12-19 8:18 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49494BE4.1070408@goop.org \
--to=jeremy@goop.org \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=ian.campbell@citrix.com \
--cc=jbeulich@novell.com \
--cc=joerg.roedel@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox