All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH 0/4] exec: address space translation cleanups
Date: Wed, 17 May 2017 13:57:56 +0800	[thread overview]
Message-ID: <20170517055756.GA31206@pxdev.xzpeter.org> (raw)
In-Reply-To: <20170517042342.GA9921@pxdev.xzpeter.org>

On Wed, May 17, 2017 at 12:23:42PM +0800, Peter Xu wrote:
> On Tue, May 16, 2017 at 06:51:03PM +0200, Maxime Coquelin wrote:
> > Hi Peter,
> > 
> > On 05/16/2017 03:24 PM, Maxime Coquelin wrote:
> > >
> > >
> > >On 05/15/2017 10:50 AM, Peter Xu wrote:
> > >>The problem is that, address_space_get_iotlb_entry() shares a lot with
> > >>address_space_translate(). This patch tries to abstract the
> > >>shared elements.
> > >>
> > >>Originally, this work is derived from discussion from VT-d passthrough
> > >>series discussions [1]. But for sure we can just see this series as a
> > >>standalone cleanup. So I posted it separately here.
> > >>
> > >>Smoke tests are done with general VM boots, IOs, especially with vhost
> > >>dmar configurations.
> > >>
> > >>I believe with current series I can throw away the old patch [1],
> > >>which may be good. But before that, please kindly review. Thanks.
> > >
> > >I faced the problem the old patch fixes when declaring and attaching an
> > >IOMMU device, but booting the kernel with intel_iommu=off.
> > >
> > >I tested again with patches 1 & 4 of your series, and I confirm it fixes
> > >the issue:
> > >Tested-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > 
> > I did some more testing with my "vhost-user IOMMU" setup, and the series
> > actually breaks with IOMMU device attached, and intel_iommu=on.
> > 
> > The main difference with the previous passing test is the guest RAM
> > size. In the working setup, it is 2G of 2M hugepages, vs. 4G of 2M
> > hugepages in the failing one. Note that I also reproduce with vhost-kernel
> > backend.
> > 
> > The error happens in the first vhost_device_iotlb_miss() call:
> > qemu-system-x86_64: Fail to lookup the translated address b5d7c000
> > 
> > I don't have the root cause yet, I'll keep you updated.
> 
> Maxime,
> 
> Thanks a lot for help testing this series!
> 
> I reproduced this problem, and this is not a problem obvious enough
> for me. Let me investigate as well.
> 
> -- 
> Peter Xu

Maxime,

Could you help try adding this change upon current to see whether
problem solved?

diff --git a/exec.c b/exec.c
index 697d902..68576a2 100644
--- a/exec.c
+++ b/exec.c
@@ -521,6 +521,10 @@ IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,
         goto iotlb_fail;
     }
 
+    /* Convert memory region offset into address space offset */
+    xlat += section.offset_within_address_space -
+        section.offset_within_region;
+
     if (plen == (hwaddr)-1) {
         /*
          * We use default page size here. Logically it only happens

Thanks in advance,

-- 
Peter Xu

  reply	other threads:[~2017-05-17  5:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-15  8:50 [Qemu-devel] [PATCH 0/4] exec: address space translation cleanups Peter Xu
2017-05-15  8:50 ` [Qemu-devel] [PATCH 1/4] exec: simplify phys_page_find() params Peter Xu
2017-05-16  2:53   ` David Gibson
2017-05-16 10:02     ` Paolo Bonzini
2017-05-15  8:50 ` [Qemu-devel] [PATCH 2/4] exec: rename resolve_subpage Peter Xu
2017-05-15  9:03   ` Paolo Bonzini
2017-05-15 12:16     ` Peter Xu
2017-05-15  8:50 ` [Qemu-devel] [PATCH 3/4] exec: further use is_mmio Peter Xu
2017-05-15  9:04   ` Paolo Bonzini
2017-05-15  9:29     ` Peter Xu
2017-05-15  8:51 ` [Qemu-devel] [PATCH 4/4] exec: abstract address_space_do_translate() Peter Xu
2017-05-16 13:24 ` [Qemu-devel] [PATCH 0/4] exec: address space translation cleanups Maxime Coquelin
2017-05-16 16:51   ` Maxime Coquelin
2017-05-16 16:54     ` Paolo Bonzini
2017-05-16 17:01       ` Maxime Coquelin
2017-05-17  4:23     ` Peter Xu
2017-05-17  5:57       ` Peter Xu [this message]
2017-05-17  7:17         ` Maxime Coquelin
2017-05-17  7:26           ` Paolo Bonzini
2017-05-17  8:38             ` Peter Xu

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=20170517055756.GA31206@pxdev.xzpeter.org \
    --to=peterx@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=jasowang@redhat.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@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.