[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 05/11] vfio: Query and store the maximum number of possibl
From: |
Alex Williamson |
Subject: |
Re: [PATCH v4 05/11] vfio: Query and store the maximum number of possible DMA mappings |
Date: |
Wed, 13 Jan 2021 16:30:20 -0700 |
On Thu, 7 Jan 2021 14:34:17 +0100
David Hildenbrand <david@redhat.com> wrote:
> Let's query the maximum number of possible DMA mappings by querying the
> available mappings when creating the container (before any mappings are
> created). We'll use this informaton soon to perform some sanity checks
> and warn the user.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Cc: Igor Mammedov <imammedo@redhat.com>
> Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> Cc: Peter Xu <peterx@redhat.com>
> Cc: Auger Eric <eric.auger@redhat.com>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Cc: teawater <teawaterz@linux.alibaba.com>
> Cc: Marek Kedzierski <mkedzier@redhat.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
> hw/vfio/common.c | 4 ++++
> include/hw/vfio/vfio-common.h | 1 +
> 2 files changed, 5 insertions(+)
>
> diff --git a/hw/vfio/common.c b/hw/vfio/common.c
> index 2bd219cf1d..1babb6bb99 100644
> --- a/hw/vfio/common.c
> +++ b/hw/vfio/common.c
> @@ -1934,6 +1934,7 @@ static int vfio_connect_container(VFIOGroup *group,
> AddressSpace *as,
> container->fd = fd;
> container->error = NULL;
> container->dirty_pages_supported = false;
> + container->dma_max_mappings = 0;
> QLIST_INIT(&container->giommu_list);
> QLIST_INIT(&container->hostwin_list);
> QLIST_INIT(&container->vrdl_list);
> @@ -1965,7 +1966,10 @@ static int vfio_connect_container(VFIOGroup *group,
> AddressSpace *as,
> vfio_host_win_add(container, 0, (hwaddr)-1, info->iova_pgsizes);
> container->pgsizes = info->iova_pgsizes;
>
> + /* The default in the kernel ("dma_entry_limit") is 65535. */
> + container->dma_max_mappings = 65535;
> if (!ret) {
> + vfio_get_info_dma_avail(info, &container->dma_max_mappings);
> vfio_get_iommu_info_migration(container, info);
> }
> g_free(info);
> diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h
> index af6f8d1b22..4b28c6e8ac 100644
> --- a/include/hw/vfio/vfio-common.h
> +++ b/include/hw/vfio/vfio-common.h
> @@ -88,6 +88,7 @@ typedef struct VFIOContainer {
> uint64_t dirty_pgsizes;
> uint64_t max_dirty_bitmap_size;
> unsigned long pgsizes;
> + unsigned int dma_max_mappings;
> QLIST_HEAD(, VFIOGuestIOMMU) giommu_list;
> QLIST_HEAD(, VFIOHostDMAWindow) hostwin_list;
> QLIST_HEAD(, VFIOGroup) group_list;
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
- [PATCH v4 00/11] virtio-mem: vfio support, David Hildenbrand, 2021/01/07
- [PATCH v4 05/11] vfio: Query and store the maximum number of possible DMA mappings, David Hildenbrand, 2021/01/07
- Re: [PATCH v4 05/11] vfio: Query and store the maximum number of possible DMA mappings,
Alex Williamson <=
- [PATCH v4 06/11] vfio: Sanity check maximum number of DMA mappings with RamDiscardMgr, David Hildenbrand, 2021/01/07
- [PATCH v4 08/11] softmmu/physmem: Don't use atomic operations in ram_block_discard_(disable|require), David Hildenbrand, 2021/01/07
- [PATCH v4 07/11] vfio: Support for RamDiscardMgr in the vIOMMU case, David Hildenbrand, 2021/01/07
- [PATCH v4 09/11] softmmu/physmem: Extend ram_block_discard_(require|disable) by two discard types, David Hildenbrand, 2021/01/07
- [PATCH v4 10/11] virtio-mem: Require only coordinated discards, David Hildenbrand, 2021/01/07
- [PATCH v4 11/11] vfio: Disable only uncoordinated discards, David Hildenbrand, 2021/01/07