From: Nicolin Chen <nicolinc@nvidia.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: mjrosato@linux.ibm.com, linux-doc@vger.kernel.org,
airlied@linux.ie, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, kwankhede@nvidia.com,
terrence.xu@intel.com, vneethv@linux.ibm.com,
agordeev@linux.ibm.com, hch@infradead.org, kvm@vger.kernel.org,
corbet@lwn.net, pasic@linux.ibm.com, jgg@nvidia.com,
borntraeger@linux.ibm.com, intel-gfx@lists.freedesktop.org,
jjherne@linux.ibm.com, farman@linux.ibm.com,
jchrist@linux.ibm.com, gor@linux.ibm.com,
linux-s390@vger.kernel.org, hca@linux.ibm.com,
freude@linux.ibm.com, rodrigo.vivi@intel.com,
intel-gvt-dev@lists.freedesktop.org, akrowiak@linux.ibm.com,
cohuck@redhat.com, oberpar@linux.ibm.com, svens@linux.ibm.com
Subject: Re: [Intel-gfx] [PATCH v3 00/10] Update vfio_pin/unpin_pages API
Date: Fri, 22 Jul 2022 17:38:25 -0700 [thread overview]
Message-ID: <YttDAfDEnrlhcZix@Asurada-Nvidia> (raw)
In-Reply-To: <20220722181800.56093444.alex.williamson@redhat.com>
On Fri, Jul 22, 2022 at 06:18:00PM -0600, Alex Williamson wrote:
> External email: Use caution opening links or attachments
>
>
> On Fri, 22 Jul 2022 16:12:19 -0700
> Nicolin Chen <nicolinc@nvidia.com> wrote:
>
> > On Fri, Jul 22, 2022 at 04:11:29PM -0600, Alex Williamson wrote:
> >
> > > GVT-g explodes for me with this series on my Broadwell test system,
> > > continuously spewing the following:
> >
> > Thank you for running additional tests.
> >
> > > [ 47.348778] WARNING: CPU: 3 PID: 501 at drivers/vfio/vfio_iommu_type1.c:978 vfio_iommu_type1_unpin_pages+0x7b/0x100 [vfio_iommu_type1]
> >
> > > Line 978 is the WARN_ON(i != npage) line. For the cases where we don't
> > > find a matching vfio_dma, I'm seeing addresses that look maybe like
> > > we're shifting a value that's already an iova by PAGE_SHIFT somewhere.
> >
> > Hmm..I don't understand the PAGE_SHIFT part. Do you mind clarifying?
>
> The iova was a very large address for a 4GB VM with a lot of zeros on
> the low order bits, ex. 0x162459000000. Thanks,
Ah! Thanks for the hint. The following commit did a double shifting:
"vfio: Pass in starting IOVA to vfio_pin/unpin_pages AP"
And the following change should fix:
-------------------
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index 481dd2aeb40e..4790c7f35b88 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -293,7 +293,7 @@ static int gvt_dma_map_page(struct intel_vgpu *vgpu, unsigned long gfn,
if (dma_mapping_error(dev, *dma_addr)) {
gvt_vgpu_err("DMA mapping failed for pfn 0x%lx, ret %d\n",
page_to_pfn(page), ret);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
return -ENOMEM;
}
@@ -306,7 +306,7 @@ static void gvt_dma_unmap_page(struct intel_vgpu *vgpu, unsigned long gfn,
struct device *dev = vgpu->gvt->gt->i915->drm.dev;
dma_unmap_page(dev, dma_addr, size, DMA_BIDIRECTIONAL);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
}
static struct gvt_dma *__gvt_cache_find_dma_addr(struct intel_vgpu *vgpu,
-------------------
So, I think that I should send a v4, given that the patches aren't
officially applied?
WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen <nicolinc@nvidia.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: <kwankhede@nvidia.com>, <corbet@lwn.net>, <hca@linux.ibm.com>,
<gor@linux.ibm.com>, <agordeev@linux.ibm.com>,
<borntraeger@linux.ibm.com>, <svens@linux.ibm.com>,
<zhenyuw@linux.intel.com>, <zhi.a.wang@intel.com>,
<jani.nikula@linux.intel.com>, <joonas.lahtinen@linux.intel.com>,
<rodrigo.vivi@intel.com>, <tvrtko.ursulin@linux.intel.com>,
<airlied@linux.ie>, <daniel@ffwll.ch>, <farman@linux.ibm.com>,
<mjrosato@linux.ibm.com>, <pasic@linux.ibm.com>,
<vneethv@linux.ibm.com>, <oberpar@linux.ibm.com>,
<freude@linux.ibm.com>, <akrowiak@linux.ibm.com>,
<jjherne@linux.ibm.com>, <cohuck@redhat.com>, <jgg@nvidia.com>,
<kevin.tian@intel.com>, <hch@infradead.org>,
<jchrist@linux.ibm.com>, <kvm@vger.kernel.org>,
<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-s390@vger.kernel.org>,
<intel-gvt-dev@lists.freedesktop.org>,
<intel-gfx@lists.freedesktop.org>,
<dri-devel@lists.freedesktop.org>, <terrence.xu@intel.com>
Subject: Re: [PATCH v3 00/10] Update vfio_pin/unpin_pages API
Date: Fri, 22 Jul 2022 17:38:25 -0700 [thread overview]
Message-ID: <YttDAfDEnrlhcZix@Asurada-Nvidia> (raw)
In-Reply-To: <20220722181800.56093444.alex.williamson@redhat.com>
On Fri, Jul 22, 2022 at 06:18:00PM -0600, Alex Williamson wrote:
> External email: Use caution opening links or attachments
>
>
> On Fri, 22 Jul 2022 16:12:19 -0700
> Nicolin Chen <nicolinc@nvidia.com> wrote:
>
> > On Fri, Jul 22, 2022 at 04:11:29PM -0600, Alex Williamson wrote:
> >
> > > GVT-g explodes for me with this series on my Broadwell test system,
> > > continuously spewing the following:
> >
> > Thank you for running additional tests.
> >
> > > [ 47.348778] WARNING: CPU: 3 PID: 501 at drivers/vfio/vfio_iommu_type1.c:978 vfio_iommu_type1_unpin_pages+0x7b/0x100 [vfio_iommu_type1]
> >
> > > Line 978 is the WARN_ON(i != npage) line. For the cases where we don't
> > > find a matching vfio_dma, I'm seeing addresses that look maybe like
> > > we're shifting a value that's already an iova by PAGE_SHIFT somewhere.
> >
> > Hmm..I don't understand the PAGE_SHIFT part. Do you mind clarifying?
>
> The iova was a very large address for a 4GB VM with a lot of zeros on
> the low order bits, ex. 0x162459000000. Thanks,
Ah! Thanks for the hint. The following commit did a double shifting:
"vfio: Pass in starting IOVA to vfio_pin/unpin_pages AP"
And the following change should fix:
-------------------
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index 481dd2aeb40e..4790c7f35b88 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -293,7 +293,7 @@ static int gvt_dma_map_page(struct intel_vgpu *vgpu, unsigned long gfn,
if (dma_mapping_error(dev, *dma_addr)) {
gvt_vgpu_err("DMA mapping failed for pfn 0x%lx, ret %d\n",
page_to_pfn(page), ret);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
return -ENOMEM;
}
@@ -306,7 +306,7 @@ static void gvt_dma_unmap_page(struct intel_vgpu *vgpu, unsigned long gfn,
struct device *dev = vgpu->gvt->gt->i915->drm.dev;
dma_unmap_page(dev, dma_addr, size, DMA_BIDIRECTIONAL);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
}
static struct gvt_dma *__gvt_cache_find_dma_addr(struct intel_vgpu *vgpu,
-------------------
So, I think that I should send a v4, given that the patches aren't
officially applied?
WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen <nicolinc@nvidia.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: mjrosato@linux.ibm.com, linux-doc@vger.kernel.org,
airlied@linux.ie, kevin.tian@intel.com,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
kwankhede@nvidia.com, vneethv@linux.ibm.com,
agordeev@linux.ibm.com, hch@infradead.org, kvm@vger.kernel.org,
corbet@lwn.net, pasic@linux.ibm.com, jgg@nvidia.com,
borntraeger@linux.ibm.com, intel-gfx@lists.freedesktop.org,
zhi.a.wang@intel.com, jjherne@linux.ibm.com,
farman@linux.ibm.com, jchrist@linux.ibm.com, gor@linux.ibm.com,
linux-s390@vger.kernel.org, hca@linux.ibm.com,
freude@linux.ibm.com, rodrigo.vivi@intel.com,
intel-gvt-dev@lists.freedesktop.org, akrowiak@linux.ibm.com,
tvrtko.ursulin@linux.intel.com, cohuck@redhat.com,
oberpar@linux.ibm.com, svens@linux.ibm.com
Subject: Re: [PATCH v3 00/10] Update vfio_pin/unpin_pages API
Date: Fri, 22 Jul 2022 17:38:25 -0700 [thread overview]
Message-ID: <YttDAfDEnrlhcZix@Asurada-Nvidia> (raw)
In-Reply-To: <20220722181800.56093444.alex.williamson@redhat.com>
On Fri, Jul 22, 2022 at 06:18:00PM -0600, Alex Williamson wrote:
> External email: Use caution opening links or attachments
>
>
> On Fri, 22 Jul 2022 16:12:19 -0700
> Nicolin Chen <nicolinc@nvidia.com> wrote:
>
> > On Fri, Jul 22, 2022 at 04:11:29PM -0600, Alex Williamson wrote:
> >
> > > GVT-g explodes for me with this series on my Broadwell test system,
> > > continuously spewing the following:
> >
> > Thank you for running additional tests.
> >
> > > [ 47.348778] WARNING: CPU: 3 PID: 501 at drivers/vfio/vfio_iommu_type1.c:978 vfio_iommu_type1_unpin_pages+0x7b/0x100 [vfio_iommu_type1]
> >
> > > Line 978 is the WARN_ON(i != npage) line. For the cases where we don't
> > > find a matching vfio_dma, I'm seeing addresses that look maybe like
> > > we're shifting a value that's already an iova by PAGE_SHIFT somewhere.
> >
> > Hmm..I don't understand the PAGE_SHIFT part. Do you mind clarifying?
>
> The iova was a very large address for a 4GB VM with a lot of zeros on
> the low order bits, ex. 0x162459000000. Thanks,
Ah! Thanks for the hint. The following commit did a double shifting:
"vfio: Pass in starting IOVA to vfio_pin/unpin_pages AP"
And the following change should fix:
-------------------
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index 481dd2aeb40e..4790c7f35b88 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -293,7 +293,7 @@ static int gvt_dma_map_page(struct intel_vgpu *vgpu, unsigned long gfn,
if (dma_mapping_error(dev, *dma_addr)) {
gvt_vgpu_err("DMA mapping failed for pfn 0x%lx, ret %d\n",
page_to_pfn(page), ret);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
return -ENOMEM;
}
@@ -306,7 +306,7 @@ static void gvt_dma_unmap_page(struct intel_vgpu *vgpu, unsigned long gfn,
struct device *dev = vgpu->gvt->gt->i915->drm.dev;
dma_unmap_page(dev, dma_addr, size, DMA_BIDIRECTIONAL);
- gvt_unpin_guest_page(vgpu, gfn << PAGE_SHIFT, size);
+ gvt_unpin_guest_page(vgpu, gfn, size);
}
static struct gvt_dma *__gvt_cache_find_dma_addr(struct intel_vgpu *vgpu,
-------------------
So, I think that I should send a v4, given that the patches aren't
officially applied?
next prev parent reply other threads:[~2022-08-04 13:41 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-08 22:44 [PATCH v3 00/10] Update vfio_pin/unpin_pages API Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 01/10] vfio: Make vfio_unpin_pages() return void Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-12 14:21 ` [Intel-gfx] " Anthony Krowiak
2022-07-12 14:21 ` Anthony Krowiak
2022-07-12 14:21 ` Anthony Krowiak
2022-07-12 18:18 ` Nicolin Chen
2022-07-12 18:18 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 02/10] drm/i915/gvt: Replace roundup with DIV_ROUND_UP Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 03/10] vfio/ap: Pass in physical address of ind to ap_aqic() Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 04/10] vfio/ccw: Only pass in contiguous pages Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 05/10] vfio: Pass in starting IOVA to vfio_pin/unpin_pages API Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-12 14:25 ` [Intel-gfx] " Anthony Krowiak
2022-07-12 14:25 ` Anthony Krowiak
2022-07-12 14:25 ` Anthony Krowiak
2022-07-08 22:44 ` [PATCH v3 06/10] vfio/ap: Change saved_pfn to saved_iova Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-12 14:28 ` [Intel-gfx] " Anthony Krowiak
2022-07-12 14:28 ` Anthony Krowiak
2022-07-12 14:28 ` Anthony Krowiak
2022-07-08 22:44 ` [PATCH v3 07/10] vfio/ccw: Change pa_pfn list to pa_iova list Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 08/10] vfio: Rename user_iova of vfio_dma_rw() Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-08 22:44 ` [PATCH v3 09/10] vfio/ccw: Add kmap_local_page() for memcpy Nicolin Chen
2022-07-08 22:44 ` Nicolin Chen
2022-07-22 22:11 ` [Intel-gfx] [PATCH v3 00/10] Update vfio_pin/unpin_pages API Alex Williamson
2022-07-22 22:11 ` Alex Williamson
2022-07-22 22:11 ` Alex Williamson
2022-07-22 23:12 ` [Intel-gfx] " Nicolin Chen
2022-07-22 23:12 ` Nicolin Chen
2022-07-22 23:12 ` Nicolin Chen
2022-07-23 0:18 ` [Intel-gfx] " Alex Williamson
2022-07-23 0:18 ` Alex Williamson
2022-07-23 0:18 ` Alex Williamson
2022-07-23 0:38 ` Nicolin Chen [this message]
2022-07-23 0:38 ` Nicolin Chen
2022-07-23 0:38 ` Nicolin Chen
2022-07-23 1:09 ` [Intel-gfx] " Alex Williamson
2022-07-23 1:09 ` Alex Williamson
2022-07-23 1:09 ` Alex Williamson
2022-07-23 2:10 ` [Intel-gfx] " Nicolin Chen
2022-07-23 2:10 ` Nicolin Chen
2022-07-23 2:10 ` Nicolin Chen
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=YttDAfDEnrlhcZix@Asurada-Nvidia \
--to=nicolinc@nvidia.com \
--cc=agordeev@linux.ibm.com \
--cc=airlied@linux.ie \
--cc=akrowiak@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=corbet@lwn.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=farman@linux.ibm.com \
--cc=freude@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=hch@infradead.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=jchrist@linux.ibm.com \
--cc=jgg@nvidia.com \
--cc=jjherne@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mjrosato@linux.ibm.com \
--cc=oberpar@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=rodrigo.vivi@intel.com \
--cc=svens@linux.ibm.com \
--cc=terrence.xu@intel.com \
--cc=vneethv@linux.ibm.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.