qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 722f8c: virtio: add ability to delete vq thro


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 722f8c: virtio: add ability to delete vq through a pointer
Date: Tue, 07 Jan 2020 09:15:14 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 722f8c51d8af223751dfb1d02de40043e8ba067e
      
https://github.com/qemu/qemu/commit/722f8c51d8af223751dfb1d02de40043e8ba067e
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/virtio/virtio.c
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio: add ability to delete vq through a pointer

Devices tend to maintain vq pointers, allow deleting them trough a vq pointer.

Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>


  Commit: 8cd353ea0fbf0e334e015d833f612799be642296
      
https://github.com/qemu/qemu/commit/8cd353ea0fbf0e334e015d833f612799be642296
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: make virtio_delete_queue idempotent

Let's make sure calling this twice is harmless -
no known instances, but seems safer.

Suggested-by: Pan Nengyuan <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3627842855a23f54b62b48560c9724c2bb3c4af3
      
https://github.com/qemu/qemu/commit/3627842855a23f54b62b48560c9724c2bb3c4af3
  Author: Pan Nengyuan <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/virtio/virtio-balloon.c

  Log Message:
  -----------
  virtio-balloon: fix memory leak while attach virtio-balloon device

ivq/dvq/svq/free_page_vq is forgot to cleanup in
virtio_balloon_device_unrealize, the memory leak stack is as follow:

Direct leak of 14336 byte(s) in 2 object(s) allocated from:
    #0 0x7f99fd9d8560 in calloc (/usr/lib64/libasan.so.3+0xc7560)
    #1 0x7f99fcb20015 in g_malloc0 (/usr/lib64/libglib-2.0.so.0+0x50015)
    #2 0x557d90638437 in virtio_add_queue hw/virtio/virtio.c:2327
    #3 0x557d9064401d in virtio_balloon_device_realize 
hw/virtio/virtio-balloon.c:793
    #4 0x557d906356f7 in virtio_device_realize hw/virtio/virtio.c:3504
    #5 0x557d9073f081 in device_set_realized hw/core/qdev.c:876
    #6 0x557d908b1f4d in property_set_bool qom/object.c:2080
    #7 0x557d908b655e in object_property_set_qobject qom/qom-qobject.c:26

Reported-by: Euler Robot <address@hidden>
Signed-off-by: Pan Nengyuan <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>


  Commit: e615c157f3d27ab42affba9046ae426a83f29874
      
https://github.com/qemu/qemu/commit/e615c157f3d27ab42affba9046ae426a83f29874
  Author: Pan Nengyuan <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/char/virtio-serial-bus.c

  Log Message:
  -----------
  virtio-serial-bus: fix memory leak while attach virtio-serial-bus

ivqs/ovqs/c_ivq/c_ovq is forgot to cleanup in
virtio_serial_device_unrealize, the memory leak stack is as bellow:

Direct leak of 1290240 byte(s) in 180 object(s) allocated from:
    #0 0x7fc9bfc27560 in calloc (/usr/lib64/libasan.so.3+0xc7560)
    #1 0x7fc9bed6f015 in g_malloc0 (/usr/lib64/libglib-2.0.so.0+0x50015)
    #2 0x5650e02b83e7 in virtio_add_queue hw/virtio/virtio.c:2327
    #3 0x5650e02847b5 in virtio_serial_device_realize 
hw/char/virtio-serial-bus.c:1089
    #4 0x5650e02b56a7 in virtio_device_realize hw/virtio/virtio.c:3504
    #5 0x5650e03bf031 in device_set_realized hw/core/qdev.c:876
    #6 0x5650e0531efd in property_set_bool qom/object.c:2080
    #7 0x5650e053650e in object_property_set_qobject qom/qom-qobject.c:26
    #8 0x5650e0533e14 in object_property_set_bool qom/object.c:1338
    #9 0x5650e04c0e37 in virtio_pci_realize hw/virtio/virtio-pci.c:1801

Reported-by: Euler Robot <address@hidden>
Signed-off-by: Pan Nengyuan <address@hidden>
Cc: Laurent Vivier <address@hidden>
Cc: Amit Shah <address@hidden>
Cc: "Marc-André Lureau" <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 087ed8a5827d10cd346ba5fa89845f14b9dff377
      
https://github.com/qemu/qemu/commit/087ed8a5827d10cd346ba5fa89845f14b9dff377
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/input/virtio-input.c

  Log Message:
  -----------
  virtio-input: convert to new virtio_delete_queue

Seems cleaner than using VQ index values.

Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 8fdee7118defeb34441d860047e3e0cfd9da9c26
      
