qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] dbb6da: pc: acpi: revert back to 1 SRAT entry


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] dbb6da: pc: acpi: revert back to 1 SRAT entry for hotplugg...
Date: Tue, 25 Sep 2018 00:18:01 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: dbb6da8ba7e02105bdbb33b527e088249c9843c8
      
https://github.com/qemu/qemu/commit/dbb6da8ba7e02105bdbb33b527e088249c9843c8
  Author: Igor Mammedov <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  pc: acpi: revert back to 1 SRAT entry for hotpluggable area

Commit
  10efd7e108 "pc: acpi: fix memory hotplug regression by reducing stub SRAT 
entry size"
attemped to fix hotplug regression introduced by
  848a1cc1e "hw/acpi-build: build SRAT memory affinity structures for DIMM 
devices"

fixed issue for Windows/3.0+ linux kernels, however it regressed 2.6 based
kernels (RHEL6) to the point where guest might crash at boot.
Reason is that 2.6 kernel discards SRAT table due too small last entry
which down the road leads to crashes. Hack I've tried in 10efd7e108 is also
not ACPI spec compliant according to which whole possible RAM should be
described in SRAT. Revert 10efd7e108 to fix regression for 2.6 based kernels.

With 10efd7e108 reverted, I've also tried splitting SRAT table statically
in different ways %/node and %/slot but Windows still fails to online
2nd pc-dimm hot-plugged into node 0 (as described in 10efd7e108) and
sometimes even coldplugged pc-dimms where affected with static SRAT
partitioning.
The only known so far way where Windows stays happy is when we have 1
SRAT entry in the last node covering all hotplug area.

Revert 848a1cc1e until we come up with a way to avoid regression
on Windows with hotplug area split in several entries.
Tested this with 2.6/3.0 based kernels (RHEL6/7) and WS20[08/12/12R2/16]).

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Laszlo Ersek <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: db812c4073c77c8a64db8d6663b3416a587c7b4a
      
https://github.com/qemu/qemu/commit/db812c4073c77c8a64db8d6663b3416a587c7b4a
  Author: Paolo Bonzini <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: update MemoryRegionCaches when guest negotiates features

Because the cache is sized to include the rings and the event indices,
negotiating the VIRTIO_RING_F_EVENT_IDX feature will result in the size
of the cache changing.  And because MemoryRegionCache accesses are
range-checked, if we skip this we end up with an assertion failure.
This happens with OpenBSD 6.3.

Reported-by: Fam Zheng <address@hidden>
Fixes: 97cd965c070152bc626c7507df9fb356bbe1cd81
Cc: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>
Tested-by: Fam Zheng <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 9e8993991ec002f36e642f9c24e80ab5845366f8
      
https://github.com/qemu/qemu/commit/9e8993991ec002f36e642f9c24e80ab5845366f8
  Author: Jing Liu <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/pci-bridge/gen_pcie_root_port.c
    M hw/pci/pci_bridge.c
    M include/hw/pci/pci_bridge.h

  Log Message:
  -----------
  hw/pci: factor PCI reserve resources to a separate structure

Factor "bus_reserve", "io_reserve", "mem_reserve", "pref32_reserve"
and "pref64_reserve" fields of the "GenPCIERootPort" structure out
to "PCIResReserve" structure, so that other PCI bridges can
reuse it to add resource reserve capability.

Signed-off-by: Jing Liu <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 6755e618d09a81a82ab67a6163ffc9a39e743d0b
      
https://github.com/qemu/qemu/commit/6755e618d09a81a82ab67a6163ffc9a39e743d0b
  Author: Jing Liu <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/pci-bridge/pci_bridge_dev.c

  Log Message:
  -----------
  hw/pci: add PCI resource reserve capability to legacy PCI bridge

Add hint to firmware (e.g. SeaBIOS) to reserve addtional
BUS/IO/MEM/PREF resource for legacy pci-pci bridge. Add the
resource reserve capability deleting in pci_bridge_dev_exitfn.

Signed-off-by: Jing Liu <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: c2d2a81b4196984fb74276826892838b5b69d92c
      
https://github.com/qemu/qemu/commit/c2d2a81b4196984fb74276826892838b5b69d92c
  Author: Igor Mammedov <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/acpi/cpu.c

  Log Message:
  -----------
  pc: make sure that guest isn't able to unplug the first cpu

The first cpu unplug wasn't ever supported and corresponding
monitor/qmp commands refuse to unplug it. However guest is able
to issue eject request either using following command:
  # echo 1 >/sys/devices/system/cpu/cpu0/firmware_node/eject
or directly writing to cpu hotplug registers, which makes
qemu crash with SIGSEGV following back trace:

   kvm_flush_coalesced_mmio_buffer ()
       while (ring->first != ring->last)
   ...
   qemu_flush_coalesced_mmio_buffer
   prepare_mmio_access
   flatview_read_continue
   flatview_read
   address_space_read_full
   address_space_rw
   kvm_cpu_exec(cpu!0)
   qemu_kvm_cpu_thread_fn

