[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to all
From: |
Yu Zhang |
Subject: |
Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width. |
Date: |
Mon, 12 Nov 2018 17:42:01 +0800 |
User-agent: |
NeoMutt/20180622-66-b94505 |
On Mon, Nov 12, 2018 at 04:36:34PM +0800, Peter Xu wrote:
> On Fri, Nov 09, 2018 at 07:49:46PM +0800, Yu Zhang wrote:
> > A 5-level paging capable VM may choose to use 57-bit IOVA address width.
> > E.g. guest applications like DPDK prefer to use its VA as IOVA when
> > performing VFIO map/unmap operations, to avoid the burden of managing the
> > IOVA space.
>
> Since you mentioned about DPDK... I'm just curious that whether have
> you tested the patchset with the 57bit-enabled machines with DPDK VA
> mode running in the guest? That would be something nice to mention in
> the cover letter if you have.
>
Hah. Maybe I shall not mention DPDK here.
The story is that we heard the requirement, saying applications like DPDK
would need 5-level paging in IOMMU side. And I was convinced after checked
DPDK code, seeing it may use VA as IOVA directly. But I did not test this
patch with DPDK.
Instead, I used kvm-unit-test to verify this patch series. And of course, I
also did some modification to the test case. Patch for the test also sent out
at https://www.spinics.net/lists/kvm/msg177425.html.
> [...]
>
> > @@ -3264,11 +3286,19 @@ static bool vtd_decide_config(IntelIOMMUState *s,
> > Error **errp)
> > }
> > }
> >
> > - /* Currently only address widths supported are 39 and 48 bits */
> > + /* Currently address widths supported are 39, 48, and 57 bits */
> > if ((s->aw_bits != VTD_AW_39BIT) &&
> > - (s->aw_bits != VTD_AW_48BIT)) {
> > - error_setg(errp, "Supported values for x-aw-bits are: %d, %d",
> > - VTD_AW_39BIT, VTD_AW_48BIT);
> > + (s->aw_bits != VTD_AW_48BIT) &&
> > + (s->aw_bits != VTD_AW_57BIT)) {
> > + error_setg(errp, "Supported values for x-aw-bits are: %d, %d, %d",
> > + VTD_AW_39BIT, VTD_AW_48BIT, VTD_AW_57BIT);
> > + return false;
> > + }
> > +
> > + if ((s->aw_bits == VTD_AW_57BIT) &&
> > + !(host_has_la57() && guest_has_la57())) {
> > + error_setg(errp, "Do not support 57-bit DMA address, unless both "
> > + "host and guest are capable of 5-level
> > paging.\n");
>
> Is there any context (or pointer to previous discussions would work
> too) on explaining why we don't support some scenarios like
> host_paw=48,guest_paw=48,guest_gaw=57?
>
Well, above check is only to make sure both the host and the guest can
use 57bit linear address, which requires 5-level paging. So I believe
we do support scenarios like host_paw=48,guest_paw=48,guest_gaw=57.
The guest_has_la57() means the guest can use 57-bit linear address,
regardless of its physical address width.
> Thanks,
>
> --
> Peter Xu
>
B.R.
Yu
- [Qemu-devel] [PATCH v1 0/3] intel-iommu: add support for 5-level virtual IOMMU., Yu Zhang, 2018/11/09
- [Qemu-devel] [PATCH v1 1/3] intel-iommu: differentiate host address width from IOVA address width., Yu Zhang, 2018/11/09
- [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Yu Zhang, 2018/11/09
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Peter Xu, 2018/11/12
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width.,
Yu Zhang <=
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Peter Xu, 2018/11/12
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Peter Xu, 2018/11/13
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Yu Zhang, 2018/11/13
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Peter Xu, 2018/11/13
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Yu Zhang, 2018/11/13
- Re: [Qemu-devel] [PATCH v1 2/3] intel-iommu: extend VTD emulation to allow 57-bit IOVA address width., Yu Zhang, 2018/11/13
[Qemu-devel] [PATCH v1 3/3] intel-iommu: search iotlb for levels supported by the address width., Yu Zhang, 2018/11/09