https://github.com/qemu/qemu/commit/8fdee7118defeb34441d860047e3e0cfd9da9c26
  Author: Yi Sun <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: fix bug to read DMAR_RTADDR_REG

Should directly read DMAR_RTADDR_REG but not using 's->root'.
Because 's->root' is modified in 'vtd_root_table_setup()' so
that the first 12 bits are omitted. This causes the guest
iommu debugfs cannot show pasid tables.

Signed-off-by: Yi Sun <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: d0c5f643383b9e84316f148affff368ac33d75b9
      
https://github.com/qemu/qemu/commit/d0c5f643383b9e84316f148affff368ac33d75b9
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/virtio/virtio-pci.c

  Log Message:
  -----------
  virtio: update queue size on guest write

Some guests read back queue size after writing it.
Update the size immediatly upon write otherwise
they get confused.

In particular this is the case for seabios.

Reported-by: Roman Kagan <address@hidden>
Suggested-by: Denis Plotnikov <address@hidden>
Cc: address@hidden
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 9d7bd0826f2d19f88631ad7078662668148f7b5f
      
https://github.com/qemu/qemu/commit/9d7bd0826f2d19f88631ad7078662668148f7b5f
  Author: Michael Roth <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/core/machine.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio-pci: disable vring processing when bus-mastering is disabled

Currently the SLOF firmware for pseries guests will disable/re-enable
a PCI device multiple times via IO/MEM/MASTER bits of PCI_COMMAND
register after the initial probe/feature negotiation, as it tends to
work with a single device at a time at various stages like probing
and running block/network bootloaders without doing a full reset
in-between.

In QEMU, when PCI_COMMAND_MASTER is disabled we disable the
corresponding IOMMU memory region, so DMA accesses (including to vring
fields like idx/flags) will no longer undergo the necessary
translation. Normally we wouldn't expect this to happen since it would
be misbehavior on the driver side to continue driving DMA requests.

However, in the case of pseries, with iommu_platform=on, we trigger the
following sequence when tearing down the virtio-blk dataplane ioeventfd
in response to the guest unsetting PCI_COMMAND_MASTER:

  #2  0x0000555555922651 in virtqueue_map_desc (vdev=vdev@entry=0x555556dbcfb0, 
p_num_sg=p_num_sg@entry=0x7fffe657e1a8, addr=addr@entry=0x7fffe657e240, 
iov=iov@entry=0x7fffe6580240, max_num_sg=max_num_sg@entry=1024, 
is_write=is_write@entry=false, pa=0, sz=0)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio.c:757
  #3  0x0000555555922a89 in virtqueue_pop (vq=vq@entry=0x555556dc8660, 
sz=sz@entry=184)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio.c:950
  #4  0x00005555558d3eca in virtio_blk_get_request (vq=0x555556dc8660, 
s=0x555556dbcfb0)
      at /home/mdroth/w/qemu.git/hw/block/virtio-blk.c:255
  #5  0x00005555558d3eca in virtio_blk_handle_vq (s=0x555556dbcfb0, 
vq=0x555556dc8660)
      at /home/mdroth/w/qemu.git/hw/block/virtio-blk.c:776
  #6  0x000055555591dd66 in virtio_queue_notify_aio_vq 
(vq=vq@entry=0x555556dc8660)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio.c:1550
  #7  0x000055555591ecef in virtio_queue_notify_aio_vq (vq=0x555556dc8660)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio.c:1546
  #8  0x000055555591ecef in virtio_queue_host_notifier_aio_poll 
(opaque=0x555556dc86c8)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio.c:2527
  #9  0x0000555555d02164 in run_poll_handlers_once 
(ctx=ctx@entry=0x55555688bfc0, timeout=timeout@entry=0x7fffe65844a8)
      at /home/mdroth/w/qemu.git/util/aio-posix.c:520
  #10 0x0000555555d02d1b in try_poll_mode (timeout=0x7fffe65844a8, 
ctx=0x55555688bfc0)
      at /home/mdroth/w/qemu.git/util/aio-posix.c:607
  #11 0x0000555555d02d1b in aio_poll (ctx=ctx@entry=0x55555688bfc0, 
blocking=blocking@entry=true)
      at /home/mdroth/w/qemu.git/util/aio-posix.c:639
  #12 0x0000555555d0004d in aio_wait_bh_oneshot (ctx=0x55555688bfc0, 
