From: Mike Day <ncmike@ncultra.org>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: Add target memory mapping API
Date: Wed, 21 Jan 2009 13:56:29 -0500 [thread overview]
Message-ID: <20090121185629.GA326@silverwood.ncultra.org> (raw)
In-Reply-To: <18807.22215.857033.533504@mariner.uk.xensource.com>
On 21/01/09 17:09 +0000, Ian Jackson wrote:
> Anthony Liguori writes ("[Qemu-devel] Re: [PATCH 1/5] Add target memory mapping API"):
> > I've gone though the thread again and I think this patch series is a
> > pretty good start. I think the API can be refined a bit more down the
> > road to better support Xen but I think this is a good start.
>
> I'm afraid I disagree.
>
> > Does anyone have major blockers with this API? If not, I'd like to
> > commit these patches. The consumers of it should be small provided that
> > we make sure to write helpers for the various types of IO pipelines.
>
> I have three criticisms, the first of which is in my view a major
> blocker:
>
> * The unmap call should take a transfer length, for the reasons
> I have explained.
>
> This is absolutely critical for correctness if bounce buffers are
> used.
>
> I think it is important that the API permits implementations where
> the memory cannot be just mapped. At the moment the APIs used by
> qemu device emulations do not assume that they can access RAM
> willy-nilly; they are all expected to go through
> cpu_physical_memory_rw. I think it is important to preserve this
> for the future flexibility of the qemu codebase.
cpu_physical_memory_rw will still be available and used by most
devices even with this proposed API, right? Certain devices will be
able to now use the new API.
> Note that Xen is not such an implementation, although in the Xen
> case the additional performance of mapping is not so important so
> we might not choose to implement the mapping right away. Obviously
> it would be much easier for us just to implement this mapping than
> to argue at length on this list. It's not hard for Xen. So I'm
> not trying to special-case Xen here. You shouldn't read my
> criticisms as some kind of Xen fanatic trying to defend some crazy
> Xen behaviour.
>
> I'm trying to preserve an important and useful property of the
> internal qemu API. My suggestion will mean the device emulation
> parts of qemu continue to be reasonably easily useable separately
> from the rest of qemu, and possibly very separately from any
> emulation of CPU or memory. The benefit is difficult to evaluate
> exactly but the cost is very small.
>
> Of my criticisms, I think this is by far the most important. It
> relates to the correctness of the API and in my view it is essential
> that this be properly addressed.
>
> Avi will say again (as if repetition made things true) that `bounce
> buffers are never used' but of course they will be sometimes. If they
> were never used his patch wouldn't need to have that code in them.
> It's true that they will be _rarely_ used but a lack of correctness in
> a rare case is not acceptable either.
I think a DMA into a device MMIO range is a special case.
Mike
--
Mike Day
http://www.ncultra.org
AIM: ncmikeday | Yahoo IM: ultra.runner
PGP key: http://www.ncultra.org/ncmike/pubkey.asc
next prev parent reply other threads:[~2009-01-21 18:54 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-18 19:53 [Qemu-devel] [PATCH 0/5] Direct memory access for devices Avi Kivity
2009-01-18 19:53 ` [Qemu-devel] [PATCH 1/5] Add target memory mapping API Avi Kivity
2009-01-19 13:49 ` Ian Jackson
2009-01-19 14:54 ` Avi Kivity
2009-01-19 15:39 ` Anthony Liguori
2009-01-19 16:18 ` Paul Brook
2009-01-19 16:33 ` Anthony Liguori
2009-01-19 16:39 ` Avi Kivity
2009-01-19 19:15 ` Anthony Liguori
2009-01-20 10:09 ` Avi Kivity
2009-01-19 16:57 ` Ian Jackson
2009-01-19 19:23 ` Anthony Liguori
2009-01-20 10:17 ` Avi Kivity
2009-01-20 14:18 ` Ian Jackson
2009-01-19 16:40 ` Ian Jackson
2009-01-19 17:28 ` Avi Kivity
2009-01-19 17:53 ` Ian Jackson
2009-01-19 18:29 ` Avi Kivity
2009-01-20 14:32 ` Ian Jackson
2009-01-20 17:23 ` Avi Kivity
2009-01-19 18:25 ` Jamie Lokier
2009-01-19 18:43 ` Avi Kivity
2009-01-20 14:49 ` Ian Jackson
2009-01-20 17:42 ` Avi Kivity
2009-01-20 18:08 ` Jamie Lokier
2009-01-20 20:27 ` Avi Kivity
2009-01-21 16:53 ` Ian Jackson
2009-01-21 16:50 ` Ian Jackson
2009-01-21 17:18 ` Avi Kivity
2009-01-21 21:54 ` Anthony Liguori
2009-01-20 14:44 ` Ian Jackson
2009-01-21 12:06 ` [Qemu-devel] " Mike Day
2009-01-21 12:18 ` Avi Kivity
2009-01-19 15:05 ` [Qemu-devel] [PATCH 1/5] " Gerd Hoffmann
2009-01-19 15:23 ` Avi Kivity
2009-01-19 15:29 ` Avi Kivity
2009-01-19 15:57 ` Gerd Hoffmann
2009-01-19 16:25 ` Avi Kivity
2009-01-19 17:08 ` Ian Jackson
2009-01-19 17:16 ` Avi Kivity
2009-01-19 14:56 ` [Qemu-devel] " Anthony Liguori
2009-01-19 15:03 ` Avi Kivity
2009-01-19 15:49 ` Anthony Liguori
2009-01-19 15:51 ` Avi Kivity
2009-01-20 18:43 ` Anthony Liguori
2009-01-21 17:09 ` Ian Jackson
2009-01-21 18:56 ` Mike Day [this message]
2009-01-21 19:35 ` [Qemu-devel] " Avi Kivity
2009-01-21 19:36 ` [Qemu-devel] Re: [PATCH 1/5] " Anthony Liguori
2009-01-22 12:18 ` Ian Jackson
2009-01-22 18:46 ` Anthony Liguori
2009-01-26 12:23 ` Ian Jackson
2009-01-26 18:03 ` Anthony Liguori
2009-01-21 11:52 ` [Qemu-devel] " Mike Day
2009-01-21 12:17 ` Avi Kivity
2009-01-21 17:37 ` Paul Brook
2009-01-18 19:53 ` [Qemu-devel] [PATCH 2/5] Add map client retry notification Avi Kivity
2009-01-19 14:58 ` [Qemu-devel] " Anthony Liguori
2009-01-18 19:53 ` [Qemu-devel] [PATCH 3/5] Vectored block device API Avi Kivity
2009-01-19 16:54 ` Blue Swirl
2009-01-19 17:19 ` Avi Kivity
2009-01-18 19:53 ` [Qemu-devel] [PATCH 4/5] I/O vector helpers Avi Kivity
2009-01-18 19:53 ` [Qemu-devel] [PATCH 5/5] Convert IDE to directly access guest memory Avi Kivity
2009-01-19 16:50 ` [Qemu-devel] [PATCH 0/5] Direct memory access for devices Blue Swirl
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=20090121185629.GA326@silverwood.ncultra.org \
--to=ncmike@ncultra.org \
--cc=qemu-devel@nongnu.org \
/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;
as well as URLs for NNTP newsgroup(s).