the reason for which is that ring == KVMState::coalesced_mmio_ring
happens to be a part of 1st CPU that was uplugged by guest.

Fix it by forbidding 1st cpu unplug from guest side and in addition
remove CPU0._EJ0 ACPI method to make clear that unplug of the first
CPU is not supported.

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


  Commit: fa4ae4be15fb08b37bec35139688ef563311d0b9
      
https://github.com/qemu/qemu/commit/fa4ae4be15fb08b37bec35139688ef563311d0b9
  Author: Yury Kotov <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M hw/virtio/vhost.c

  Log Message:
  -----------
  vhost: fix invalid downcast

virtio_queue_get_desc_addr returns 64-bit hwaddr while int is usually 32-bit.
If returned hwaddr is not equal to 0 but least-significant 32 bits are
equal to 0 then this code will not actually stop running queue.

Signed-off-by: Yury Kotov <address@hidden>
Acked-by: Jia He <address@hidden>
Cc: address@hidden
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d2a1b1d602986a5f02658f6d4fc9ed422f8ddebf
      
https://github.com/qemu/qemu/commit/d2a1b1d602986a5f02658f6d4fc9ed422f8ddebf
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M tests/acpi-test-data/pc/DSDT
    M tests/acpi-test-data/pc/DSDT.bridge
    M tests/acpi-test-data/pc/DSDT.cphp
    M tests/acpi-test-data/pc/DSDT.dimmpxm
    M tests/acpi-test-data/pc/DSDT.ipmikcs
    M tests/acpi-test-data/pc/DSDT.memhp
    M tests/acpi-test-data/pc/DSDT.numamem
    M tests/acpi-test-data/pc/SRAT.dimmpxm
    M tests/acpi-test-data/pc/SRAT.memhp
    M tests/acpi-test-data/q35/DSDT
    M tests/acpi-test-data/q35/DSDT.bridge
    M tests/acpi-test-data/q35/DSDT.cphp
    M tests/acpi-test-data/q35/DSDT.dimmpxm
    M tests/acpi-test-data/q35/DSDT.ipmibt
    M tests/acpi-test-data/q35/DSDT.memhp
    M tests/acpi-test-data/q35/DSDT.numamem
    M tests/acpi-test-data/q35/SRAT.dimmpxm
    M tests/acpi-test-data/q35/SRAT.memhp

  Log Message:
  -----------
  tests: update acpi expected files

Fixes: dbb6da8ba7e ("pc: acpi: revert back to 1 SRAT entry for hotpluggable 
area")
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7c823bc581621a73c4d6c49f1d528d44a9ffc183
      
https://github.com/qemu/qemu/commit/7c823bc581621a73c4d6c49f1d528d44a9ffc183
  Author: Peter Maydell <address@hidden>
  Date:   2018-09-24 (Mon, 24 Sep 2018)

  Changed paths:
    M hw/acpi/cpu.c
    M hw/i386/acpi-build.c
    M hw/pci-bridge/gen_pcie_root_port.c
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci/pci_bridge.c
    M hw/virtio/vhost.c
    M hw/virtio/virtio.c
    M include/hw/pci/pci_bridge.h
    M tests/acpi-test-data/pc/DSDT
    M tests/acpi-test-data/pc/DSDT.bridge
    M tests/acpi-test-data/pc/DSDT.cphp
    M tests/acpi-test-data/pc/DSDT.dimmpxm
    M tests/acpi-test-data/pc/DSDT.ipmikcs
    M tests/acpi-test-data/pc/DSDT.memhp
    M tests/acpi-test-data/pc/DSDT.numamem
    M tests/acpi-test-data/pc/SRAT.dimmpxm
    M tests/acpi-test-data/pc/SRAT.memhp
    M tests/acpi-test-data/q35/DSDT
    M tests/acpi-test-data/q35/DSDT.bridge
    M tests/acpi-test-data/q35/DSDT.cphp
    M tests/acpi-test-data/q35/DSDT.dimmpxm
    M tests/acpi-test-data/q35/DSDT.ipmibt
    M tests/acpi-test-data/q35/DSDT.memhp
    M tests/acpi-test-data/q35/DSDT.numamem
    M tests/acpi-test-data/q35/SRAT.dimmpxm
    M tests/acpi-test-data/q35/SRAT.memhp

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

pci, pc, virtio: fixes, features

pci resource capability + misc fixes everywhere.

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

# gpg: Signature made Fri 07 Sep 2018 22:50:38 BST
# gpg:                using RSA key 281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>"
# gpg:                 aka "Michael S. Tsirkin <address@hidden>"
# 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:
  tests: update acpi expected files
  vhost: fix invalid downcast
  pc: make sure that guest isn't able to unplug the first cpu
  hw/pci: add PCI resource reserve capability to legacy PCI bridge
  hw/pci: factor PCI reserve resources to a separate structure
  virtio: update MemoryRegionCaches when guest negotiates features
  pc: acpi: revert back to 1 SRAT entry for hotpluggable area

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


Compare: https://github.com/qemu/qemu/compare/741e1a618b12...7c823bc58162
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

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