[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range wi
|
From: |
Alex Williamson |
|
Subject: |
Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width |
|
Date: |
Tue, 23 Jan 2024 16:51:41 -0700 |
On Tue, 23 Jan 2024 19:15:55 +0100
Eric Auger <eric.auger@redhat.com> wrote:
> aw-bits is a new option that allows to set the bit width of
> the input address range. This value will be used as a default for
> the device config input_range.end. By default it is set to 64 bits
> which is the current value.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> ---
> include/hw/virtio/virtio-iommu.h | 1 +
> hw/virtio/virtio-iommu.c | 4 +++-
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/include/hw/virtio/virtio-iommu.h
> b/include/hw/virtio/virtio-iommu.h
> index 781ebaea8f..5fbe4677c2 100644
> --- a/include/hw/virtio/virtio-iommu.h
> +++ b/include/hw/virtio/virtio-iommu.h
> @@ -66,6 +66,7 @@ struct VirtIOIOMMU {
> bool boot_bypass;
> Notifier machine_done;
> bool granule_frozen;
> + uint8_t aw_bits;
> };
>
> #endif
> diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
> index ec2ba11d1d..e7f299e0c6 100644
> --- a/hw/virtio/virtio-iommu.c
> +++ b/hw/virtio/virtio-iommu.c
> @@ -1314,7 +1314,8 @@ static void virtio_iommu_device_realize(DeviceState
> *dev, Error **errp)
> */
> s->config.bypass = s->boot_bypass;
> s->config.page_size_mask = qemu_real_host_page_mask();
> - s->config.input_range.end = UINT64_MAX;
> + s->config.input_range.end =
> + s->aw_bits == 64 ? UINT64_MAX : BIT_ULL(s->aw_bits) - 1;
What happens when someone sets aw_bits = 1? There are a whole bunch of
impractical values here ripe for annoying bug reports. vtd_realize()
returns an Error for any values other than 39 or 48. We might pick an
arbitrary lower bound (39?) or some other more creative solution here
to avoid those silly issues in our future. Thanks,
Alex
> s->config.domain_range.end = UINT32_MAX;
> s->config.probe_size = VIOMMU_PROBE_SIZE;
>
> @@ -1525,6 +1526,7 @@ static Property virtio_iommu_properties[] = {
> DEFINE_PROP_LINK("primary-bus", VirtIOIOMMU, primary_bus,
> TYPE_PCI_BUS, PCIBus *),
> DEFINE_PROP_BOOL("boot-bypass", VirtIOIOMMU, boot_bypass, true),
> + DEFINE_PROP_UINT8("aw-bits", VirtIOIOMMU, aw_bits, 64),
> DEFINE_PROP_END_OF_LIST(),
> };
>
- [PATCH 0/3] VIRTIO-IOMMU: Introduce an aw-bits option, Eric Auger, 2024/01/23
- [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Eric Auger, 2024/01/23
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width,
Alex Williamson <=
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Eric Auger, 2024/01/24
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Alex Williamson, 2024/01/24
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Eric Auger, 2024/01/24
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Alex Williamson, 2024/01/24
- Re: [PATCH 1/3] virtio-iommu: Add an option to define the input range width, Eric Auger, 2024/01/24
[PATCH 3/3] hw/pc: Set the default virtio-iommu aw-bits to 39 on pc_q35_9.0 onwards, Eric Auger, 2024/01/23
[PATCH 2/3] virtio-iommu: Trace domain range limits as unsigned int, Eric Auger, 2024/01/23
Re: [PATCH 0/3] VIRTIO-IOMMU: Introduce an aw-bits option, Jean-Philippe Brucker, 2024/01/29