All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: Eric Auger <eric.auger@redhat.com>
Cc: peter.maydell@linaro.org, ehabkost@redhat.com, mst@redhat.com,
	richard.henderson@linaro.org, qemu-devel@nongnu.org,
	shannon.zhaosl@gmail.com, qemu-arm@nongnu.org,
	marcel.apfelbaum@gmail.com, pbonzini@redhat.com,
	imammedo@redhat.com
Subject: Re: [PATCH v2 2/8] hw/acpi: Add VIOT table
Date: Wed, 8 Sep 2021 10:52:08 +0100	[thread overview]
Message-ID: <YTiHyBQFzv4ZXAOZ@larix> (raw)
In-Reply-To: <e3280e20-ca86-23a6-7ae4-6817b9a424e9@redhat.com>

On Mon, Sep 06, 2021 at 02:58:55PM +0200, Eric Auger wrote:
> Hi Jean,
> 
> On 9/3/21 4:32 PM, Jean-Philippe Brucker wrote:
> > Add a function that generates a Virtual I/O Translation table (VIOT),
> > describing the topology of paravirtual IOMMUs. The table is created when
> > instantiating a virtio-iommu device. It contains a virtio-iommu node and
> > PCI Range nodes for endpoints managed by the IOMMU. By default, a single
> > node describes all PCI devices. When passing the "default_bus_bypass_iommu"
> > machine option and "bypass_iommu" PXB option, only buses that do not
> > bypass the IOMMU are described by PCI Range nodes.
> 
> You may consider to add a test for the new VIOT table (However this may
> be added afterwards). See tests/qtest/bios-tables-test.c for the process
> and examples.

Sure, it adds 5 patches to the series

