[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] ab4dd2: hw/virtio: Acquire RCU read lock in v
From: |
Richard Henderson |
Subject: |
[Qemu-commits] [qemu/qemu] ab4dd2: hw/virtio: Acquire RCU read lock in virtqueue_pack... |
Date: |
Tue, 05 Oct 2021 10:17:00 -0700 |
Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: ab4dd2746c234f038206b3ccfe6bec1f19f98c24
https://github.com/qemu/qemu/commit/ab4dd2746c234f038206b3ccfe6bec1f19f98c24
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
hw/virtio: Acquire RCU read lock in virtqueue_packed_drop_all()
vring_get_region_caches() must be called with the RCU read lock
acquired. virtqueue_packed_drop_all() does not, and uses the
'caches' pointer. Fix that by using the RCU_READ_LOCK_GUARD()
macro.
Reported-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210906104318.1569967-3-philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Commit: d6ed27bae717ceac9de0c53a31389143846b8465
https://github.com/qemu/qemu/commit/d6ed27bae717ceac9de0c53a31389143846b8465
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
hw/virtio: Have virtqueue_get_avail_bytes() pass caches arg to callees
Both virtqueue_packed_get_avail_bytes() and
virtqueue_split_get_avail_bytes() access the region cache, but
their caller also does. Simplify by having virtqueue_get_avail_bytes
calling both with RCU lock held, and passing the caches as argument.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210906104318.1569967-4-philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Commit: e77b6374c0b8b6e410f0d74bcba0df98dfae4cce
https://github.com/qemu/qemu/commit/e77b6374c0b8b6e410f0d74bcba0df98dfae4cce
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M net/vhost-vdpa.c
Log Message:
-----------
vhost-vdpa: open device fd in net_init_vhost_vdpa()
This patch switches to open device fd in net_init_vhost_vpda(). This is
used to prepare for the multiqueue support.
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-2-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 67262edeb5c7bb99ed86304312bb7768e92f4cd7
https://github.com/qemu/qemu/commit/67262edeb5c7bb99ed86304312bb7768e92f4cd7
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/vhost-vdpa.c
M include/hw/virtio/vhost-vdpa.h
Log Message:
-----------
vhost-vdpa: classify one time request
Vhost-vdpa uses one device multiqueue queue (pairs) model. So we need
to classify the one time request (e.g SET_OWNER) and make sure those
request were only called once per device.
This is used for multiqueue support.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-3-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 0f5bfa27e1c1df21b4c874cedf18d5ac812d81e2
https://github.com/qemu/qemu/commit/0f5bfa27e1c1df21b4c874cedf18d5ac812d81e2
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/vhost-vdpa.c
Log Message:
-----------
vhost-vdpa: prepare for the multiqueue support
Unlike vhost-kernel, vhost-vdpa adapts a single device multiqueue
model. So we need to simply use virtqueue index as the vhost virtqueue
index. This is a must for multiqueue to work for vhost-vdpa.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-4-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 7e91ad3cafee23b780d12fcd17786617b7dbc7b8
https://github.com/qemu/qemu/commit/7e91ad3cafee23b780d12fcd17786617b7dbc7b8
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M net/vhost-vdpa.c
Log Message:
-----------
vhost-vdpa: let net_vhost_vdpa_init() returns NetClientState *
This patch switches to let net_vhost_vdpa_init() to return
NetClientState *. This is used for the callers to allocate multiqueue
NetClientState for multiqueue support.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-5-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 14155bf5e07ec61d8d79763d420dd152b7bea3a4
https://github.com/qemu/qemu/commit/14155bf5e07ec61d8d79763d420dd152b7bea3a4
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M include/net/net.h
M net/net.c
Log Message:
-----------
net: introduce control client
This patch introduces a boolean for the device has control queue which
can accepts control command via network queue.
The first user would be the control virtqueue support for vhost.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-6-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 0e8af39ea3390c00d04ad516e431c347876a0bc1
https://github.com/qemu/qemu/commit/0e8af39ea3390c00d04ad516e431c347876a0bc1
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/net/vhost_net.c
M hw/net/virtio-net.c
M include/net/vhost_net.h
Log Message:
-----------
vhost-net: control virtqueue support
We assume there's no cvq in the past, this is not true when we need
control virtqueue support for vhost-user backends. So this patch
implements the control virtqueue support for vhost-net. As datapath,
the control virtqueue is also required to be coupled with the
NetClientState. The vhost_net_start/stop() are tweaked to accept the
number of datapath queue pairs plus the the number of control
virtqueue for us to start and stop the vhost device.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-7-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 2ee2a97db13812e8fcfc40d4a1be06d4144f9cb2
https://github.com/qemu/qemu/commit/2ee2a97db13812e8fcfc40d4a1be06d4144f9cb2
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/net/vhost_net.c
M hw/net/virtio-net.c
M include/hw/virtio/virtio-net.h
Log Message:
-----------
virtio-net: use "queue_pairs" instead of "queues" when possible
Most of the time, "queues" really means queue pairs. So this patch
switch to use "queue_pairs" to avoid confusion.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-8-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 183b1abfdc4c479ad36772eb7b6a19599bdb06ef
https://github.com/qemu/qemu/commit/183b1abfdc4c479ad36772eb7b6a19599bdb06ef
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/net/vhost_net.c
M include/hw/virtio/vhost.h
Log Message:
-----------
vhost: record the last virtqueue index for the virtio device
This patch introduces a new field in the vhost_dev structure to record
the last virtqueue index for the virtio device. This will be useful
for the vhost backends with 1:N model to start or stop the device
after all the vhost_dev structures were started or stopped.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-9-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: ed78ff806c761a03e16cae67a42ab0a65b949f9c
https://github.com/qemu/qemu/commit/ed78ff806c761a03e16cae67a42ab0a65b949f9c
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/net/vhost_net.c
M hw/net/virtio-net.c
M include/hw/virtio/virtio-net.h
Log Message:
-----------
virtio-net: vhost control virtqueue support
This patch implements the control virtqueue support for vhost. This
requires virtio-net to figure out the datapath queue pairs and control
virtqueue via is_datapath and pass the number of those two types
of virtqueues to vhost_net_start()/vhost_net_stop().
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-10-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 5f347bcfb556e5fd8a73161d392407bafc46e1b4
https://github.com/qemu/qemu/commit/5f347bcfb556e5fd8a73161d392407bafc46e1b4
Author: Jason Wang <jasowang@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/vhost-vdpa.c
M net/vhost-vdpa.c
Log Message:
-----------
vhost-vdpa: multiqueue support
This patch implements the multiqueue support for vhost-vdpa. This is
done simply by reading the number of queue pairs from the config space
and initialize the datapath and control path net client.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210907090322.1756-11-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 88f62574685dcd2184d84031aa83d1f6b70466fa
https://github.com/qemu/qemu/commit/88f62574685dcd2184d84031aa83d1f6b70466fa
Author: Stefano Garzarella <sgarzare@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/core/machine.c
M hw/virtio/vhost-vsock.c
M include/hw/virtio/vhost-vsock.h
Log Message:
-----------
vhost-vsock: fix migration issue when seqpacket is supported
Commit 1e08fd0a46 ("vhost-vsock: SOCK_SEQPACKET feature bit support")
enabled the SEQPACKET feature bit.
This commit is released with QEMU 6.1, so if we try to migrate a VM where
the host kernel supports SEQPACKET but machine type version is less than
6.1, we get the following errors:
Features 0x130000002 unsupported. Allowed features: 0x179000000
Failed to load virtio-vhost_vsock:virtio
error while loading state for instance 0x0 of device
'0000:00:05.0/virtio-vhost_vsock'
load of migration failed: Operation not permitted
Let's disable the feature bit for machine types < 6.1.
We add a new OnOffAuto property for this, called `seqpacket`.
When it is `auto` (default), QEMU behaves as before, trying to enable the
feature, when it is `on` QEMU will fail if the backend (vhost-vsock
kernel module) doesn't support it.
Fixes: 1e08fd0a46 ("vhost-vsock: SOCK_SEQPACKET feature bit support")
Cc: qemu-stable@nongnu.org
Reported-by: Jiang Wang <jiang.wang@bytedance.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210921161642.206461-2-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 32a574ee57fb0d002760e179581acce44a993989
https://github.com/qemu/qemu/commit/32a574ee57fb0d002760e179581acce44a993989
Author: Stefano Garzarella <sgarzare@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/core/machine.c
M hw/virtio/vhost-user-vsock.c
M hw/virtio/vhost-vsock-common.c
M hw/virtio/vhost-vsock.c
M include/hw/virtio/vhost-vsock-common.h
M include/hw/virtio/vhost-vsock.h
Log Message:
-----------
vhost-vsock: handle common features in vhost-vsock-common
virtio-vsock features, like VIRTIO_VSOCK_F_SEQPACKET, can be handled
by vhost-vsock-common parent class. In this way, we can reuse the
same code for all virtio-vsock backends (i.e. vhost-vsock,
vhost-user-vsock).
Let's move `seqpacket` property to vhost-vsock-common class, add
vhost_vsock_common_get_features() used by children, and disable
`seqpacket` for vhost-user-vsock device for machine types < 6.2.
The behavior of vhost-vsock device doesn't change; vhost-user-vsock
device now supports `seqpacket` property.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210921161642.206461-3-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 09478d3363a9e739283534edbac36afba4c34ed8
https://github.com/qemu/qemu/commit/09478d3363a9e739283534edbac36afba4c34ed8
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
M include/hw/acpi/aml-build.h
Log Message:
-----------
acpi: add helper routines to initialize ACPI tables
Patch introduces acpi_table_begin()/ acpi_table_end() API
that hides pointer/offset arithmetic from user as opposed
to build_header(), to prevent errors caused by it [1].
acpi_table_begin():
initializes table header and keeps track of
table data/offsets
acpi_table_end():
sets actual table length and tells bios loader
where table is for the later initialization on
guest side.
1) commits
bb9feea43179 x86: acpi: use offset instead of pointer when using
build_header()
4d027afeb3a9 Virt: ACPI: fix qemu assert due to re-assigned table data
address
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-2-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Tested-by: Yanan Wang <wangyanan55@huawei.com>
Commit: e524a1529a4be211b5847ec6533d12fd97e27615
https://github.com/qemu/qemu/commit/e524a1529a4be211b5847ec6533d12fd97e27615
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_rsdt: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offests magic from API user.
While at it switch to build_append_int_noprefix() to build
entries to other tables (which also removes some manual offset
calculations).
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-3-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 1df1c911635352cc29c01b1713fb14d87988174d
https://github.com/qemu/qemu/commit/1df1c911635352cc29c01b1713fb14d87988174d
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_xsdt: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
While at it switch to build_append_int_noprefix() to build
entries to other tables (which also removes some manual offset
calculations).
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 0030c5c9363cd658c62c8d19ba8dad3f36492e14
https://github.com/qemu/qemu/commit/0030c5c9363cd658c62c8d19ba8dad3f36492e14
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
Log Message:
-----------
acpi: build_slit: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-5-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 2122081811cb36ef5512dc1c73684d345694f646
https://github.com/qemu/qemu/commit/2122081811cb36ef5512dc1c73684d345694f646
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
Log Message:
-----------
acpi: build_fadt: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-6-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 7bd982cdce0b8c9f6b3a44a39e38d66735489b4e
https://github.com/qemu/qemu/commit/7bd982cdce0b8c9f6b3a44a39e38d66735489b4e
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
Log Message:
-----------
acpi: build_tpm2: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-7-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: e99b4c9ce485927214a1fe38fa9985ab56bd7502
https://github.com/qemu/qemu/commit/e99b4c9ce485927214a1fe38fa9985ab56bd7502
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/ghes.c
Log Message:
-----------
acpi: acpi_build_hest: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Dongjiu Geng <gengdongjiu1@gmail.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-8-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: db871b847d8d2a10a348fe17eb31230d71459bce
https://github.com/qemu/qemu/commit/db871b847d8d2a10a348fe17eb31230d71459bce
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/pci.c
Log Message:
-----------
acpi: build_mcfg: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-9-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 26f05e855fc48324430599bbef659f5571430f26
https://github.com/qemu/qemu/commit/26f05e855fc48324430599bbef659f5571430f26
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/hmat.c
Log Message:
-----------
acpi: build_hmat: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Also since acpi_table_begin() reserves space only for standard header
while previous acpi_data_push() reserved the header + 4 bytes field,
add 4 bytes 'Reserved' field into hmat_build_table_structs()
which didn have it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-10-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: a3e6ddb358189aaaef3d64b7601805756707638f
https://github.com/qemu/qemu/commit/a3e6ddb358189aaaef3d64b7601805756707638f
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/nvdimm.c
Log Message:
-----------
acpi: nvdimm_build_nfit: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Also since acpi_table_begin() reserves space only for standard header
while previous acpi_data_push() reserved the header + 4 bytes field,
add 4 bytes 'Reserved' field into nvdimm_build_nfit() which didn't
have it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-11-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: d5b33547cb7df335ba4c9d7c9b2fac927e466c76
https://github.com/qemu/qemu/commit/d5b33547cb7df335ba4c9d7c9b2fac927e466c76
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/nvdimm.c
Log Message:
-----------
acpi: nvdimm_build_ssdt: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-12-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 33c12707725a1155763fe653f0c4d5376b7a9001
https://github.com/qemu/qemu/commit/33c12707725a1155763fe653f0c4d5376b7a9001
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/vmgenid.c
Log Message:
-----------
acpi: vmgenid_build_acpi: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-13-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 089ae6b31adbd13888067df944c36f5e6017a595
https://github.com/qemu/qemu/commit/089ae6b31adbd13888067df944c36f5e6017a595
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
Log Message:
-----------
acpi: x86: build_dsdt: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-14-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: eda9da9f562ab865f07c90623345122f8dccb3af
https://github.com/qemu/qemu/commit/eda9da9f562ab865f07c90623345122f8dccb3af
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_hpet: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
while at it convert build_hpet() to endian agnostic
build_append_FOO() API
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210924122802.1455362-15-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: b5381e2c9a557e4b2489cbe779d027230bfb117f
https://github.com/qemu/qemu/commit/b5381e2c9a557e4b2489cbe779d027230bfb117f
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_tpm_tcpa: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
While at it switch to build_append_int_noprefix() to build
table entries (which also removes some manual offset
calculations).
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-16-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 53e214804ac9603271df7c4d4b5d6859e89e0de1
https://github.com/qemu/qemu/commit/53e214804ac9603271df7c4d4b5d6859e89e0de1
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm/x86: build_srat: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
While at it switch to build_append_int_noprefix() to build
table entries (which also removes some manual offset
calculations)
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-17-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 6a18841334ab592cff9cba454bd55bba24da54da
https://github.com/qemu/qemu/commit/6a18841334ab592cff9cba454bd55bba24da54da
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
M hw/acpi/nvdimm.c
M hw/arm/virt-acpi-build.c
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
M include/hw/acpi/aml-build.h
Log Message:
-----------
acpi: use build_append_int_noprefix() API to compose SRAT table
Drop usage of packed structures and explicit endian conversions
when building SRAT tables for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-18-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 03e3fab658f4463859da9f3e81d7bd44349e02cd
https://github.com/qemu/qemu/commit/03e3fab658f4463859da9f3e81d7bd44349e02cd
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_dmar_q35: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
While at it switch to build_append_int_noprefix() to build
table entries tables.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-19-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 3a1b846d1544df75948dd731e285523042db7892
https://github.com/qemu/qemu/commit/3a1b846d1544df75948dd731e285523042db7892
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
Log Message:
-----------
acpi: build_waet: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-20-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: f7bd41b9ee4d2625a5292826f9742b946dbb676c
https://github.com/qemu/qemu/commit/f7bd41b9ee4d2625a5292826f9742b946dbb676c
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
Log Message:
-----------
acpi: build_amd_iommu: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-21-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: ddc77c9e853f5a4f375f4f79cb15ec1e5067345a
https://github.com/qemu/qemu/commit/ddc77c9e853f5a4f375f4f79cb15ec1e5067345a
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M hw/i386/acpi-common.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: madt: arm/x86: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-22-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: fd2b640c7a94367f4f9771f1709d0a6578f2300a
https://github.com/qemu/qemu/commit/fd2b640c7a94367f4f9771f1709d0a6578f2300a
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: x86: remove dead code
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-23-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: b7e5349cc3cf40efd5b76758f4f0b58f1a07a05d
https://github.com/qemu/qemu/commit/b7e5349cc3cf40efd5b76758f4f0b58f1a07a05d
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/acpi-x86-stub.c
M hw/acpi/cpu.c
M hw/i386/acpi-common.c
M include/hw/acpi/acpi_dev_interface.h
M include/hw/i386/pc.h
Log Message:
-----------
acpi: x86: set enabled when composing _MAT entries
Instead of composing disabled _MAT entry and then later on
patching it to enabled for hotpluggbale CPUs in DSDT,
set it to enabled at the time _MAT entry is built.
It will allow to drop usage of packed structures in
following patches when build_madt() is switched to use
build_append_int_noprefix() API.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-24-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 9cd66b886c234fcf0daeccbea61fad5fcbd48570
https://github.com/qemu/qemu/commit/9cd66b886c234fcf0daeccbea61fad5fcbd48570
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-common.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: x86: madt: use build_append_int_noprefix() API to compose MADT table
Drop usage of packed structures and explicit endian conversions
when building MADT table for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-25-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 32a25cc9a6699f6f8831bb2b485e329d322d18d9
https://github.com/qemu/qemu/commit/32a25cc9a6699f6f8831bb2b485e329d322d18d9
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT
table
Drop usage of packed structures and explicit endian conversions
when building MADT table for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-26-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: b6d6df246a62e8f23032f310540e6a6b8cf6703f
https://github.com/qemu/qemu/commit/b6d6df246a62e8f23032f310540e6a6b8cf6703f
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-microvm.c
Log Message:
-----------
acpi: build_dsdt_microvm: use acpi_table_begin()/acpi_table_end() instead of
build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-27-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: b3b1948d1bcad7e75eed0c52478a6b3b9dcd092b
https://github.com/qemu/qemu/commit/b3b1948d1bcad7e75eed0c52478a6b3b9dcd092b
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
Log Message:
-----------
acpi: arm: virt: build_dsdt: use acpi_table_begin()/acpi_table_end() instead
of build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-28-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 592c6b10a9092f0d8be29eca8b3804ab9dd738b1
https://github.com/qemu/qemu/commit/592c6b10a9092f0d8be29eca8b3804ab9dd738b1
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm: virt: build_iort: use acpi_table_begin()/acpi_table_end() instead
of build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-29-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 2161751abc9f236c9f7c2b9cfa300ec5cbbc7c05
https://github.com/qemu/qemu/commit/2161751abc9f236c9f7c2b9cfa300ec5cbbc7c05
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm/virt: convert build_iort() to endian agnostic build_append_FOO() API
Drop usage of packed structures and explicit endian conversions
when building IORT table use endian agnostic build_append_int_noprefix()
API to build it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210924122802.1455362-30-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Commit: 819e3462d9b2ba26ce90a880ca501acedfdbfc1b
https://github.com/qemu/qemu/commit/819e3462d9b2ba26ce90a880ca501acedfdbfc1b
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
Log Message:
-----------
acpi: arm/virt: build_spcr: fix invalid cast
implicit cast to structure uint8_t member didn't raise error when
assigning value from incorrect enum, but when using build_append_gas()
(next patch) it will error out with (clang):
implicit conversion from enumeration type 'AmlRegionSpace'
to different enumeration type 'AmlAddressSpace'
fix cast error by using correct AML_AS_SYSTEM_MEMORY enum
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-31-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 204afab68cd6fc6f63b49f8a0cf61812be25ebbe
https://github.com/qemu/qemu/commit/204afab68cd6fc6f63b49f8a0cf61812be25ebbe
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm/virt: build_spcr: use acpi_table_begin()/acpi_table_end() instead
of build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
while at it, replace packed structure with endian agnostic
build_append_FOO() API.
PS:
Spec is Microsoft hosted, however 1.02 is no where to be found
(MS lists only the current revision) and the current revision is 1.07,
so bring comments in line with 1.07 as this is the only available spec.
There is no content change between originally implemented 1.02
(using QEMU code as reference) and 1.07. The only change is renaming
'Reserved2' field to 'Language', with the same 0 value.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-32-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 003ebfbc9f1aa44628995fce74074db063cf53bf
https://github.com/qemu/qemu/commit/003ebfbc9f1aa44628995fce74074db063cf53bf
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/arm/virt-acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: arm/virt: build_gtdt: use acpi_table_begin()/acpi_table_end() instead
of build_header()
it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.
while at it, replace packed structure with endian agnostic
build_append_FOO() API.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-33-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: fed6b1c0fd5e34adc73f708c337931435f00944d
https://github.com/qemu/qemu/commit/fed6b1c0fd5e34adc73f708c337931435f00944d
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/acpi-build.c
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: build_facs: use build_append_int_noprefix() API to compose table
Drop usage of packed structures and explicit endian
conversions when building table and use endian agnostic
build_append_int_noprefix() API to build it.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-34-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 0bc04aaee992c815e4fc363369e14881d069b459
https://github.com/qemu/qemu/commit/0bc04aaee992c815e4fc363369e14881d069b459
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/aml-build.c
M include/hw/acpi/acpi-defs.h
M include/hw/acpi/aml-build.h
Log Message:
-----------
acpi: remove no longer used build_header()
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-35-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 97e06bd502c4449dc51dd75a8104d1c9420b1e7a
https://github.com/qemu/qemu/commit/97e06bd502c4449dc51dd75a8104d1c9420b1e7a
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M include/hw/acpi/acpi-defs.h
Log Message:
-----------
acpi: AcpiGenericAddress no longer used to map/access fields of MMIO, drop
packed attribute
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-36-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 381e17fc320c8d154a79e12d7418b8c8302b1b4c
https://github.com/qemu/qemu/commit/381e17fc320c8d154a79e12d7418b8c8302b1b4c
Author: Ani Sinha <ani@anisinha.ca>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M tests/qtest/bios-tables-test-allowed-diff.h
Log Message:
-----------
bios-tables-test: allow changes in DSDT ACPI tables for q35
We are going to commit a change to fix IO address range allocated for acpi pci
hotplug in q35. This affects DSDT tables. This change allows DSDT table
modification so that unit tests are not broken.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210916132838.3469580-2-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: bd53d8b309f5f4c92c9c261c3c0d9a2a170542b0
https://github.com/qemu/qemu/commit/bd53d8b309f5f4c92c9c261c3c0d9a2a170542b0
Author: Ani Sinha <ani@anisinha.ca>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M include/hw/acpi/ich9.h
Log Message:
-----------
hw/i386/acpi: fix conflicting IO address range for acpi pci hotplug in q35
Change caf108bc58790 ("hw/i386/acpi-build: Add ACPI PCI hot-plug methods to
Q35")
selects an IO address range for acpi based PCI hotplug for q35 arbitrarily. It
starts at address 0x0cc4 and ends at 0x0cdb. At the time when the patch was
written but the final version of the patch was not yet pushed upstream, this
address range was free and did not conflict with any other IO address ranges.
However, with the following change, this address range was no
longer conflict free as in this change, the IO address range
(value of ACPI_PCIHP_SIZE) was incremented by four bytes:
b32bd763a1ca92 ("pci: introduce acpi-index property for PCI device")
This can be seen from the output of QMP command 'info mtree' :
0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
0000000000000620-000000000000062f (prio 0, i/o): acpi-gpe0
0000000000000630-0000000000000637 (prio 0, i/o): acpi-smi
0000000000000cc4-0000000000000cdb (prio 0, i/o): acpi-pci-hotplug
0000000000000cd8-0000000000000ce3 (prio 0, i/o): acpi-cpu-hotplug
It shows that there is a region of conflict between IO regions of acpi
pci hotplug and acpi cpu hotplug.
Unfortunately, the change caf108bc58790 did not update the IO address range
appropriately before it was pushed upstream to accommodate the increased
length of the IO address space introduced in change b32bd763a1ca92.
Due to this bug, windows guests complain 'This device cannot find
enough free resources it can use' in the device manager panel for extended
IO buses. This issue also breaks the correct functioning of pci hotplug as the
following shows that the IO space for pci hotplug has been truncated:
(qemu) info mtree -f
FlatView #0
AS "I/O", root: io
Root memory region: io
0000000000000cc4-0000000000000cd7 (prio 0, i/o): acpi-pci-hotplug
0000000000000cd8-0000000000000cf7 (prio 0, i/o): acpi-cpu-hotplug
Therefore, in this fix, we adjust the IO address range for the acpi pci
hotplug so that it does not conflict with cpu hotplug and there is no
truncation of IO spaces. The starting IO address of PCI hotplug region
has been decremented by four bytes in order to accommodate four byte
increment in the IO address space introduced by change
b32bd763a1ca92 ("pci: introduce acpi-index property for PCI device")
After fixing, the following are the corrected IO ranges:
0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
0000000000000620-000000000000062f (prio 0, i/o): acpi-gpe0
0000000000000630-0000000000000637 (prio 0, i/o): acpi-smi
0000000000000cc0-0000000000000cd7 (prio 0, i/o): acpi-pci-hotplug
0000000000000cd8-0000000000000ce3 (prio 0, i/o): acpi-cpu-hotplug
This change has been tested using a Windows Server 2019 guest VM. Windows
no longer complains after this change.
Fixes: caf108bc58790 ("hw/i386/acpi-build: Add ACPI PCI hot-plug methods to
Q35")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/561
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Julia Suvorova <jusual@redhat.com>
Message-Id: <20210916132838.3469580-3-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: 6cb1169b3fd6b22b309352c80989ae3248c1bc2b
https://github.com/qemu/qemu/commit/6cb1169b3fd6b22b309352c80989ae3248c1bc2b
Author: Ani Sinha <ani@anisinha.ca>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M tests/data/acpi/q35/DSDT
M tests/data/acpi/q35/DSDT.acpihmat
M tests/data/acpi/q35/DSDT.bridge
M tests/data/acpi/q35/DSDT.cphp
M tests/data/acpi/q35/DSDT.dimmpxm
M tests/data/acpi/q35/DSDT.ipmibt
M tests/data/acpi/q35/DSDT.memhp
M tests/data/acpi/q35/DSDT.mmio64
M tests/data/acpi/q35/DSDT.nohpet
M tests/data/acpi/q35/DSDT.numamem
M tests/data/acpi/q35/DSDT.tis.tpm12
M tests/data/acpi/q35/DSDT.tis.tpm2
M tests/qtest/bios-tables-test-allowed-diff.h
Log Message:
-----------
bios-tables-test: Update ACPI DSDT table golden blobs for q35
We have modified the IO address range for ACPI pci hotplug in q35. See change:
5adcc9e39e6a5 ("hw/i386/acpi: fix conflicting IO address range for acpi pci
hotplug in q35")
The ACPI DSDT table golden blobs must be regenrated in order to make the unit
tests
pass. This change updates the golden ACPI DSDT table blobs.
Following is the ASL diff between the blobs:
@@ -1,30 +1,30 @@
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20190509 (64-bit version)
* Copyright (c) 2000 - 2019 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
- * Disassembly of tests/data/acpi/q35/DSDT, Tue Sep 14 09:04:06 2021
+ * Disassembly of /tmp/aml-52DP90, Tue Sep 14 09:04:06 2021
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00002061 (8289)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0xE5
+ * Checksum 0xF9
* OEM ID "BOCHS "
* OEM Table ID "BXPC "
* OEM Revision 0x00000001 (1)
* Compiler ID "BXPC"
* Compiler Version 0x00000001 (1)
*/
DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ", 0x00000001)
{
Scope (\)
{
OperationRegion (DBG, SystemIO, 0x0402, One)
Field (DBG, ByteAcc, NoLock, Preserve)
{
DBGB, 8
}
@@ -226,46 +226,46 @@
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{8}
})
}
}
Scope (_SB.PCI0)
{
- OperationRegion (PCST, SystemIO, 0x0CC4, 0x08)
+ OperationRegion (PCST, SystemIO, 0x0CC0, 0x08)
Field (PCST, DWordAcc, NoLock, WriteAsZeros)
{
PCIU, 32,
PCID, 32
}
- OperationRegion (SEJ, SystemIO, 0x0CCC, 0x04)
+ OperationRegion (SEJ, SystemIO, 0x0CC8, 0x04)
Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
{
B0EJ, 32
}
- OperationRegion (BNMR, SystemIO, 0x0CD4, 0x08)
+ OperationRegion (BNMR, SystemIO, 0x0CD0, 0x08)
Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
{
BNUM, 32,
PIDX, 32
}
Mutex (BLCK, 0x00)
Method (PCEJ, 2, NotSerialized)
{
Acquire (BLCK, 0xFFFF)
BNUM = Arg0
B0EJ = (One << Arg1)
Release (BLCK)
Return (Zero)
}
@@ -3185,34 +3185,34 @@
0x0620, // Range Minimum
0x0620, // Range Maximum
0x01, // Alignment
0x10, // Length
)
})
}
Device (PHPR)
{
Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID:
Hardware ID
Name (_UID, "PCI Hotplug resources") // _UID: Unique ID
Name (_STA, 0x0B) // _STA: Status
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
- 0x0CC4, // Range Minimum
- 0x0CC4, // Range Maximum
+ 0x0CC0, // Range Minimum
+ 0x0CC0, // Range Maximum
0x01, // Alignment
0x18, // Length
)
})
}
}
Scope (\)
{
Name (_S3, Package (0x04) // _S3_: S3 System State
{
One,
One,
Zero,
Zero
})
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210916132838.3469580-4-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: b6724f4e3b8266451317ab1406c299bf96be85e3
https://github.com/qemu/qemu/commit/b6724f4e3b8266451317ab1406c299bf96be85e3
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/virtio/virtio-balloon.c
Log Message:
-----------
virtio-balloon: Fix page-poison subsection name
The subsection name for page-poison was typo'd as:
vitio-balloon-device/page-poison
Note the missing 'r' in virtio.
When we have a machine type that enables page poison, and the guest
enables it (which needs a new kernel), things fail rather unpredictably.
The fallout from this is that most of the other subsections fail to
load, including things like the feature bits in the device, one
possible fallout is that the physical addresses of the queues
then get aligned differently and we fail with an error about
last_avail_idx being wrong.
It's not obvious to me why this doesn't produce a more obvious failure,
but virtio's vmstate loading is a bit open-coded.
Fixes: 7483cbbaf82 ("virtio-balloon: Implement support for page poison
reporting feature")
bz: https://bugzilla.redhat.com/show_bug.cgi?id=1984401
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20210914131716.102851-1-dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Commit: 4d6e10f271300d5f0f60384a35dbfc38636647b1
https://github.com/qemu/qemu/commit/4d6e10f271300d5f0f60384a35dbfc38636647b1
Author: Li Zhijian <lizhijian@cn.fujitsu.com>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/nvdimm.c
Log Message:
-----------
nvdimm: release the correct device list
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Message-Id: <20210624110415.187164-1-lizhijian@cn.fujitsu.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Commit: 0d1d97af593d15da038f97ba7a4c1020b7edcacc
https://github.com/qemu/qemu/commit/0d1d97af593d15da038f97ba7a4c1020b7edcacc
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/amd_iommu.c
Log Message:
-----------
hw/i386/amd_iommu: Rename amdviPCI TypeInfo
Per 'QEMU Coding Style':
Naming
======
Variables are lower_case_with_underscores; easy to type and read.
Rename amdviPCI variable as amdvi_pci.
amdviPCI_register_types() register more than PCI types:
TYPE_AMD_IOMMU_DEVICE inherits TYPE_X86_IOMMU_DEVICE which
itself inherits TYPE_SYS_BUS_DEVICE.
Rename it more generically as amdvi_register_types().
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-2-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: ada929de88fe407980ef10f65ac300388489fe88
https://github.com/qemu/qemu/commit/ada929de88fe407980ef10f65ac300388489fe88
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/amd_iommu.c
Log Message:
-----------
hw/i386/amd_iommu: Rename SysBus specific functions as amdvi_sysbus_X()
Various functions are SysBus specific. Rename them using the
consistent amdvi_sysbus_XXX() pattern, to differentiate them
from PCI specific functions (which we'll add in the next
commit).
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-3-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: c7d2f59cf940b8c8c52c29d5fa25613fe662f7b6
https://github.com/qemu/qemu/commit/c7d2f59cf940b8c8c52c29d5fa25613fe662f7b6
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/i386/amd_iommu.c
Log Message:
-----------
hw/i386/amd_iommu: Add description/category to TYPE_AMD_IOMMU_PCI
TYPE_AMD_IOMMU_PCI is user-creatable but not well described.
Implement its class_init() handler to add it to the 'Misc
devices' category, and add a description.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-4-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Commit: dfaac50f1e4f3e5c74b18b617d9ba5d264e0051b
https://github.com/qemu/qemu/commit/dfaac50f1e4f3e5c74b18b617d9ba5d264e0051b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-05 (Tue, 05 Oct 2021)
Changed paths:
M hw/acpi/acpi-x86-stub.c
M hw/acpi/aml-build.c
M hw/acpi/cpu.c
M hw/acpi/ghes.c
M hw/acpi/hmat.c
M hw/acpi/nvdimm.c
M hw/acpi/pci.c
M hw/acpi/vmgenid.c
M hw/arm/virt-acpi-build.c
M hw/core/machine.c
M hw/i386/acpi-build.c
M hw/i386/acpi-common.c
M hw/i386/acpi-microvm.c
M hw/i386/amd_iommu.c
M hw/net/vhost_net.c
M hw/net/virtio-net.c
M hw/virtio/vhost-user-vsock.c
M hw/virtio/vhost-vdpa.c
M hw/virtio/vhost-vsock-common.c
M hw/virtio/vhost-vsock.c
M hw/virtio/virtio-balloon.c
M hw/virtio/virtio.c
M include/hw/acpi/acpi-defs.h
M include/hw/acpi/acpi_dev_interface.h
M include/hw/acpi/aml-build.h
M include/hw/acpi/ich9.h
M include/hw/i386/pc.h
M include/hw/virtio/vhost-vdpa.h
M include/hw/virtio/vhost-vsock-common.h
M include/hw/virtio/vhost.h
M include/hw/virtio/virtio-net.h
M include/net/net.h
M include/net/vhost_net.h
M net/net.c
M net/vhost-vdpa.c
M tests/data/acpi/q35/DSDT
M tests/data/acpi/q35/DSDT.acpihmat
M tests/data/acpi/q35/DSDT.bridge
M tests/data/acpi/q35/DSDT.cphp
M tests/data/acpi/q35/DSDT.dimmpxm
M tests/data/acpi/q35/DSDT.ipmibt
M tests/data/acpi/q35/DSDT.memhp
M tests/data/acpi/q35/DSDT.mmio64
M tests/data/acpi/q35/DSDT.nohpet
M tests/data/acpi/q35/DSDT.numamem
M tests/data/acpi/q35/DSDT.tis.tpm12
M tests/data/acpi/q35/DSDT.tis.tpm2
Log Message:
-----------
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
pc,pci,virtio: features, fixes
VDPA multiqueue support.
A huge acpi refactoring.
Fixes, cleanups all over the place.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Tue 05 Oct 2021 08:59:13 AM PDT
# gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg: issuer "mst@redhat.com"
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
# gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full]
* remotes/mst/tags/for_upstream: (57 commits)
hw/i386/amd_iommu: Add description/category to TYPE_AMD_IOMMU_PCI
hw/i386/amd_iommu: Rename SysBus specific functions as amdvi_sysbus_X()
hw/i386/amd_iommu: Rename amdviPCI TypeInfo
nvdimm: release the correct device list
virtio-balloon: Fix page-poison subsection name
bios-tables-test: Update ACPI DSDT table golden blobs for q35
hw/i386/acpi: fix conflicting IO address range for acpi pci hotplug in q35
bios-tables-test: allow changes in DSDT ACPI tables for q35
acpi: AcpiGenericAddress no longer used to map/access fields of MMIO, drop
packed attribute
acpi: remove no longer used build_header()
acpi: build_facs: use build_append_int_noprefix() API to compose table
acpi: arm/virt: build_gtdt: use acpi_table_begin()/acpi_table_end() instead
of build_header()
acpi: arm/virt: build_spcr: use acpi_table_begin()/acpi_table_end() instead
of build_header()
acpi: arm/virt: build_spcr: fix invalid cast
acpi: arm/virt: convert build_iort() to endian agnostic build_append_FOO() API
acpi: arm: virt: build_iort: use acpi_table_begin()/acpi_table_end() instead
of build_header()
acpi: arm: virt: build_dsdt: use acpi_table_begin()/acpi_table_end() instead
of build_header()
acpi: build_dsdt_microvm: use acpi_table_begin()/acpi_table_end() instead of
build_header()
acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT
table
acpi: x86: madt: use build_append_int_noprefix() API to compose MADT table
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Compare: https://github.com/qemu/qemu/compare/9618c5badaa8...dfaac50f1e4f
- [Qemu-commits] [qemu/qemu] ab4dd2: hw/virtio: Acquire RCU read lock in virtqueue_pack...,
Richard Henderson <=