Message ID | 20211026182024.2642038-7-jean-philippe@linaro.org |
---|---|
State | New |
Headers | show |
Series | virtio-iommu: Add ACPI support (x86 part) | expand |
On Tue, Oct 26, 2021 at 07:20:25PM +0100, Jean-Philippe Brucker wrote: > Add a test case for VIOT on the q35 machine. To test complex topologies > it has two PCIe buses that bypass the IOMMU (and are therefore not > described by VIOT), and two buses that are translated by virtio-iommu. > > Reviewed-by: Eric Auger <eric.auger@redhat.com> > Reviewed-by: Igor Mammedov <imammedo@redhat.com> > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> seems to need the bypass property patch qemu-system-x86_64: Property 'pc-q35-6.2-machine.default-bus-bypass-iommu' not found given Paolo decided to pick that one up, pls ping me once that one is merged. > --- > tests/qtest/bios-tables-test.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > index 258874167e..a5e0fab9d5 100644 > --- a/tests/qtest/bios-tables-test.c > +++ b/tests/qtest/bios-tables-test.c > @@ -1465,6 +1465,26 @@ static void test_acpi_virt_tcg(void) > free_test_data(&data); > } > > +static void test_acpi_q35_viot(void) > +{ > + test_data data = { > + .machine = MACHINE_Q35, > + .variant = ".viot", > + }; > + > + /* > + * To keep things interesting, two buses bypass the IOMMU. > + * VIOT should only describes the other two buses. > + */ > + test_acpi_one("-machine default_bus_bypass_iommu=on " > + "-device virtio-iommu-pci " > + "-device pxb-pcie,bus_nr=0x10,id=pcie.100,bus=pcie.0 " > + "-device pxb-pcie,bus_nr=0x20,id=pcie.200,bus=pcie.0,bypass_iommu=on " > + "-device pxb-pcie,bus_nr=0x30,id=pcie.300,bus=pcie.0", > + &data); > + free_test_data(&data); > +} > + > static void test_oem_fields(test_data *data) > { > int i; > @@ -1639,6 +1659,7 @@ int main(int argc, char *argv[]) > qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); > qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); > } > + qtest_add_func("acpi/q35/viot", test_acpi_q35_viot); > } else if (strcmp(arch, "aarch64") == 0) { > if (has_tcg) { > qtest_add_func("acpi/virt", test_acpi_virt_tcg); > -- > 2.33.0
Hi Michael, On Mon, Nov 01, 2021 at 07:35:04PM -0400, Michael S. Tsirkin wrote: > On Tue, Oct 26, 2021 at 07:20:25PM +0100, Jean-Philippe Brucker wrote: > > Add a test case for VIOT on the q35 machine. To test complex topologies > > it has two PCIe buses that bypass the IOMMU (and are therefore not > > described by VIOT), and two buses that are translated by virtio-iommu. > > > > Reviewed-by: Eric Auger <eric.auger@redhat.com> > > Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> > > seems to need the bypass property patch > > qemu-system-x86_64: Property 'pc-q35-6.2-machine.default-bus-bypass-iommu' not found > > given Paolo decided to pick that one up, pls ping me > once that one is merged. That patch has now been merged Thanks, Jean
On Thu, Nov 04, 2021 at 07:49:37AM +0000, Jean-Philippe Brucker wrote: > Hi Michael, > > On Mon, Nov 01, 2021 at 07:35:04PM -0400, Michael S. Tsirkin wrote: > > On Tue, Oct 26, 2021 at 07:20:25PM +0100, Jean-Philippe Brucker wrote: > > > Add a test case for VIOT on the q35 machine. To test complex topologies > > > it has two PCIe buses that bypass the IOMMU (and are therefore not > > > described by VIOT), and two buses that are translated by virtio-iommu. > > > > > > Reviewed-by: Eric Auger <eric.auger@redhat.com> > > > Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> > > > > seems to need the bypass property patch > > > > qemu-system-x86_64: Property 'pc-q35-6.2-machine.default-bus-bypass-iommu' not found > > > > given Paolo decided to pick that one up, pls ping me > > once that one is merged. > > That patch has now been merged > > Thanks, > Jean Right but OTOH we are in freeze now. Will try to keep it queued, but it'd be nice if you can repost it after the release. -- MST
On Thu, Nov 04, 2021 at 03:56:38AM -0400, Michael S. Tsirkin wrote: > On Thu, Nov 04, 2021 at 07:49:37AM +0000, Jean-Philippe Brucker wrote: > > Hi Michael, > > > > On Mon, Nov 01, 2021 at 07:35:04PM -0400, Michael S. Tsirkin wrote: > > > On Tue, Oct 26, 2021 at 07:20:25PM +0100, Jean-Philippe Brucker wrote: > > > > Add a test case for VIOT on the q35 machine. To test complex topologies > > > > it has two PCIe buses that bypass the IOMMU (and are therefore not > > > > described by VIOT), and two buses that are translated by virtio-iommu. > > > > > > > > Reviewed-by: Eric Auger <eric.auger@redhat.com> > > > > Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> > > > > > > seems to need the bypass property patch > > > > > > qemu-system-x86_64: Property 'pc-q35-6.2-machine.default-bus-bypass-iommu' not found > > > > > > given Paolo decided to pick that one up, pls ping me > > > once that one is merged. > > > > That patch has now been merged > > > > Thanks, > > Jean > > Right but OTOH we are in freeze now. Will try to keep it queued, > but it'd be nice if you can repost it after the release. Sure no problem, I'll resend Thanks, Jean
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 258874167e..a5e0fab9d5 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1465,6 +1465,26 @@ static void test_acpi_virt_tcg(void) free_test_data(&data); } +static void test_acpi_q35_viot(void) +{ + test_data data = { + .machine = MACHINE_Q35, + .variant = ".viot", + }; + + /* + * To keep things interesting, two buses bypass the IOMMU. + * VIOT should only describes the other two buses. + */ + test_acpi_one("-machine default_bus_bypass_iommu=on " + "-device virtio-iommu-pci " + "-device pxb-pcie,bus_nr=0x10,id=pcie.100,bus=pcie.0 " + "-device pxb-pcie,bus_nr=0x20,id=pcie.200,bus=pcie.0,bypass_iommu=on " + "-device pxb-pcie,bus_nr=0x30,id=pcie.300,bus=pcie.0", + &data); + free_test_data(&data); +} + static void test_oem_fields(test_data *data) { int i; @@ -1639,6 +1659,7 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); } + qtest_add_func("acpi/q35/viot", test_acpi_q35_viot); } else if (strcmp(arch, "aarch64") == 0) { if (has_tcg) { qtest_add_func("acpi/virt", test_acpi_virt_tcg);