> > +/*
> > + * Generate a VIOT table with one PCI-based virtio-iommu that manages PCI
> > + * endpoints.
> Add a link to the doc + Table refs?
> 
> https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf

No, this document is only temporary until the next ACPI release. Although
the titles and text should be the same, I don't know the refs in the final
document but they will be different

> 
> > + */
> > +void build_viot(GArray *table_data, BIOSLinker *linker,
> > +                uint16_t virtio_iommu_bdf, const char *oem_id,
> > +                const char *oem_table_id)
> > +{
> > +    /* virtio-iommu node follows the header */
> > +    int viommu_off = sizeof(AcpiViot);
> > +    int viot_start = table_data->len;
> > +    struct viot_pci_ranges pci_ranges = {
> > +        .output_node = viommu_off,
> > +        .blob = g_array_new(false, true, 1),
> > +    };
> > +
> > +    /* Build the list of PCI ranges that this viommu manages */
> > +    object_child_foreach_recursive(object_get_root(), viot_host_bridges,
> > +                                   &pci_ranges);
> > +
> > +    /* VIOT header */
> > +    acpi_data_push(table_data, sizeof(AcpiTableHeader));
> Depending on the order of landing, this may be replaced by Igor's
> 
> acpi_init_table() and associated with acpi_table_composed().

Ok I'll prepare that as a fixup, and send it or squash it after the ACPI
series lands

> <<<<<<< HEAD
> acpi_ss.add(when: 'CONFIG_ACPI_PIIX4', if_true: files('piix4.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_true: files('pcihp.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false:
> files('acpi-pci-hotplug-stub.c'))
> =======
> acpi_ss.add(when: 'CONFIG_ACPI_X86', if_true: files('piix4.c', 'pcihp.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c'))
> >>>>>>> hw/acpi: Add VIOT table

Indeed, fixed

Thanks,
Jean

WARNING: multiple messages have this Message-ID (diff)
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: Eric Auger <eric.auger@redhat.com>
Cc: peter.maydell@linaro.org, ehabkost@redhat.com, mst@redhat.com,
	richard.henderson@linaro.org, qemu-devel@nongnu.org,
	shannon.zhaosl@gmail.com, qemu-arm@nongnu.org,
	pbonzini@redhat.com, imammedo@redhat.com
Subject: Re: [PATCH v2 2/8] hw/acpi: Add VIOT table
Date: Wed, 8 Sep 2021 10:52:08 +0100	[thread overview]
Message-ID: <YTiHyBQFzv4ZXAOZ@larix> (raw)
In-Reply-To: <e3280e20-ca86-23a6-7ae4-6817b9a424e9@redhat.com>

On Mon, Sep 06, 2021 at 02:58:55PM +0200, Eric Auger wrote:
> Hi Jean,
> 
> On 9/3/21 4:32 PM, Jean-Philippe Brucker wrote:
> > Add a function that generates a Virtual I/O Translation table (VIOT),
> > describing the topology of paravirtual IOMMUs. The table is created when
> > instantiating a virtio-iommu device. It contains a virtio-iommu node and
> > PCI Range nodes for endpoints managed by the IOMMU. By default, a single
> > node describes all PCI devices. When passing the "default_bus_bypass_iommu"
> > machine option and "bypass_iommu" PXB option, only buses that do not
> > bypass the IOMMU are described by PCI Range nodes.
> 
> You may consider to add a test for the new VIOT table (However this may
> be added afterwards). See tests/qtest/bios-tables-test.c for the process
> and examples.

Sure, it adds 5 patches to the series

> > +/*
> > + * Generate a VIOT table with one PCI-based virtio-iommu that manages PCI
> > + * endpoints.
> Add a link to the doc + Table refs?
> 
> https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf

No, this document is only temporary until the next ACPI release. Although
the titles and text should be the same, I don't know the refs in the final
document but they will be different

> 
> > + */
> > +void build_viot(GArray *table_data, BIOSLinker *linker,
> > +                uint16_t virtio_iommu_bdf, const char *oem_id,
> > +                const char *oem_table_id)
> > +{
> > +    /* virtio-iommu node follows the header */
> > +    int viommu_off = sizeof(AcpiViot);
> > +    int viot_start = table_data->len;
> > +    struct viot_pci_ranges pci_ranges = {
> > +        .output_node = viommu_off,
> > +        .blob = g_array_new(false, true, 1),
> > +    };
> > +
> > +    /* Build the list of PCI ranges that this viommu manages */
> > +    object_child_foreach_recursive(object_get_root(), viot_host_bridges,
> > +                                   &pci_ranges);
> > +
> > +    /* VIOT header */
> > +    acpi_data_push(table_data, sizeof(AcpiTableHeader));
> Depending on the order of landing, this may be replaced by Igor's
> 
> acpi_init_table() and associated with acpi_table_composed().

Ok I'll prepare that as a fixup, and send it or squash it after the ACPI
series lands

> <<<<<<< HEAD
> acpi_ss.add(when: 'CONFIG_ACPI_PIIX4', if_true: files('piix4.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_true: files('pcihp.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false:
> files('acpi-pci-hotplug-stub.c'))
> =======
> acpi_ss.add(when: 'CONFIG_ACPI_X86', if_true: files('piix4.c', 'pcihp.c'))
> acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c'))
> >>>>>>> hw/acpi: Add VIOT table

Indeed, fixed

Thanks,
Jean


  reply	other threads:[~2021-09-08  9:50 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-03 14:32 [PATCH v2 0/8] virtio-iommu: Add ACPI support Jean-Philippe Brucker
2021-09-03 14:32 ` [PATCH v2 1/8] acpi: Add VIOT structure definitions Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 12:44   ` Eric Auger
2021-09-06 12:44     ` Eric Auger
2021-09-03 14:32 ` [PATCH v2 2/8] hw/acpi: Add VIOT table Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 12:58   ` Eric Auger
2021-09-08  9:52     ` Jean-Philippe Brucker [this message]
2021-09-08  9:52       ` Jean-Philippe Brucker
2021-09-03 14:32 ` [PATCH v2 3/8] hw/arm/virt-acpi-build: Add VIOT table for virtio-iommu Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 14:28   ` Eric Auger
2021-09-03 14:32 ` [PATCH v2 4/8] hw/arm/virt: Remove device tree restriction " Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 14:38   ` Eric Auger
2021-09-06 14:38     ` Eric Auger
2021-09-03 14:32 ` [PATCH v2 5/8] hw/arm/virt: Reject instantiation of multiple IOMMUs Jean-Philippe Brucker
2021-09-06 14:28   ` Eric Auger
2021-09-06 14:28     ` Eric Auger
2021-09-03 14:32 ` [PATCH v2 6/8] pc: Add VIOT table for virtio-iommu Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 15:02   ` Eric Auger
2021-09-06 15:02     ` Eric Auger
2021-09-08  9:52     ` Jean-Philippe Brucker
2021-09-03 14:32 ` [PATCH v2 7/8] pc: Allow instantiating a virtio-iommu device Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 14:57   ` Eric Auger
2021-09-06 14:57     ` Eric Auger
2021-09-08  9:54     ` Jean-Philippe Brucker
2021-09-08  9:58       ` Eric Auger
2021-09-03 14:32 ` [PATCH v2 8/8] docs: Add '-device virtio-iommu' entry Jean-Philippe Brucker
2021-09-03 14:32   ` Jean-Philippe Brucker
2021-09-06 14:41   ` Eric Auger
2021-09-06 14:41     ` Eric Auger
2021-09-06 14:45   ` Daniel P. Berrangé
2021-09-08 10:14     ` Jean-Philippe Brucker
2021-09-06 15:00   ` Eric Auger

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=YTiHyBQFzv4ZXAOZ@larix \
    --to=jean-philippe@linaro.org \
    --cc=ehabkost@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shannon.zhaosl@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.