From: Avi Kivity <avi@redhat.com>
To: Jes Sorensen <jes@sgi.com>
Cc: "Zhang, Xiantao" <xiantao.zhang@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"kvm-ia64@vger.kernel.org" <kvm-ia64@vger.kernel.org>,
Hollis Blanchard <hollisb@us.ibm.com>
Subject: Re: [PATCH] qemu-kvm: Flush icache after dma operations for ia64
Date: Mon, 25 May 2009 14:25:09 +0300 [thread overview]
Message-ID: <4A1A8015.8080908@redhat.com> (raw)
In-Reply-To: <yq0y6slqwls.fsf@jaguar.mkp.net>
Jes Sorensen wrote:
>
> +/*
> + * Is this correct for PPC?
> + */
> +#define dma_flush_range(start, end) \
> + do { (void) (start); (void) (end); } while (0)
>
Correct or not, should be a function/
> +#define dma_flush_range(start, end) \
> + do { (void) (start); (void) (end); } while (0)
>
>
Another function.
> @@ -24,6 +24,7 @@
> #include "qemu-common.h"
> #include "host-utils.h"
> #include <assert.h>
> +#include "cache-utils.h"
>
> void pstrcpy(char *buf, int buf_size, const char *str)
> {
> @@ -176,6 +177,10 @@
> if (copy > qiov->iov[i].iov_len)
> copy = qiov->iov[i].iov_len;
> memcpy(qiov->iov[i].iov_base, p, copy);
> +
> + dma_flush_range((unsigned long)qiov->iov[i].iov_base,
> + (unsigned long)qiov->iov[i].iov_base + copy);
> +
>
Bogus.
> static AIOPool dma_aio_pool;
>
> @@ -149,6 +150,17 @@
> dbs->bh = NULL;
> qemu_iovec_init(&dbs->iov, sg->nsg);
> dma_bdrv_cb(dbs, 0);
> +
> + if (!is_write) {
> + int i;
> + QEMUIOVector *qiov;
> + qiov = &dbs->iov;
> + for (i = 0; i < qiov->niov; ++i) {
> + dma_flush_range((unsigned long)qiov->iov[i].iov_base,
> + (unsigned long)(qiov->iov[i].iov_base + qiov->iov[i].iov_len));
> + }
> + }
> +
>
cpu_physical_memory_unmap() will do this for you...
>
> #if !defined(TARGET_IA64)
> #include "tcg.h"
> @@ -3385,6 +3386,8 @@
> void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len,
> int is_write, target_phys_addr_t access_len)
> {
> + unsigned long flush_len = (unsigned long)access_len;
> +
> if (buffer != bounce.buffer) {
> if (is_write) {
> ram_addr_t addr1 = qemu_ram_addr_from_host(buffer);
> @@ -3402,7 +3405,9 @@
> }
> addr1 += l;
> access_len -= l;
> - }
> + }
> + dma_flush_range((unsigned long)buffer,
> + (unsigned long)buffer + flush_len);
> }
>
... here.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2009-05-25 11:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-11 10:20 [PATCH] qemu-kvm: Flush icache after dma operations for ia64 Zhang, Xiantao
2009-05-11 11:11 ` Avi Kivity
2009-05-25 10:55 ` Jes Sorensen
2009-05-25 10:56 ` Jes Sorensen
2009-05-25 11:25 ` Avi Kivity [this message]
2009-05-25 13:12 ` Jes Sorensen
2009-05-26 12:30 ` Avi Kivity
2009-06-01 5:40 ` Zhang, Xiantao
2009-06-01 7:45 ` Avi Kivity
2009-06-02 10:56 ` Jes Sorensen
2009-06-02 15:20 ` Zhang, Xiantao
2009-06-04 13:09 ` Jes Sorensen
2009-06-05 1:38 ` Zhang, Xiantao
2009-06-05 11:13 ` Jes Sorensen
2009-06-07 6:28 ` Avi Kivity
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=4A1A8015.8080908@redhat.com \
--to=avi@redhat.com \
--cc=hollisb@us.ibm.com \
--cc=jes@sgi.com \
--cc=kvm-ia64@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=xiantao.zhang@intel.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;
as well as URLs for NNTP newsgroup(s).