From: Thomas Huth <thuth@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Marcel Apfelbaum <mapfelba@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
qemu-devel@nongnu.org
Subject: Re: [PULL 00/29] pc,pci,virtio: features, fixes
Date: Wed, 20 Oct 2021 11:39:28 +0200 [thread overview]
Message-ID: <f2a6b49c-f1f7-f50c-0ff6-49e37427007c@redhat.com> (raw)
In-Reply-To: <20211020103929.5cc1fb32@redhat.com>
On 20/10/2021 10.39, Igor Mammedov wrote:
> On Tue, 19 Oct 2021 11:38:08 -0700
> Richard Henderson <richard.henderson@linaro.org> wrote:
>
>> On 10/19/21 4:19 AM, Michael S. Tsirkin wrote:
>>> The following changes since commit 9c050b661d3a43dfe2fd44106e559b39706d1296:
>>>
>>> Merge remote-tracking branch 'remotes/philmd/tags/mips-20211018' into staging (2021-10-18 09:16:51 -0700)
>>>
>>> are available in the Git repository at:
>>>
>>> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>>>
>>> for you to fetch changes up to bf2dd99b7d536cdba157fd6687810ce7b8340ccc:
>>>
>>> failover: fix a regression introduced by JSON'ification of -device (2021-10-19 07:15:34 -0400)
>>>
>>> ----------------------------------------------------------------
>>> pc,pci,virtio: features, fixes
>>>
>>> vhost user rng
>>> Fixes, cleanups all over the place.
>>>
>>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>>>
>>> ----------------------------------------------------------------
>>> Ani Sinha (3):
>>> tests/acpi/bios-tables-test: add and allow changes to a new q35 DSDT table blob
>>> tests/acpi/pcihp: add unit tests for hotplug on multifunction bridges for q35
>>> tests/acpi/bios-tables-test: update DSDT blob for multifunction bridge test
>>>
>>> David Hildenbrand (1):
>>> libvhost-user: fix VHOST_USER_REM_MEM_REG skipping mmap_addr
>>>
>>> Eric Auger (2):
>>> virtio-iommu: Remove the non transitional name
>>> virtio-iommu: Drop base_name and change generic_name
>>>
>>> Eugenio Pérez (3):
>>> vdpa: Skip protected ram IOMMU mappings
>>> vdpa: Add vhost_vdpa_section_end
>>> vdpa: Check for iova range at mappings changes
>>>
>>> Igor Mammedov (15):
>>> tests: acpi: dump table with failed checksum
>>> tests: qtest: add qtest_has_accel() to check if tested binary supports accelerator
>>> tests: acpi: whitelist expected tables for acpi/q35/xapic testcase
>>> tests: acpi: q35: test for x2APIC entries in SRAT
>>> tests: acpi: update expected tables blobs
>>> tests: acpi: whitelist new expected table tests/data/acpi/q35/DMAR.dmar
>>> tests: acpi: add testcase for intel_iommu (DMAR table)
>>> tests: acpi: add expected blob for DMAR table
>>> tests: acpi: whitelist expected blobs for new acpi/q35/ivrs testcase
>>> tests: acpi: add testcase for amd-iommu (IVRS table)
>>> tests: acpi: update expected blobs
>>> tests: acpi: arm/virt: drop redundant test_acpi_one() in test_acpi_virt_tcg()
>>> tests: arm-cpu-features: use qtest_has_kvm() API
>>> tests: migration-test: use qtest_has_accel() API
>>> tests: bios-tables-test: use qtest_has_accel() API to register TCG only tests
>>>
>>> Laurent Vivier (1):
>>> failover: fix a regression introduced by JSON'ification of -device
>>>
>>> Mathieu Poirier (3):
>>> vhost-user-rng: Add vhost-user-rng implementation
>>> vhost-user-rng-pci: Add vhost-user-rng-pci implementation
>>> docs: Add documentation for vhost based RNG implementation
>>>
>>> Xueming Li (1):
>>> vhost-user: fix duplicated notifier MR init
>>>
>>> include/hw/virtio/vhost-user-rng.h | 33 ++++
>>> include/hw/virtio/vhost-vdpa.h | 2 +
>>> include/hw/virtio/virtio-iommu.h | 2 +-
>>> tests/qtest/libqos/libqtest.h | 8 +
>>> hw/net/virtio-net.c | 24 ++-
>>> hw/virtio/vhost-user-rng-pci.c | 79 ++++++++
>>> hw/virtio/vhost-user-rng.c | 289 ++++++++++++++++++++++++++++++
>>> hw/virtio/vhost-user.c | 5 +-
>>> hw/virtio/vhost-vdpa.c | 81 ++++++---
>>> hw/virtio/virtio-iommu-pci.c | 4 +-
>>> subprojects/libvhost-user/libvhost-user.c | 1 +
>>> tests/qtest/acpi-utils.c | 14 ++
>>> tests/qtest/arm-cpu-features.c | 29 +--
>>> tests/qtest/bios-tables-test.c | 90 ++++++++--
>>> tests/qtest/libqtest.c | 27 +++
>>> tests/qtest/migration-test.c | 15 +-
>>> docs/system/device-emulation.rst | 1 +
>>> docs/system/devices/vhost-user-rng.rst | 39 ++++
>>> hw/virtio/Kconfig | 5 +
>>> hw/virtio/meson.build | 2 +
>>> hw/virtio/trace-events | 1 +
>>> meson.build | 6 +
>>> tests/data/acpi/q35/APIC.xapic | Bin 0 -> 2686 bytes
>>> tests/data/acpi/q35/DMAR.dmar | Bin 0 -> 120 bytes
>>> tests/data/acpi/q35/DSDT.ivrs | Bin 0 -> 8306 bytes
>>> tests/data/acpi/q35/DSDT.multi-bridge | Bin 0 -> 8583 bytes
>>> tests/data/acpi/q35/DSDT.xapic | Bin 0 -> 35652 bytes
>>> tests/data/acpi/q35/FACP.xapic | Bin 0 -> 244 bytes
>>> tests/data/acpi/q35/IVRS.ivrs | Bin 0 -> 104 bytes
>>> tests/data/acpi/q35/SRAT.xapic | Bin 0 -> 5080 bytes
>>> 30 files changed, 672 insertions(+), 85 deletions(-)
>>> create mode 100644 include/hw/virtio/vhost-user-rng.h
>>> create mode 100644 hw/virtio/vhost-user-rng-pci.c
>>> create mode 100644 hw/virtio/vhost-user-rng.c
>>> create mode 100644 docs/system/devices/vhost-user-rng.rst
>>> create mode 100644 tests/data/acpi/q35/APIC.xapic
>>> create mode 100644 tests/data/acpi/q35/DMAR.dmar
>>> create mode 100644 tests/data/acpi/q35/DSDT.ivrs
>>> create mode 100644 tests/data/acpi/q35/DSDT.multi-bridge
>>> create mode 100644 tests/data/acpi/q35/DSDT.xapic
>>> create mode 100644 tests/data/acpi/q35/FACP.xapic
>>> create mode 100644 tests/data/acpi/q35/IVRS.ivrs
>>> create mode 100644 tests/data/acpi/q35/SRAT.xapic
>>
>> 32-bit printf errors:
>>
>> ../hw/virtio/vhost-vdpa.c: In function 'vhost_vdpa_listener_skipped_section':
>> ../hw/virtio/vhost-vdpa.c:55:22: error: format '%lu' expects argument of type 'long
>> unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'}
>> [-Werror=format=]
>> error_report("RAM section out of device range (min=%lu, addr=%lu)",
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> iova_min, section->offset_within_address_space);
>> ~~~~~~~~
>> ../hw/virtio/vhost-vdpa.c:55:22: error: format '%lu' expects argument of type 'long
>> unsigned int', but argument 3 has type 'hwaddr' {aka 'long long unsigned int'}
>> [-Werror=format=]
>> ../hw/virtio/vhost-vdpa.c:62:22: error: format '%lu' expects argument of type 'long
>> unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'}
>> [-Werror=format=]
>> error_report("RAM section out of device range (max=%lu, end addr=%lu)",
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> iova_max, int128_get64(llend));
>> ~~~~~~~~
>> ../hw/virtio/vhost-vdpa.c:62:22: error: format '%lu' expects argument of type 'long
>> unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'}
>> [-Werror=format=]
>> cc1: all warnings being treated as errors
>>
>
>>
>> Also fails s390x host testing:
>>
>>
>> ERROR:../tests/qtest/boot-sector.c:170:boot_sector_test: assertion failed (signature ==
>> SIGNATURE): (0x00000000 == 0x0000dead)
>> ERROR qtest-i386/bios-tables-test - Bail out!
>> ERROR:../tests/qtest/boot-sector.c:170:boot_sector_test: assertion failed (signature ==
>> SIGNATURE): (0x00000000 == 0x0000dead)
>> Makefile.mtest:368: recipe for target 'run-test-44' failed
>
> it might happen if VM is too slow
> /* Wait at most 600 seconds ...
>
> Let me find s390 host and see if it's reproducable
Micheal already asked Cornelia and me off-list whether it's reproducible,
and it is. It's the new multif-bridge test that is hanging, but it seems
like this only uncovered a pre-existing problem: SeaBIOS does bail out as
soon as QEMU is started with "-device pcie-root-port" on a s390x host. I've
already enabled the serial debug in SeaBIOS and got this output:
$ build/qemu-system-x86_64 -nographic -machine q35 -vga none -device
pcie-root-port -bios ~/bios.bin
Changing serial settings was 0/0 now 3/0
SeaBIOS (version rel-1.14.0-0-g155821a)
BUILD: gcc: (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) binutils: version 2.30-93.el8
No Xen hypervisor found.
Running on QEMU (q35)
Found QEMU fw_cfg
QEMU fw_cfg DMA interface supported
qemu/e820: addr 0x0000000000000000 len 0x0000000008000000 [RAM]
Relocating init from 0x000d6400 to 0x07faa7a0 (size 88000)
Moving pm_base to 0x600
=== PCI bus & bridge init ===
PCI: pci_bios_init_bus_rec bus = 0x0
PCI: pci_bios_init_bus_rec bdf = 0x10
PCI: primary bus = 0x0
PCI: secondary bus = 0xff -> 0x1
PCI: pci_bios_init_bus_rec bus = 0x1
PCI: subordinate bus = 0x0 -> 0x1
=== PCI device probing ===
Found 6 PCI devices (max PCI bus is 01)
PCIe: using q35 mmconfig at 0xb0000000
=== PCI new allocation pass #1 ===
PCI: check devices
PCI: QEMU resource reserve cap: size 10000000000000 type io
PCI: secondary bus 1 size 10000000000000 type io
PCI: secondary bus 1 size 00200000 type mem
PCI: secondary bus 1 size 00200000 type prefmem
=== PCI new allocation pass #2 ===
PCI: out of I/O address space
I also noticed that the problem did not occur on older versions of QEMU, so
I just bisected and ended up with this commit here:
e2a6290aab578b2170c1f5909fa556385dc0d820 is the first bad commit
commit e2a6290aab578b2170c1f5909fa556385dc0d820
Author: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Date: Mon Aug 2 12:00:57 2021 +0300
hw/pcie-root-port: Fix hotplug for PCI devices requiring IO
Seems like something goes wrong with setting up the IO space on big endian
hosts?
Thomas
next prev parent reply other threads:[~2021-10-20 9:41 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20211019140622.738008-1-mst@redhat.com>
2021-10-19 11:19 ` [PULL 00/29] pc,pci,virtio: features, fixes Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 01/29] tests: acpi: dump table with failed checksum Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 02/29] tests: qtest: add qtest_has_accel() to check if tested binary supports accelerator Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 03/29] tests: acpi: whitelist expected tables for acpi/q35/xapic testcase Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 04/29] tests: acpi: q35: test for x2APIC entries in SRAT Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 05/29] tests: acpi: update expected tables blobs Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 06/29] tests: acpi: whitelist new expected table tests/data/acpi/q35/DMAR.dmar Michael S. Tsirkin
2021-10-19 11:19 ` [PULL 07/29] tests: acpi: add testcase for intel_iommu (DMAR table) Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 08/29] tests: acpi: add expected blob for DMAR table Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 09/29] tests: acpi: whitelist expected blobs for new acpi/q35/ivrs testcase Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 10/29] tests: acpi: add testcase for amd-iommu (IVRS table) Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 11/29] tests: acpi: update expected blobs Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 12/29] tests: acpi: arm/virt: drop redundant test_acpi_one() in test_acpi_virt_tcg() Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 13/29] tests: arm-cpu-features: use qtest_has_kvm() API Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 14/29] tests: migration-test: use qtest_has_accel() API Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 15/29] tests: bios-tables-test: use qtest_has_accel() API to register TCG only tests Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 16/29] vdpa: Skip protected ram IOMMU mappings Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 17/29] vdpa: Add vhost_vdpa_section_end Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 18/29] vdpa: Check for iova range at mappings changes Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 19/29] virtio-iommu: Remove the non transitional name Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 20/29] virtio-iommu: Drop base_name and change generic_name Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 21/29] libvhost-user: fix VHOST_USER_REM_MEM_REG skipping mmap_addr Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 22/29] vhost-user-rng: Add vhost-user-rng implementation Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 23/29] vhost-user-rng-pci: Add vhost-user-rng-pci implementation Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 24/29] docs: Add documentation for vhost based RNG implementation Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 25/29] vhost-user: fix duplicated notifier MR init Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 26/29] tests/acpi/bios-tables-test: add and allow changes to a new q35 DSDT table blob Michael S. Tsirkin
2021-10-19 11:20 ` [PULL 27/29] tests/acpi/pcihp: add unit tests for hotplug on multifunction bridges for q35 Michael S. Tsirkin
2021-10-19 11:21 ` [PULL 28/29] tests/acpi/bios-tables-test: update DSDT blob for multifunction bridge test Michael S. Tsirkin
2021-10-19 11:21 ` [PULL 29/29] failover: fix a regression introduced by JSON'ification of -device Michael S. Tsirkin
2021-10-19 14:07 ` [PULL 00/29] pc,pci,virtio: features, fixes Michael S. Tsirkin
2021-10-19 14:08 ` [PULL 30/29] vhost-user-blk-test: pass vhost-user socket fds to QSD Michael S. Tsirkin
2021-10-19 18:38 ` [PULL 00/29] pc,pci,virtio: features, fixes Richard Henderson
2021-10-20 8:39 ` Igor Mammedov
2021-10-20 9:39 ` Thomas Huth [this message]
2021-10-20 9:41 ` Michael S. Tsirkin
2021-10-20 9:46 ` Thomas Huth
2021-10-20 15:34 ` Marcel Apfelbaum
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=f2a6b49c-f1f7-f50c-0ff6-49e37427007c@redhat.com \
--to=thuth@redhat.com \
--cc=imammedo@redhat.com \
--cc=mapfelba@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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).