cb=cb@entry=0x5555558d5130 <virtio_blk_data_plane_stop_bh>, 
opaque=opaque@entry=0x555556de86f0)
      at /home/mdroth/w/qemu.git/util/aio-wait.c:71
  #13 0x00005555558d59bf in virtio_blk_data_plane_stop (vdev=<optimized out>)
      at /home/mdroth/w/qemu.git/hw/block/dataplane/virtio-blk.c:288
  #14 0x0000555555b906a1 in virtio_bus_stop_ioeventfd 
(bus=bus@entry=0x555556dbcf38)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio-bus.c:245
  #15 0x0000555555b90dbb in virtio_bus_stop_ioeventfd 
(bus=bus@entry=0x555556dbcf38)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio-bus.c:237
  #16 0x0000555555b92a8e in virtio_pci_stop_ioeventfd (proxy=0x555556db4e40)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio-pci.c:292
  #17 0x0000555555b92a8e in virtio_write_config (pci_dev=0x555556db4e40, 
address=<optimized out>, val=1048832, len=<optimized out>)
      at /home/mdroth/w/qemu.git/hw/virtio/virtio-pci.c:613

I.e. the calling code is only scheduling a one-shot BH for
virtio_blk_data_plane_stop_bh, but somehow we end up trying to process
an additional virtqueue entry before we get there. This is likely due
to the following check in virtio_queue_host_notifier_aio_poll:

  static bool virtio_queue_host_notifier_aio_poll(void *opaque)
  {
      EventNotifier *n = opaque;
      VirtQueue *vq = container_of(n, VirtQueue, host_notifier);
      bool progress;

      if (!vq->vring.desc || virtio_queue_empty(vq)) {
          return false;
      }

      progress = virtio_queue_notify_aio_vq(vq);

namely the call to virtio_queue_empty(). In this case, since no new
requests have actually been issued, shadow_avail_idx == last_avail_idx,
so we actually try to access the vring via vring_avail_idx() to get
the latest non-shadowed idx:

  int virtio_queue_empty(VirtQueue *vq)
  {
      bool empty;
      ...

      if (vq->shadow_avail_idx != vq->last_avail_idx) {
          return 0;
      }

      rcu_read_lock();
      empty = vring_avail_idx(vq) == vq->last_avail_idx;
      rcu_read_unlock();
      return empty;

but since the IOMMU region has been disabled we get a bogus value (0
usually), which causes virtio_queue_empty() to falsely report that
there are entries to be processed, which causes errors such as:

  "virtio: zero sized buffers are not allowed"

or

  "virtio-blk missing headers"

and puts the device in an error state.

This patch works around the issue by introducing virtio_set_disabled(),
which sets a 'disabled' flag to bypass checks like virtio_queue_empty()
when bus-mastering is disabled. Since we'd check this flag at all the
same sites as vdev->broken, we replace those checks with an inline
function which checks for either vdev->broken or vdev->disabled.

The 'disabled' flag is only migrated when set, which should be fairly
rare, but to maintain migration compatibility we disable it's use for
older machine types. Users requiring the use of the flag in conjunction
with older machine types can set it explicitly as a virtio-device
option.

NOTES:

 - This leaves some other oddities in play, like the fact that
   DRIVER_OK also gets unset in response to bus-mastering being
   disabled, but not restored (however the device seems to continue
   working)
 - Similarly, we disable the host notifier via
   virtio_bus_stop_ioeventfd(), which seems to move the handling out
   of virtio-blk dataplane and back into the main IO thread, and it
   ends up staying there till a reset (but otherwise continues working
   normally)

Cc: David Gibson <address@hidden>,
Cc: Alexey Kardashevskiy <address@hidden>
Cc: "Michael S. Tsirkin" <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 6620801f39f0cd02b30ab5ad8729c92c78ce9fd3
      
https://github.com/qemu/qemu/commit/6620801f39f0cd02b30ab5ad8729c92c78ce9fd3
  Author: Micky Yun Chan <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M contrib/vhost-user-blk/vhost-user-blk.c
    M docs/interop/vhost-user.json
    M docs/interop/vhost-user.rst

  Log Message:
  -----------
  Implement backend program convention command for vhost-user-blk

This patch is to add standard commands defined in docs/interop/vhost-user.rst
For vhost-user-* program

Signed-off-by: Micky Yun Chan (michiboo) <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d0435bc513e23a4961b6af20164d1c6c219eb4ea
      
https://github.com/qemu/qemu/commit/d0435bc513e23a4961b6af20164d1c6c219eb4ea
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    M hw/virtio/virtio.c
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio: don't enable notifications during polling

Virtqueue notifications are not necessary during polling, so we disable
them.  This allows the guest driver to avoid MMIO vmexits.
Unfortunately the virtio-blk and virtio-scsi handler functions re-enable
notifications, defeating this optimization.

Fix virtio-blk and virtio-scsi emulation so they leave notifications
disabled.  The key thing to remember for correctness is that polling
always checks one last time after ending its loop, therefore it's safe
to lose the race when re-enabling notifications at the end of polling.

There is a measurable performance improvement of 5-10% with the null-co
block driver.  Real-life storage configurations will see a smaller
improvement because the MMIO vmexit overhead contributes less to
latency.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 244b3f4485a07c7ce4b7123d6ce9d8c6012756e8
      
https://github.com/qemu/qemu/commit/244b3f4485a07c7ce4b7123d6ce9d8c6012756e8
  Author: Tao Xu <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/core/machine.c
    M hw/core/numa.c
    M include/sysemu/numa.h
    M qapi/machine.json
    M qemu-options.hx

  Log Message:
  -----------
  numa: Extend CLI to provide initiator information for numa nodes

In ACPI 6.3 chapter 5.2.27 Heterogeneous Memory Attribute Table (HMAT),
The initiator represents processor which access to memory. And in 5.2.27.3
Memory Proximity Domain Attributes Structure, the attached initiator is
defined as where the memory controller responsible for a memory proximity
domain. With attached initiator information, the topology of heterogeneous
memory can be described. Add new machine property 'hmat' to enable all
HMAT specific options.

Extend CLI of "-numa node" option to indicate the initiator numa node-id.
In the linux kernel, the codes in drivers/acpi/hmat/hmat.c parse and report
the platform's HMAT tables. Before using initiator option, enable HMAT with
-machine hmat=on.

Acked-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Jingqi Liu <address@hidden>
Suggested-by: Dan Williams <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 9b12dfa03a94d7f7a4b54eb67229a31e58193384
      
https://github.com/qemu/qemu/commit/9b12dfa03a94d7f7a4b54eb67229a31e58193384
  Author: Liu Jingqi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/core/numa.c
    M include/sysemu/numa.h
    M qapi/machine.json
    M qemu-options.hx

  Log Message:
  -----------
  numa: Extend CLI to provide memory latency and bandwidth information

Add -numa hmat-lb option to provide System Locality Latency and
Bandwidth Information. These memory attributes help to build
System Locality Latency and Bandwidth Information Structure(s)
in ACPI Heterogeneous Memory Attribute Table (HMAT). Before using
hmat-lb option, enable HMAT with -machine hmat=on.

Acked-by: Markus Armbruster <address@hidden>
Signed-off-by: Liu Jingqi <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>


  Commit: c412a48d4d91e8f8b89aae02de0f44f1f0b729e5
      
https://github.com/qemu/qemu/commit/c412a48d4d91e8f8b89aae02de0f44f1f0b729e5
  Author: Liu Jingqi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/core/numa.c
    M include/sysemu/numa.h
    M qapi/machine.json
    M qemu-options.hx

  Log Message:
  -----------
  numa: Extend CLI to provide memory side cache information

Add -numa hmat-cache option to provide Memory Side Cache Information.
These memory attributes help to build Memory Side Cache Information
Structure(s) in ACPI Heterogeneous Memory Attribute Table (HMAT).
Before using hmat-cache option, enable HMAT with -machine hmat=on.

Acked-by: Markus Armbruster <address@hidden>
Signed-off-by: Liu Jingqi <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>


  Commit: e6f123c3b81241be33f1b763d0ff8b36d1ae9c1e
      
https://github.com/qemu/qemu/commit/e6f123c3b81241be33f1b763d0ff8b36d1ae9c1e
  Author: Liu Jingqi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/acpi/Kconfig
    M hw/acpi/Makefile.objs
    A hw/acpi/hmat.c
    A hw/acpi/hmat.h
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  hmat acpi: Build Memory Proximity Domain Attributes Structure(s)

HMAT is defined in ACPI 6.3: 5.2.27 Heterogeneous Memory Attribute Table
(HMAT). The specification references below link:
http://www.uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf

It describes the memory attributes, such as memory side cache
attributes and bandwidth and latency details, related to the
Memory Proximity Domain. The software is
expected to use this information as hint for optimization.

This structure describes Memory Proximity Domain Attributes by memory
subsystem and its associativity with processor proximity domain as well as
hint for memory usage.

In the linux kernel, the codes in drivers/acpi/hmat/hmat.c parse and report
the platform's HMAT tables.

Acked-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Daniel Black <address@hidden>
Reviewed-by: Jonathan Cameron <address@hidden>
Signed-off-by: Liu Jingqi <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4586a2cb833f80b19c80ebe364a005ac2fa0974a
      
https://github.com/qemu/qemu/commit/4586a2cb833f80b19c80ebe364a005ac2fa0974a
  Author: Liu Jingqi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/acpi/hmat.c

  Log Message:
  -----------
  hmat acpi: Build System Locality Latency and Bandwidth Information 
Structure(s)

This structure describes the memory access latency and bandwidth
information from various memory access initiator proximity domains.
The latency and bandwidth numbers represented in this structure
correspond to rated latency and bandwidth for the platform.
The software could use this information as hint for optimization.

Acked-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Liu Jingqi <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a9c2b841af002db6e21e1297c9026b63fc22c875
      
https://github.com/qemu/qemu/commit/a9c2b841af002db6e21e1297c9026b63fc22c875
  Author: Liu Jingqi <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/acpi/hmat.c

  Log Message:
  -----------
  hmat acpi: Build Memory Side Cache Information Structure(s)

This structure describes memory side cache information for memory
proximity domains if the memory side cache is present and the
physical device forms the memory side cache.
The software could use this information to effectively place
the data in memory to maximize the performance of the system
memory that use the memory side cache.

Acked-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Daniel Black <address@hidden>
Reviewed-by: Jonathan Cameron <address@hidden>
Signed-off-by: Liu Jingqi <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d00817c944ed15fbe4a61d44fe7f9fe166c7df88
      
https://github.com/qemu/qemu/commit/d00817c944ed15fbe4a61d44fe7f9fe166c7df88
  Author: Tao Xu <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M tests/numa-test.c

  Log Message:
  -----------
  tests/numa: Add case for QMP build HMAT

Check configuring HMAT usecase

Acked-by: Markus Armbruster <address@hidden>
Suggested-by: Igor Mammedov <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>


  Commit: 1c8f85d93d261dc555a0aad6f54f2b5e8009d859
      
https://github.com/qemu/qemu/commit/1c8f85d93d261dc555a0aad6f54f2b5e8009d859
  Author: Tao Xu <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M tests/bios-tables-test-allowed-diff.h
    M tests/bios-tables-test.c
    A tests/data/acpi/pc/APIC.acpihmat
    A tests/data/acpi/pc/DSDT.acpihmat
    A tests/data/acpi/pc/HMAT.acpihmat
    A tests/data/acpi/pc/SRAT.acpihmat
    A tests/data/acpi/q35/APIC.acpihmat
    A tests/data/acpi/q35/DSDT.acpihmat
    A tests/data/acpi/q35/HMAT.acpihmat
    A tests/data/acpi/q35/SRAT.acpihmat

  Log Message:
  -----------
  tests/bios-tables-test: add test cases for ACPI HMAT

ACPI table HMAT has been introduced, QEMU now builds HMAT tables for
Heterogeneous Memory with boot option '-numa node'.

Add test cases on PC and Q35 machines with 2 numa nodes.
Because HMAT is generated when system enable numa, the
following tables need to be added for this test:
    tests/data/acpi/pc/APIC.acpihmat
    tests/data/acpi/pc/SRAT.acpihmat
    tests/data/acpi/pc/HMAT.acpihmat
    tests/data/acpi/pc/DSDT.acpihmat
    tests/data/acpi/q35/APIC.acpihmat
    tests/data/acpi/q35/SRAT.acpihmat
    tests/data/acpi/q35/HMAT.acpihmat
    tests/data/acpi/q35/DSDT.acpihmat

Acked-by: Markus Armbruster <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Daniel Black <address@hidden>
Reviewed-by: Jingqi Liu <address@hidden>
Suggested-by: Igor Mammedov <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 48892c6c8def6624a0ed57e2bd6c2a0a9878b973
      
https://github.com/qemu/qemu/commit/48892c6c8def6624a0ed57e2bd6c2a0a9878b973
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M tests/bios-tables-test-allowed-diff.h
    M tests/data/acpi/pc/APIC.acpihmat
    M tests/data/acpi/pc/DSDT.acpihmat
    M tests/data/acpi/pc/HMAT.acpihmat
    M tests/data/acpi/pc/SRAT.acpihmat
    M tests/data/acpi/q35/APIC.acpihmat
    M tests/data/acpi/q35/DSDT.acpihmat
    M tests/data/acpi/q35/HMAT.acpihmat
    M tests/data/acpi/q35/SRAT.acpihmat

  Log Message:
  -----------
  ACPI: add expected files for HMAT tests (acpihmat)

Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 351da8323a3152a21dd0c8de2f583464ff406d26
      
https://github.com/qemu/qemu/commit/351da8323a3152a21dd0c8de2f583464ff406d26
  Author: Jean-Philippe Brucker <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/virtio/virtio-mmio.c

  Log Message:
  -----------
  virtio-mmio: Clear v2 transport state on soft reset

At the moment when the guest writes a status of 0, we only reset the
virtio core state but not the virtio-mmio state. The virtio-mmio
specification says (v1.1 cs01, 4.2.2.1 Device Requirements:
MMIO Device Register Layout):

    Upon reset, the device MUST clear all bits in InterruptStatus and
    ready bits in the QueueReady register for all queues in the device.

The core already takes care of InterruptStatus by clearing isr, but we
still need to clear QueueReady.

It would be tempting to clean all registers, but since the specification
doesn't say anything more, guests could rely on the registers keeping
their state across reset. Linux for example, relies on this for
GuestPageSize in the legacy MMIO tranport.

Fixes: 44e687a4d9ab ("virtio-mmio: implement modern (v2) personality 
(virtio-1)")
Signed-off-by: Jean-Philippe Brucker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4ce537a7165a33a09f47587299f39f6fe647cde8
      
https://github.com/qemu/qemu/commit/4ce537a7165a33a09f47587299f39f6fe647cde8
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/pci/pci_host.c

  Log Message:
  -----------
  hw/pci/pci_host: Remove redundant PCI_DPRINTF()

In commit 3bf4dfdd111 we introduced the pci_cfg_[read/write]
trace events in pci_host_config_[read/write]_common().
We have the following call trace:

  pci_host_data_[read/write]()
    - PCI_DPRINTF()
    - pci_data_[read/write]()
        - PCI_DPRINTF()
        - pci_host_config_[read/write]_common()
            trace_pci_cfg_[read/write]()

Since the PCI_DPRINTF() calls are redundant with the trace
events, remove them.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f2a7e8f170252081ff48b99f34dbd1f0211d7938
      
https://github.com/qemu/qemu/commit/f2a7e8f170252081ff48b99f34dbd1f0211d7938
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/pci/pci_host.c
    M include/hw/pci/pci_host.h

  Log Message:
  -----------
  hw/pci/pci_host: Let pci_data_[read/write] use unsigned 'size' argument

Both functions are called by MemoryRegionOps.[read/write] handlers
with unsigned 'size' argument. Both functions call
pci_host_config_[read/write]_common() which expect a uint32_t 'len'
parameter (also unsigned).
Since it is pointless (and confuse) to use a signed value, use a
unsigned type.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d91d57e604edc128be302b60dabba6a34f0e0f0f
      
https://github.com/qemu/qemu/commit/d91d57e604edc128be302b60dabba6a34f0e0f0f
  Author: Raphael Norwitz <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M docs/interop/vhost-user.rst
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  vhost-user: add VHOST_USER_RESET_DEVICE to reset devices

Add a VHOST_USER_RESET_DEVICE message which will reset the vhost user
backend. Disabling all rings, and resetting all internal state, ready
for the backend to be reinitialized.

A backend has to report it supports this features with the
VHOST_USER_PROTOCOL_F_RESET_DEVICE protocol feature bit. If it does
so, the new message is used instead of sending a RESET_OWNER which has
had inconsistent implementations.

Signed-off-by: David Vrabel <address@hidden>
Signed-off-by: Raphael Norwitz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f0472439383bb5bf5d760fb96e084beccbec03e4
      
https://github.com/qemu/qemu/commit/f0472439383bb5bf5d760fb96e084beccbec03e4
  Author: Raphael Norwitz <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/scsi/vhost-user-scsi.c

  Log Message:
  -----------
  vhost-user-scsi: reset the device if supported

If the vhost-user-scsi backend supports the VHOST_USER_F_RESET_DEVICE
protocol feature, then the device can be reset when requested.

If this feature is not supported, do not try a reset as this will send
a VHOST_USER_RESET_OWNER that the backend is not expecting,
potentially putting into an inoperable state.

Signed-off-by: David Vrabel <address@hidden>
Signed-off-by: Raphael Norwitz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d940208cbbbecd52bb6bac539c5e486bcc07abba
      
https://github.com/qemu/qemu/commit/d940208cbbbecd52bb6bac539c5e486bcc07abba
  Author: Denis Plotnikov <address@hidden>
  Date:   2020-01-05 (Sun, 05 Jan 2020)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c

  Log Message:
  -----------
  hw: fix using 4.2 compat in 5.0 machine types for i440fx/q35

5.0 machine type uses 4.2 compats. This seems to be incorrect, since
the latests machine type by now is 5.0 and it should use its own
compat or shouldn't use any relying on the defaults.
Seems, like this appeared because of some problems on merge/rebase.

Signed-off-by: Denis Plotnikov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 1bf8a989a566b2ba41c197004ec2a02562a766a4
      
https://github.com/qemu/qemu/commit/1bf8a989a566b2ba41c197004ec2a02562a766a4
  Author: Denis Plotnikov <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/block/virtio-blk.c
    M hw/core/machine.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/virtio-scsi.c
    M include/hw/virtio/virtio-blk.h
    M include/hw/virtio/virtio-scsi.h

  Log Message:
  -----------
  virtio: make seg_max virtqueue size dependent

Before the patch, seg_max parameter was immutable and hardcoded
to 126 (128 - 2) without respect to queue size. This has two negative effects:

1. when queue size is < 128, we have Virtio 1.1 specfication violation:
   (2.6.5.3.1 Driver Requirements) seq_max must be <= queue_size.
   This violation affects the old Linux guests (ver < 4.14). These guests
   crash on these queue_size setups.

2. when queue_size > 128, as was pointed out by Denis Lunev <address@hidden>,
   seg_max restrics guest's block request length which affects guests'
   performance making them issues more block request than needed.
   https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03721.html

To mitigate this two effects, the patch adds the property adjusting seg_max
to queue size automaticaly. Since seg_max is a guest visible parameter,
the property is machine type managable and allows to choose between
old (seg_max = 126 always) and new (seg_max = queue_size - 2) behaviors.

Not to change the behavior of the older VMs, prevent setting the default
seg_max_adjust value for older machine types.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Denis Plotnikov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: cec0242ab49d179c811d58b8c9c13d4e22e0e9c8
      
https://github.com/qemu/qemu/commit/cec0242ab49d179c811d58b8c9c13d4e22e0e9c8
  Author: Denis Plotnikov <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    A tests/acceptance/virtio_seg_max_adjust.py

  Log Message:
  -----------
  tests: add virtio-scsi and virtio-blk seg_max_adjust test

It tests proper seg_max_adjust settings for all machine types except
'none', 'isapc', 'microvm'

Signed-off-by: Denis Plotnikov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 1049f4c62c4070618cc5defc9963c6a17ae7a5ae
      
https://github.com/qemu/qemu/commit/1049f4c62c4070618cc5defc9963c6a17ae7a5ae
  Author: Denis Plotnikov <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/virtio/virtio-mmio.c

  Log Message:
  -----------
  virtio-mmio: update queue size on guest write

Some guests read back queue size after writing it.
Always update the on size write otherwise they might be confused.

Cc: address@hidden
Signed-off-by: Denis Plotnikov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 421afd2fe8dd4603216cbf36081877c391f5a2a4
      
https://github.com/qemu/qemu/commit/421afd2fe8dd4603216cbf36081877c391f5a2a4
  Author: Yuri Benditovich <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: reset region cache when on queue deletion

https://bugzilla.redhat.com/show_bug.cgi?id=1708480
Fix leak of region reference that prevents complete
device deletion on hot unplug.

Cc: address@hidden
Signed-off-by: Yuri Benditovich <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d945d9f1731244ef341f74ede93120fc9de35913
      
https://github.com/qemu/qemu/commit/d945d9f1731244ef341f74ede93120fc9de35913
  Author: Yuri Benditovich <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/net/virtio-net.c

  Log Message:
  -----------
  virtio-net: delete also control queue when TX/RX deleted

https://bugzilla.redhat.com/show_bug.cgi?id=1708480
If the control queue is not deleted together with TX/RX, it
later will be ignored in freeing cache resources and hot
unplug will not be completed.

Cc: address@hidden
Signed-off-by: Yuri Benditovich <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a2e1cd41ccfe796529abfd1b6aeb1dd4393762a2
      
https://github.com/qemu/qemu/commit/a2e1cd41ccfe796529abfd1b6aeb1dd4393762a2
  Author: Liu Yi L <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: a fix to vtd_find_as_from_bus_num()

Ensure the return value of vtd_find_as_from_bus_num() is NULL by
enforcing vtd_bus=NULL. This would help caller of vtd_find_as_from_bus_num()
to decide if any further operation on the returned vtd_bus.

Cc: address@hidden
Cc: Kevin Tian <address@hidden>
Cc: Jacob Pan <address@hidden>
Cc: Peter Xu <address@hidden>
Cc: Yi Sun <address@hidden>
Signed-off-by: Liu Yi L <address@hidden>
Signed-off-by: Yi Sun <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 56fc1e6ac6bde95bc0369d358587f2234d4dddad
      
https://github.com/qemu/qemu/commit/56fc1e6ac6bde95bc0369d358587f2234d4dddad
  Author: Liu Yi L <address@hidden>
  Date:   2020-01-06 (Mon, 06 Jan 2020)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h

  Log Message:
  -----------
  intel_iommu: add present bit check for pasid table entries

The present bit check for pasid entry (pe) and pasid directory
entry (pdire) were missed in previous commits as fpd bit check
doesn't require present bit as "Set". This patch adds the present
bit check for callers which wants to get a valid pe/pdire.

Cc: address@hidden
Cc: Kevin Tian <address@hidden>
Cc: Jacob Pan <address@hidden>
Cc: Peter Xu <address@hidden>
Cc: Yi Sun <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Signed-off-by: Liu Yi L <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 973d306dd64bba7fc13f7e8b12ef43c089243d31
      
https://github.com/qemu/qemu/commit/973d306dd64bba7fc13f7e8b12ef43c089243d31
  Author: Peter Maydell <address@hidden>
  Date:   2020-01-07 (Tue, 07 Jan 2020)

  Changed paths:
    M contrib/vhost-user-blk/vhost-user-blk.c
    M docs/interop/vhost-user.json
    M docs/interop/vhost-user.rst
    M hw/acpi/Kconfig
    M hw/acpi/Makefile.objs
    A hw/acpi/hmat.c
    A hw/acpi/hmat.h
    M hw/block/virtio-blk.c
    M hw/char/virtio-serial-bus.c
    M hw/core/machine.c
    M hw/core/numa.c
    M hw/i386/acpi-build.c
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/input/virtio-input.c
    M hw/net/virtio-net.c
    M hw/pci/pci_host.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/scsi/virtio-scsi.c
    M hw/virtio/vhost-user.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio-mmio.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/pci/pci_host.h
    M include/hw/virtio/virtio-blk.h
    M include/hw/virtio/virtio-scsi.h
    M include/hw/virtio/virtio.h
    M include/sysemu/numa.h
    M qapi/machine.json
    M qemu-options.hx
    A tests/acceptance/virtio_seg_max_adjust.py
    M tests/bios-tables-test.c
    A tests/data/acpi/pc/APIC.acpihmat
    A tests/data/acpi/pc/DSDT.acpihmat
    A tests/data/acpi/pc/HMAT.acpihmat
    A tests/data/acpi/pc/SRAT.acpihmat
    A tests/data/acpi/q35/APIC.acpihmat
    A tests/data/acpi/q35/DSDT.acpihmat
    A tests/data/acpi/q35/HMAT.acpihmat
    A tests/data/acpi/q35/SRAT.acpihmat
    M tests/numa-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

virtio, pci, pc: fixes, features

Bugfixes all over the place.
HMAT support.
New flags for vhost-user-blk utility.
Auto-tuning of seg max for virtio storage.

Signed-off-by: Michael S. Tsirkin <address@hidden>

# gpg: Signature made Mon 06 Jan 2020 17:05:05 GMT
# gpg:                using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>" [full]
# gpg:                 aka "Michael S. Tsirkin <address@hidden>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream: (32 commits)
  intel_iommu: add present bit check for pasid table entries
  intel_iommu: a fix to vtd_find_as_from_bus_num()
  virtio-net: delete also control queue when TX/RX deleted
  virtio: reset region cache when on queue deletion
  virtio-mmio: update queue size on guest write
  tests: add virtio-scsi and virtio-blk seg_max_adjust test
  virtio: make seg_max virtqueue size dependent
  hw: fix using 4.2 compat in 5.0 machine types for i440fx/q35
  vhost-user-scsi: reset the device if supported
  vhost-user: add VHOST_USER_RESET_DEVICE to reset devices
  hw/pci/pci_host: Let pci_data_[read/write] use unsigned 'size' argument
  hw/pci/pci_host: Remove redundant PCI_DPRINTF()
  virtio-mmio: Clear v2 transport state on soft reset
  ACPI: add expected files for HMAT tests (acpihmat)
  tests/bios-tables-test: add test cases for ACPI HMAT
  tests/numa: Add case for QMP build HMAT
  hmat acpi: Build Memory Side Cache Information Structure(s)
  hmat acpi: Build System Locality Latency and Bandwidth Information 
Structure(s)
  hmat acpi: Build Memory Proximity Domain Attributes Structure(s)
  numa: Extend CLI to provide memory side cache information
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/0cb04061728a...973d306dd64b



reply via email to

[Prev in Thread] Current Thread [Next in Thread]