From: Keir Fraser <keir@xensource.com>
To: Jan Beulich <jbeulich@novell.com>,
Keir.Fraser@cl.cam.ac.uk, muli@il.ibm.com
Cc: xen-devel@lists.xensource.com
Subject: Re: x86 swiotlb questions
Date: Sat, 30 Dec 2006 17:47:17 +0000 [thread overview]
Message-ID: <C1BC56A5.6870%keir@xensource.com> (raw)
In-Reply-To: <4596A2C9020000780002B284@public.id2-vpn.continvity.gns.novell.com>
On 30/12/06 5:32 pm, "Jan Beulich" <jbeulich@novell.com> wrote:
>> * Why can't we turn dma_[un]map_page into dma_[un]map_single, as x86_64
>> does? This would avoid needing to expand the swiotlb api.
>
> Because we allow highmem pages in the I/O path, hence page_address() cannot
> be used. As you may have concluded from my sending of a second rev of the
> patches, I had a bug in exactly that path, so I know it is being exercised.
> Of course, all this exists for x86-32/PAE *only*, so it may be valid to
> raise the question if it's worth it. But otoh with supporting (only) 32-bit
> PAE PV guests on x86-64 we are in the process of widening the use case here.
Ah of course, the generic swiotlb has not (yet) been used by an architecture
with highmem requiring use of kmap(). I forgot about that.
Unfortunately highmem does rather complicate things -- I guess it's up to
the lib/swiotlb maintainers whether they want to keep that complexity in an
xen-i386-specific swiotlb.c or attempt a merge.
Here's a thought: if the highmem DMA requests come from *only* the blkdev
subsystem, then perhaps we could use its highmem bounce buffer (I think that
still exists?). We turn that off on Xen right now, but we could re-enable
it, leading to a slightly odd 'double bounce buffer': the first taking us
from high pseudophysical memory to low pseudophysical memory, and the second
taking us from high machine memory to low machine memory. If we can ensure
only lowmem requests get to the swiotlb then a lot of the Xen diffs go away.
I'm not sure whether we might get DMA requests from high memory from things
other than block devices though, nor whether all block devices would
actually pass through the blkdev bounce buffer code.
Thanks,
Keir
next prev parent reply other threads:[~2006-12-30 17:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-30 17:32 x86 swiotlb questions Jan Beulich
2006-12-30 17:47 ` Keir Fraser [this message]
2007-01-02 8:39 ` Jan Beulich
2007-01-03 7:10 ` Jan Beulich
2007-01-03 9:32 ` Keir Fraser
2007-01-03 11:01 ` Jan Beulich
-- strict thread matches above, loose matches on Subject: below --
2006-12-22 16:20 Jan Beulich
2006-12-22 21:00 ` Herbert Xu
2006-12-23 9:48 ` Keir Fraser
2006-12-22 14:49 Jan Beulich
2006-12-25 4:50 ` Muli Ben-Yehuda
2006-12-25 10:20 ` Keir Fraser
2006-12-15 12:50 Jan Beulich
2006-12-15 13:35 ` Keir Fraser
2006-12-15 13:53 ` Jan Beulich
2006-12-15 14:03 ` Keir Fraser
2006-12-15 14:17 ` Jan Beulich
2006-12-15 14:19 ` Keir Fraser
2006-12-15 14:46 ` Jan Beulich
2006-12-15 16:47 ` Keir Fraser
2006-12-15 16:19 ` Alan
2006-12-18 7:44 ` Jan Beulich
2006-12-18 9:39 ` Keir Fraser
2006-12-19 12:48 ` Jan Beulich
2006-12-19 14:14 ` Keir Fraser
2006-12-19 14:39 ` Jan Beulich
2006-12-19 14:46 ` Keir Fraser
2006-12-19 17:07 ` Muli Ben-Yehuda
2006-12-20 16:40 ` Jan Beulich
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=C1BC56A5.6870%keir@xensource.com \
--to=keir@xensource.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=jbeulich@novell.com \
--cc=muli@il.ibm.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.