From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 0/5] Direct memory access for devices (v2)
Date: Thu, 22 Jan 2009 10:59:41 -0600 [thread overview]
Message-ID: <4978A5FD.2060803@codemonkey.ws> (raw)
In-Reply-To: <1232620587-11625-1-git-send-email-avi@redhat.com>
Avi Kivity wrote:
> One of the deficiencies of the current device layer is that it can only access
> guest RAM via cpu_physical_memory_rw(). This means that the device emulation
> code must copy the memory to or from a temporary buffer, even though the host
> offers APIs which allow direct access to memory. This reduces efficiency on
> DMA capable devices, especially disks.
>
> This patchset introduces a complement to the read/write API,
> cpu_physical_memory_map() which allows device emulation code to map
> guest memory directly. The API bounces memory regions which cannot be
> mapped (such as mmio regions) using an internal buffer.
>
> As an example, IDE emulation is converted to use the new API. This exposes
> another deficiency: lack of scatter/gather support in the block layer. To
> work around this, a vectored block API is introduced, currently emulated
> by bouncing. Additional work is needed to convert all block format drivers
> to use the vectored API.
>
Applied all. Thanks.
Regards,
Anthony Liguori
> Changes from v1:
> - documented memory mapping API
> - added access_len parameter to unmap operation, to indicate how much
> memory was actually accessed
> - move QEMUIOVector to cutils.c, and add flatten/unflatten operations
> - change block format driver API to accept a QEMUIOVector rather than a
> bare struct iovec
>
> Avi Kivity (5):
> Add target memory mapping API
> Add map client retry notification
> I/O vector helpers
> Vectored block device API
> Convert IDE to directly access guest memory
>
> block.c | 68 +++++++++++++++++++++++++++
> block.h | 8 +++
> cpu-all.h | 8 +++
> cutils.c | 47 +++++++++++++++++++
> exec.c | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> hw/ide.c | 133 +++++++++++++++++++++++++++++++++++++++++++++++------
> qemu-common.h | 12 +++++
> 7 files changed, 402 insertions(+), 16 deletions(-)
>
>
>
prev parent reply other threads:[~2009-01-22 17:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-22 10:36 [Qemu-devel] [PATCH 0/5] Direct memory access for devices (v2) Avi Kivity
2009-01-22 10:36 ` [Qemu-devel] [PATCH 1/5] Add target memory mapping API Avi Kivity
2009-01-22 12:24 ` Ian Jackson
2009-01-22 10:36 ` [Qemu-devel] [PATCH 2/5] Add map client retry notification Avi Kivity
2009-01-22 12:30 ` Ian Jackson
2009-01-22 18:51 ` Anthony Liguori
2009-01-22 10:36 ` [Qemu-devel] [PATCH 3/5] I/O vector helpers Avi Kivity
2009-01-22 10:36 ` [Qemu-devel] [PATCH 4/5] Vectored block device API Avi Kivity
2009-01-22 10:36 ` [Qemu-devel] [PATCH 5/5] Convert IDE to directly access guest memory Avi Kivity
2009-01-22 16:59 ` Anthony Liguori [this message]
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=4978A5FD.2060803@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--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 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.