[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v4 12/29] intel-iommu: Extend address width to 48
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PULL v4 12/29] intel-iommu: Extend address width to 48 bits |
Date: |
Fri, 19 Jan 2018 05:39:25 +0200 |
On Fri, Jan 19, 2018 at 11:34:57AM +0800, Jason Wang wrote:
>
>
> On 2018年01月19日 04:45, Michael S. Tsirkin wrote:
> > From: Prasad Singamsetty<address@hidden>
> >
> > The current implementation of Intel IOMMU code only supports 39 bits
> > iova address width. This patch provides a new parameter (x-aw-bits)
> > for intel-iommu to extend its address width to 48 bits but keeping the
> > default the same (39 bits). The reason for not changing the default
> > is to avoid potential compatibility problems with live migration of
> > intel-iommu enabled QEMU guest. The only valid values for 'x-aw-bits'
> > parameter are 39 and 48.
> >
> > After enabling larger address width (48), we should be able to map
> > larger iova addresses in the guest. For example, a QEMU guest that
> > is configured with large memory ( >=1TB ). To check whether 48 bits
> > aw is enabled, we can grep in the guest dmesg output with line:
> > "DMAR: Host address width 48".
> >
> > Signed-off-by: Prasad Singamsetty<address@hidden>
> > Reviewed-by: Peter Xu<address@hidden>
> > Reviewed-by: Michael S. Tsirkin<address@hidden>
> > Signed-off-by: Michael S. Tsirkin<address@hidden>
> > ---
> > hw/i386/intel_iommu_internal.h | 9 ++--
> > include/hw/i386/intel_iommu.h | 1 +
> > hw/i386/acpi-build.c | 3 +-
> > hw/i386/intel_iommu.c | 101
> > ++++++++++++++++++++++++-----------------
> > 4 files changed, 65 insertions(+), 49 deletions(-)
> >
>
> [...]
>
> > /* DMA Remapping Fault Conditions */
> > typedef enum VTDFaultReason {
> > @@ -360,8 +358,7 @@ typedef union VTDInvDesc VTDInvDesc;
> > #define VTD_INV_DESC_IOTLB_DOMAIN (2ULL << 4)
> > #define VTD_INV_DESC_IOTLB_PAGE (3ULL << 4)
> > #define VTD_INV_DESC_IOTLB_DID(val) (((val) >> 16) &
> > VTD_DOMAIN_ID_MASK)
> > -#define VTD_INV_DESC_IOTLB_ADDR(val) ((val) & ~0xfffULL & \
> > - ((1ULL << VTD_MGAW) - 1))
> > +#define VTD_INV_DESC_IOTLB_ADDR(val) ((val) & ~0xfffULL)
> > #define VTD_INV_DESC_IOTLB_AM(val) ((val) & 0x3fULL)
> > #define VTD_INV_DESC_IOTLB_RSVD_LO 0xffffffff0000ff00ULL
> > #define VTD_INV_DESC_IOTLB_RSVD_HI 0xf80ULL
> > diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h
> > index 372b06d..45ec891 100644
> > --- a/include/hw/i386/intel_iommu.h
> > +++ b/include/hw/i386/intel_iommu.h
> > @@ -304,6 +304,7 @@ struct IntelIOMMUState {
> > bool intr_eime; /* Extended interrupt mode enabled */
> > OnOffAuto intr_eim; /* Toggle for EIM cabability */
> > bool buggy_eim; /* Force buggy EIM unless eim=off */
> > + uint8_t aw_bits; /* Host/IOVA address width (in bits) */
> > };
>
> Consider it's guest visible, do we need to migrate this ?
>
> Thanks
I think it's a read-only constant so I guess no.
--
MST
- [Qemu-devel] [PULL v4 07/29] virtio: postpone the execution of event_notifier_cleanup function, (continued)
- [Qemu-devel] [PULL v4 07/29] virtio: postpone the execution of event_notifier_cleanup function, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 05/29] contrib/vhost-user-blk: introduce a vhost-user-blk sample application, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 09/29] pci/shpc: Move function to generic header file, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 10/29] vhost-user: fix multiple queue specification, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 11/29] intel-iommu: Redefine macros to enable supporting 48 bit address width, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 13/29] hw/pci-bridge: fix QEMU crash because of pcie-root-port, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 14/29] ACPI/unit-test: Add a testcase for RAM allocation in numa node, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 12/29] intel-iommu: Extend address width to 48 bits, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 15/29] hw/acpi-build: Make next_base easy to follow, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 16/29] vhost-user-test: fix features mask, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 17/29] vhost-user-test: extract read-guest-mem test from main loop, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 18/29] vhost-user-test: setup virtqueues in all tests, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 19/29] vhost-user-test: make features mask an init_virtio_dev() argument, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 20/29] vhost-user-test: use init_virtio_dev in multiqueue test, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 21/29] x86_iommu: Move machine check to x86_iommu_realize(), Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 24/29] tests: acpi: init table descriptor in test_dst_table(), Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 25/29] tests: acpi: rename test_acpi_tables()/test_dst_table() to reflect its usage, Michael S. Tsirkin, 2018/01/18
- [Qemu-devel] [PULL v4 26/29] tests: acpi: add comments to fetch_rsdt_referenced_tables/data->tables usage, Michael S. Tsirkin, 2018/01/18