From: Eric Auger <eric.auger@redhat.com>
To: Jean-Philippe Brucker <jean-philippe@linaro.org>
Cc: eric.auger.pro@gmail.com, qemu-devel@nongnu.org,
qemu-arm@nongnu.org, alex.williamson@redhat.com,
peter.maydell@linaro.org, zhenzhong.duan@intel.com,
yanghliu@redhat.com, mst@redhat.com, clg@redhat.com,
jasowang@redhat.com
Subject: Re: [PATCH v2 1/3] virtio-iommu: Add an option to define the input range width
Date: Thu, 8 Feb 2024 09:16:35 +0100 [thread overview]
Message-ID: <1790d917-9360-4ce4-b1ad-aba9b72bc418@redhat.com> (raw)
In-Reply-To: <20240205101322.GA2086490@myrica>
Hi Jean,
On 2/5/24 11:13, Jean-Philippe Brucker wrote:
> Hi Eric,
>
> On Thu, Feb 01, 2024 at 05:32:22PM +0100, Eric Auger 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>
>>
>> ---
>>
>> v1 -> v2:
>> - Check the aw-bits value is within [32,64]
>> ---
>> include/hw/virtio/virtio-iommu.h | 1 +
>> hw/virtio/virtio-iommu.c | 7 ++++++-
>> 2 files changed, 7 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..7870bdbeee 100644
>> --- a/hw/virtio/virtio-iommu.c
>> +++ b/hw/virtio/virtio-iommu.c
>> @@ -1314,7 +1314,11 @@ 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;
>> + if (s->aw_bits < 32 || s->aw_bits > 64) {
> I'm wondering if we should lower this to 16 bits, just to support all
> possible host SMMU configurations (the smallest address space configurable
> with T0SZ is 25-bit, or 16-bit with the STT extension).
Is it a valid use case case to assign host devices protected by
virtio-iommu with a physical SMMU featuring Small Translation Table?
It leaves 64kB IOVA space only. Besides in the spec, it is wriiten the
min T0SZ can even be 12.
"The minimum valid value is 16 unless all of the following also hold, in
which case the minimum permitted
value is 12:
– SMMUv3.1 or later is supported.
– SMMU_IDR5.VAX indicates support for 52-bit Vas.
– The corresponding CD.TGx selects a 64KB granule.
"
At the moment I would prefer to stick to the limit suggested by Alex
which looks also sensible for other archs whereas 16 doesn't.
Thanks
Eric
>
> Thanks,
> Jean
>
>> + error_setg(errp, "aw-bits must be within [32,64]");
>> + }
>> + s->config.input_range.end =
>> + s->aw_bits == 64 ? UINT64_MAX : BIT_ULL(s->aw_bits) - 1;
>> s->config.domain_range.end = UINT32_MAX;
>> s->config.probe_size = VIOMMU_PROBE_SIZE;
>>
>> @@ -1525,6 +1529,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(),
>> };
>>
>> --
>> 2.41.0
>>
next prev parent reply other threads:[~2024-02-08 8:17 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-01 16:32 [PATCH v2 0/3] VIRTIO-IOMMU: Introduce an aw-bits option Eric Auger
2024-02-01 16:32 ` [PATCH v2 1/3] virtio-iommu: Add an option to define the input range width Eric Auger
2024-02-02 6:43 ` Duan, Zhenzhong
2024-02-05 9:14 ` Cédric Le Goater
2024-02-05 10:20 ` Cédric Le Goater
2024-02-05 10:13 ` Jean-Philippe Brucker
2024-02-05 16:23 ` Eric Auger
2024-02-08 8:16 ` Eric Auger [this message]
2024-02-08 10:57 ` Jean-Philippe Brucker
2024-02-01 16:32 ` [PATCH v2 2/3] virtio-iommu: Trace domain range limits as unsigned int Eric Auger
2024-02-02 6:45 ` Duan, Zhenzhong
2024-02-05 9:15 ` Cédric Le Goater
2024-02-01 16:32 ` [PATCH v2 3/3] hw: Set virtio-iommu aw-bits default value on pc_q35_9.0 and arm virt Eric Auger
2024-02-02 6:51 ` Duan, Zhenzhong
2024-02-02 8:49 ` Eric Auger
2024-02-04 7:34 ` Duan, Zhenzhong
2024-02-05 9:33 ` Cédric Le Goater
2024-02-05 16:24 ` Eric Auger
2024-02-04 8:26 ` [PATCH v2 0/3] VIRTIO-IOMMU: Introduce an aw-bits option YangHang Liu
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=1790d917-9360-4ce4-b1ad-aba9b72bc418@redhat.com \
--to=eric.auger@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=clg@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=jasowang@redhat.com \
--cc=jean-philippe@linaro.org \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=yanghliu@redhat.com \
--cc=zhenzhong.duan@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).