qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 2f2b18: pcie: set link state inactive/active


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 2f2b18: pcie: set link state inactive/active after hot unp...
Date: Fri, 21 Dec 2018 07:49:28 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2f2b18f60bf17453b4c01197a9316615a3c1f1de
      
https://github.com/qemu/qemu/commit/2f2b18f60bf17453b4c01197a9316615a3c1f1de
  Author: Zheng Xiang <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/pci/pcie.c

  Log Message:
  -----------
  pcie: set link state inactive/active after hot unplug/plug

When VM boots from the latest version of linux kernel, after
hot-unpluging virtio-blk disks which are hotplugged into
pcie-root-port, the VM's dmesg log shows:

[  151.046242] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0001 from Slot 
Status
[  151.046365] pciehp 0000:00:05.0:pcie004: Slot(0-3): Attention button pressed
[  151.046369] pciehp 0000:00:05.0:pcie004: Slot(0-3): Powering off due to 
button press
[  151.046420] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  151.046425] pciehp 0000:00:05.0:pcie004: pciehp_green_led_blink: SLOTCTRL a8 
write cmd 200
[  151.046464] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  151.046468] pciehp 0000:00:05.0:pcie004: pciehp_set_attention_status: 
SLOTCTRL a8 write cmd c0
[  156.163421] pciehp 0000:00:05.0:pcie004: pciehp_get_power_status: SLOTCTRL 
a8 value read 2f1
[  156.163427] pciehp 0000:00:05.0:pcie004: pciehp_unconfigure_device: 
domain:bus:dev = 0000:06:00
[  156.198736] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  156.198772] pciehp 0000:00:05.0:pcie004: pciehp_power_off_slot: SLOTCTRL a8 
write cmd 400
[  157.224124] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0018 from Slot 
Status
[  157.224194] pciehp 0000:00:05.0:pcie004: pciehp_green_led_off: SLOTCTRL a8 
write cmd 300
[  157.224220] pciehp 0000:00:05.0:pcie004: pciehp_check_link_active: 
lnk_status = 2011
[  157.224223] pciehp 0000:00:05.0:pcie004: Slot(0-3): Link Up
[  157.224233] pciehp 0000:00:05.0:pcie004: pciehp_get_power_status: SLOTCTRL 
a8 value read 7f1
[  157.224281] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  157.224285] pciehp 0000:00:05.0:pcie004: pciehp_power_on_slot: SLOTCTRL a8 
write cmd 0
[  157.224300] pciehp 0000:00:05.0:pcie004: __pciehp_link_set: lnk_ctrl = 0
[  157.224336] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  157.224339] pciehp 0000:00:05.0:pcie004: pciehp_green_led_blink: SLOTCTRL a8 
write cmd 200
[  159.739294] pci 0000:06:00.0 id reading try 50 times with interval 20 ms to 
get ffffffff
[  159.739315] pciehp 0000:00:05.0:pcie004: pciehp_check_link_status: 
lnk_status = 2011
[  159.739318] pciehp 0000:00:05.0:pcie004: Failed to check link status
[  159.739371] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  159.739394] pciehp 0000:00:05.0:pcie004: pciehp_power_off_slot: SLOTCTRL a8 
write cmd 400
[  160.771426] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  160.771452] pciehp 0000:00:05.0:pcie004: pciehp_green_led_off: SLOTCTRL a8 
write cmd 300
[  160.771495] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  160.771499] pciehp 0000:00:05.0:pcie004: pciehp_set_attention_status: 
SLOTCTRL a8 write cmd 40
[  160.771535] pciehp 0000:00:05.0:pcie004: pending interrupts 0x0010 from Slot 
Status
[  160.771539] pciehp 0000:00:05.0:pcie004: pciehp_green_led_off: SLOTCTRL a8 
write cmd 300

After analyzing the log information, it seems that qemu doesn't
change the Link Status from active to inactive after hot-unplug.
This results in the abnormal log after the linux kernel commit
d331710ea78fea merged.

Furthermore, If I hotplug the same virtio-blk disk after hot-unplug,
the virtio-blk would turn on and then back off.

So this patch set the Link Status inactive after hot-unplug and
active after hot-plug.

Signed-off-by: Zheng Xiang <address@hidden>
Signed-off-by: Zheng Xiang <address@hidden>
Cc: Wang Haibin <address@hidden>
Cc: address@hidden
Reviewed-by: Marcel Apfelbaum <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 2b4e573c7c7b9a698ba6931ba456bbd8d3d8c84c
      
https://github.com/qemu/qemu/commit/2b4e573c7c7b9a698ba6931ba456bbd8d3d8c84c
  Author: Corey Minyard <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/acpi/piix4.c

  Log Message:
  -----------
  pc:piix4: Update smbus I/O space after a migration

Otherwise it won't be set up correctly and won't work after
miigration.

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


  Commit: a4ee4c8baa37154f42b4dc6a13fee79268d15238
      
https://github.com/qemu/qemu/commit/a4ee4c8baa37154f42b4dc6a13fee79268d15238
  Author: Eduardo Habkost <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/display/virtio-gpu-pci.c
    M hw/display/virtio-vga.c
    M hw/virtio/virtio-crypto-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: Helper for registering virtio device types

Introduce a helper for registering different flavours of virtio
devices.  Convert code to use the helper, but keep only the
existing generic types.  Transitional and non-transitional device
types will be added by another patch.

Acked-by: Andrea Bolognani <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f6e501a28ef9b69f6df6252160aa87876cc92a1a
      
https://github.com/qemu/qemu/commit/f6e501a28ef9b69f6df6252160aa87876cc92a1a
  Author: Eduardo Habkost <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    A tests/acceptance/virtio_version.py

  Log Message:
  -----------
  virtio: Provide version-specific variants of virtio PCI devices

Many of the current virtio-*-pci device types actually represent
3 different types of devices:
* virtio 1.0 non-transitional devices
* virtio 1.0 transitional devices
* virtio 0.9 ("legacy device" in virtio 1.0 terminology)

That would be just an annoyance if it didn't break our device/bus
compatibility QMP interfaces.  With these multi-purpose device
types, there's no way to tell management software that
transitional devices and legacy devices require a Conventional
PCI bus.

The multi-purpose device types would also prevent us from telling
management software what's the PCI vendor/device ID for them,
because their PCI IDs change at runtime depending on the bus
where they were plugged.

This patch adds separate device types for each of those virtio
device flavors:

- virtio-*-pci: the existing multi-purpose device types
  - Configurable using `disable-legacy` and `disable-modern`
    properties
  - Legacy driver support is automatically enabled/disabled
    depending on the bus where it is plugged
  - Supports Conventional PCI and PCI Express buses
    (but Conventional PCI is incompatible with
    disable-legacy=off)
  - Changes PCI vendor/device IDs at runtime
- virtio-*-pci-transitional: virtio-1.0 device supporting legacy drivers
  - Supports Conventional PCI buses only, because
    it has a PIO BAR
- virtio-*-pci-non-transitional: modern-only
  - Supports both Conventional PCI and PCI Express buses

The existing TYPE_* macros for these types will point to an
abstract base type, so existing casts in the code will keep
working for all variants.

A simple test script (tests/acceptance/virtio_version.py) is
included, to check if the new device types are equivalent to
using the `disable-legacy` and `disable-modern` options.

Acked-by: Andrea Bolognani <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: c7eaf9a08e989a0465643607ae26e8499f74c48c
      
https://github.com/qemu/qemu/commit/c7eaf9a08e989a0465643607ae26e8499f74c48c
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M tests/acpi-utils.c

  Log Message:
  -----------
  tests: Remove unused include

The "hw/smbios/smbios.h" include is not used, remove it.

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


  Commit: cc4d4cefcc1bd36f360c4671256024c2662653e6
      
https://github.com/qemu/qemu/commit/cc4d4cefcc1bd36f360c4671256024c2662653e6
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/smbios/smbios.c
    A hw/smbios/smbios_ipmi.h
    M hw/smbios/smbios_type_38-stub.c
    M hw/smbios/smbios_type_38.c
    R include/hw/smbios/ipmi.h

  Log Message:
  -----------
  hw/smbios: Restrict access to "hw/smbios/ipmi.h"

All the consumers of "hw/smbios/ipmi.h" are located in hw/smbios/.
There is no need to have this include publicly exposed,
reduce the visibility by moving it in hw/smbios/.

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


  Commit: 5aca89d194f66ed9ac2dfd47185d65c7b1a9f1e6
      
https://github.com/qemu/qemu/commit/5aca89d194f66ed9ac2dfd47185d65c7b1a9f1e6
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/smbios/smbios.c
    M hw/smbios/smbios_build.h
    R hw/smbios/smbios_ipmi.h
    M hw/smbios/smbios_type_38-stub.c
    M hw/smbios/smbios_type_38.c

  Log Message:
  -----------
  hw/smbios: Remove "smbios_ipmi.h"

This header only declare a single function: smbios_build_type_38_table().
We already have a header that declares such functions: "smbios_build.h".
Move the declaration and remove the header.

Reviewed-by: Corey Minyard <address@hidden>
Reviewed-by: Laszlo Ersek <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a2eb5c0cf7cc77736219015b840c5299499b1357
      
https://github.com/qemu/qemu/commit/a2eb5c0cf7cc77736219015b840c5299499b1357
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M MAINTAINERS
    M hw/arm/virt.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/smbios/smbios-stub.c
    M hw/smbios/smbios.c
    M hw/smbios/smbios_type_38.c
    A include/hw/firmware/smbios.h
    R include/hw/smbios/smbios.h
    M tests/bios-tables-test.c
    M vl.c

  Log Message:
  -----------
  hw/smbios: Move to the hw/firmware/ subdirectory

SMBIOS is just another firmware interface used by some QEMU models.
We will later introduce more firmware interfaces in this subdirectory.

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


  Commit: e7176cdbe4d5e4b68459af741d6493886e4dad29
      
https://github.com/qemu/qemu/commit/e7176cdbe4d5e4b68459af741d6493886e4dad29
  Author: Matthias Weckbecker <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/pci/pci_bridge.c

  Log Message:
  -----------
  hw/pci-bridge: Fix invalid free()

When loadvm'ing a *running* snapshot qemu crashes due to an invalid
free. It's fortunately caught early by glibc heap memory corruption
protection and qemu gets killed with SIGABRT.

Steps to reproduce:

1) Create VM (e.g w/ virsh define)
2) Start the VM and take a snapshot while it's running and having a
   PCI bridge attached
3) Destroy the VM and revert the running snapshot.

This commit fixes the issue.

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


  Commit: d96a0ac71c7a2332a00da1a496eae6bcb9948502
      
https://github.com/qemu/qemu/commit/d96a0ac71c7a2332a00da1a496eae6bcb9948502
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/pci/pcie.c
    M hw/vfio/pci.c
    M include/hw/pci/pcie_regs.h

  Log Message:
  -----------
  pcie: Create enums for link speed and width

In preparation for reporting higher virtual link speeds and widths,
create enums and macros to help us manage them.

Cc: Marcel Apfelbaum <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 727b48661f757678f7f42f557ddac072c5a49721
      
https://github.com/qemu/qemu/commit/727b48661f757678f7f42f557ddac072c5a49721
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  pci: Sync PCIe downstream port LNKSTA on read

The PCIe link speed and width between a downstream device and its
upstream port is negotiated on real hardware and susceptible to
dynamic changes due to signal issues and power management.  In the
emulated device case there is no real hardware link, but we still
might wish to have some consistency between endpoint and downstream
port via a virtual negotiation.  There is of course a real link for
assigned devices and this same virtual negotiation allows the
downstream port to match the endpoint, synchronizing on every read
to support underlying physical hardware dynamically adjusting the
link.

This negotiation is intentionally unidirectional for compatibility.
If the endpoint exceeds the capabilities of the downstream port or
there is no endpoint device, the downstream port reports negotiation
to its maximum speed and width, matching the previous case where
negotiation was absent.  De-tuning the endpoint to match a virtual
link doesn't seem to benefit anyone and is a condition we've thus
far reported without functional issues.

Note that PCI_EXP_LNKSTA is already ignored for migration
compatibility via pcie_cap_v1_fill().

Cc: Marcel Apfelbaum <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4695a2c50076879000ddde9f80d07bbcacfa0f26
      
https://github.com/qemu/qemu/commit/4695a2c50076879000ddde9f80d07bbcacfa0f26
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h
    M qapi/common.json

  Log Message:
  -----------
  qapi: Define PCIe link speed and width properties

Create properties to be able to define speeds and widths for PCIe
links.  The only tricky bit here is that our get and set callbacks
translate from the fixed QAPI automagic enums to those we define
in PCI code to represent the actual register segment value.

Cc: Eric Blake <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ea8cfdb5d19af45f98abe02844c7963dafec6e92
      
https://github.com/qemu/qemu/commit/ea8cfdb5d19af45f98abe02844c7963dafec6e92
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/pci-bridge/pcie_root_port.c
    M include/hw/pci/pcie_port.h

  Log Message:
  -----------
  pcie: Add link speed and width fields to PCIESlot

Add fields allowing the PCIe link speed and width of a PCIESlot to
be configured, with an instance_post_init callback on the root port
parent class to set defaults.  This allows child classes to set these
via properties or via their own instance_init callback, without
requiring all implementions to support arbitrary user selected values.

Cc: Marcel Apfelbaum <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3d67447fe7c295c7da75399b63e37cf0372509eb
      
https://github.com/qemu/qemu/commit/3d67447fe7c295c7da75399b63e37cf0372509eb
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/pci/pcie.c

  Log Message:
  -----------
  pcie: Fill PCIESlot link fields to support higher speeds and widths

Make use of the PCIESlot speed and width fields to update link
information beyond those configured in pcie_cap_v1_fill().  This is
only called for devices supporting a version 2 capability and
automatically skips any non-PCIESlot devices.  Only devices with
increased link values generate any visible config space differences.

Cc: Marcel Apfelbaum <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: c2a490e344b4e231cf9488c67df7ee46977b1ebe
      
https://github.com/qemu/qemu/commit/c2a490e344b4e231cf9488c67df7ee46977b1ebe
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  pcie: Allow generic PCIe root port to specify link speed and width

Allow users to experimentally specify speed and width values for the
generic PCIe root port.  Defaults remain at 2.5GT/s & x1 for
compatiblity with the intent to only support changing defaults via
machine types for now.

Note for libvirt testing that pcie-root-port controllers are given
default names like "pci.7" which don't play well with using the
"-set device.$name.$prop=$value" options accessible to us via
<qemu:commandline> options.  The solution is to add an <alias> to the
pcie-root-port <controller>, for example:

    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x15'/>
      <alias name='ua-gfx0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x5'/>
    </controller>

The "ua-" here is a mandatory prefix.  We can then use:

  <qemu:commandline>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.ua-gfx0.x-speed=8'/>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.ua-gfx0.x-width=16'/>
  </qemu:commandline>

or, without an alias, set globals such as:

  <qemu:commandline>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.x-speed=8'/>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.x-width=16'/>
  </qemu:commandline>

Cc: Marcel Apfelbaum <address@hidden>
Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d26e543891068254c4575567a31280be5881e49d
      
https://github.com/qemu/qemu/commit/d26e543891068254c4575567a31280be5881e49d
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/vfio/pci.c

  Log Message:
  -----------
  vfio/pci: Remove PCIe Link Status emulation

Now that the downstream port will virtually negotiate itself to the
link status of the downstream device, we can remove this emulation.
It's not clear that it was every terribly useful anyway.

Tested-by: Geoffrey McRae <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a09d2038cc5f8e45e2126461e5fb1eb9f4874be3
      
https://github.com/qemu/qemu/commit/a09d2038cc5f8e45e2126461e5fb1eb9f4874be3
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  pcie: Fast PCIe root ports for new machines

Change the default speed and width for new machine types to the
fastest and widest currently supported.  This should be compatible to
the PCIe 4.0 spec.  Pre-QEMU-4.0 machine types remain at 2.5GT/s, x1
width.

Cc: Marcel Apfelbaum <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 662b4b69bac99a5cf5f71f2bba7b688d7608250b
      
https://github.com/qemu/qemu/commit/662b4b69bac99a5cf5f71f2bba7b688d7608250b
  Author: Peter Xu <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: dump correct iova when failed

The iotlb.iova can be zero if failure really happened.  Dump the addr
instead.

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


  Commit: 095955b24d25715f38b78703dc0a295761bffaca
      
https://github.com/qemu/qemu/commit/095955b24d25715f38b78703dc0a295761bffaca
  Author: Peter Xu <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/trace-events

  Log Message:
  -----------
  intel_iommu: convert invalid traces into error reports

Report more *_invalid() tracepoints to error_report_once() so that we
can detect issues even without tracing enabled.  Drop those tracepoints.

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


  Commit: ccc23bb08a84f3709b08cc10ffd4e819832fae6d
      
https://github.com/qemu/qemu/commit/ccc23bb08a84f3709b08cc10ffd4e819832fae6d
  Author: Peter Xu <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  intel_iommu: dma read/write draining support

Support DMA read/write draining should be easy for existing VT-d
emulation since the emulation itself does not have any request queue
there so we don't need to do anything to flush the un-commited queue.
What we need to do is to declare the support.

These capabilities are required to pass Windows SVVP test program.  It
is verified that when with parameters "x-aw-bits=48,caching-mode=off"
we can pass the Windows SVVP test with this patch applied.  Otherwise
we'll fail with:
   IOMMU[0] - DWD (DMA write draining) not supported
  IOMMU[0] - DWD (DMA read draining) not supported
  Segment 0 has no DMA remapping capable IOMMU units

However since these bits are not declared support for QEMU<=3.1, we'll
need a compatibility bit for it and we turn this on by default only
for QEMU>=4.0.

Please refer to VT-d spec 6.5.4 for more information.

CC: Yu Wang <address@hidden>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1654550
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4b49b586c452f1df393f2d8ffdfb1516857801d2
      
https://github.com/qemu/qemu/commit/4b49b586c452f1df393f2d8ffdfb1516857801d2
  Author: Peter Xu <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: remove "x-" prefix for "aw-bits"

We're going to have 57bits aw-bits support sooner.  It's possibly time
to remove the "x-" prefix.

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


  Commit: cd5a5271088863c3eae317e8d214e5b98773dcb4
      
https://github.com/qemu/qemu/commit/cd5a5271088863c3eae317e8d214e5b98773dcb4
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  hw: acpi: The RSDP build API can return void

For both x86 and ARM architectures, the internal RSDP build API can
return void as the current return value is unused.

Signed-off-by: Samuel Ortiz <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4774866457a675a751c38fb0d9ed09113777ec15
      
https://github.com/qemu/qemu/commit/4774866457a675a751c38fb0d9ed09113777ec15
  Author: Igor Mammedov <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  hw: arm: acpi: Fix incorrect checksums in RSDP

When RSDP table was introduced (d4bec5d87), we calculated only legacy
checksum, and that was incorrect as it
 - specified rev=2 and forgot about extended checksum.
 - legacy checksum calculated on full table instead of the 1st 20 bytes

Fix it by adding extended checksum calculation and using correct
size for legacy checksum.

While at it use explicit constants to specify sub/full tables
sizes instead of relying on AcpiRsdpDescriptor size and fields offsets.
The follow up commits will convert this table to build_append_int_noprefix() 
API,
will use constants anyway and remove unused AcpiRsdpDescriptor structure.

Based on "[PATCH v5 05/24] hw: acpi: Implement XSDT support for  RSDP"
by Samuel Ortiz, who did it right in his impl.

Fixes: d4bec5d87 ("hw/arm/virt-acpi-build: Generate RSDP table")
Signed-off-by: Igor Mammedov <address@hidden>
CC: Ard Biesheuvel <address@hidden>
CC: Shannon Zhao <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
Reviewed-by: Samuel Ortiz <address@hidden>
Signed-off-by: Samuel Ortiz <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3bb3006a632da5b11ec7a154d5b819b8bfab8dab
      
https://github.com/qemu/qemu/commit/3bb3006a632da5b11ec7a154d5b819b8bfab8dab
  Author: Igor Mammedov <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

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

  Log Message:
  -----------
  hw: i386: Use correct RSDT length for checksum

AcpiRsdpDescriptor describes revision 2 RSDP table so using sizeof(*rsdp)
for checksum calculation isn't correct since we are adding extra 16 bytes.
But acpi_data_push() zeroes out table, so just by luck we are summing up
exta zeros which still yelds correct checksum.

Fix it up by explicitly stating table size instead of using
pointer arithmetics on stucture.

PS:
Extra 16 bytes are still wasted, but droping them will break migration
for machines older than 2.3 due to size mismatch, for 2.3 and older it's
not an issue since they are using resizable memory regions (a1666142d)
for ACPI blobs. So keep wasting memory to avoid breaking old machines.

Fixes: 72c194f7e (i386: ACPI table generation code from seabios)
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Samuel Ortiz <address@hidden>
Signed-off-by: Samuel Ortiz <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 5c5fce1ab5672a0a9a50c867114481a93298bf23
      
https://github.com/qemu/qemu/commit/5c5fce1ab5672a0a9a50c867114481a93298bf23
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  hw: arm: Carry RSDP specific data through AcpiRsdpData

That will allow us to generalize the ARM build_rsdp() routine to support
both legacy RSDP (The current i386 implementation) and extended RSDP
(The ARM implementation).

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


  Commit: 77321eaf15aacdd11cd6dd3efef0c6dd26629e7f
      
https://github.com/qemu/qemu/commit/77321eaf15aacdd11cd6dd3efef0c6dd26629e7f
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  hw: arm: Convert the RSDP build to the buid_append_foo() API

Instead of filling a mapped and packed C structure field in random order
and being careful about endianness and sizes, build_rsdp() now uses
build_append_int_noprefix() to compose RSDP table.

This makes reviewing and maintaining code easier as this is almost
matching 1:1 the ACPI spec itself.

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


  Commit: f10f38b87695f82ee332fb834e2dc38d579fb2f1
      
https://github.com/qemu/qemu/commit/f10f38b87695f82ee332fb834e2dc38d579fb2f1
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  hw: arm: Support both legacy and current RSDP build

We add the ability to build legacy or current RSDP tables, based on the
AcpiRsdpData revision field passed to build_rsdp().
Although arm/virt only uses RSDP v2, adding that capability to
build_rsdp will allow us to share the RSDP build code between ARM and x86.

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


  Commit: a46ce1c26d5c555b825e9486da422b1ab8f7faa1
      
https://github.com/qemu/qemu/commit/a46ce1c26d5c555b825e9486da422b1ab8f7faa1
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-19 (Wed, 19 Dec 2018)

  Changed paths:
    M hw/acpi/aml-build.c
    M hw/arm/virt-acpi-build.c
    M hw/i386/acpi-build.c
    M include/hw/acpi/aml-build.h

  Log Message:
  -----------
  hw: acpi: Export and share the ARM RSDP build

Now that build_rsdp() supports building both legacy and current RSDP
tables, we can move it to a generic folder (hw/acpi) and have the i386
ACPI code reuse it in order to reduce code duplication.

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


  Commit: d6caf3631cf561f814aa449bbf9bcb03b86acd2f
      
https://github.com/qemu/qemu/commit/d6caf3631cf561f814aa449bbf9bcb03b86acd2f
  Author: Samuel Ortiz <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M include/hw/acpi/acpi-defs.h
    M tests/acpi-utils.c
    M tests/acpi-utils.h
    M tests/bios-tables-test.c
    M tests/vmgenid-test.c

  Log Message:
  -----------
  hw: acpi: Remove AcpiRsdpDescriptor and fix tests

The only remaining AcpiRsdpDescriptor users are the ACPI utils for the
BIOS table tests.
We remove that dependency and can thus remove the structure itself.

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


  Commit: cc425b5ddfe8f8474814f369409e637c36898542
      
https://github.com/qemu/qemu/commit/cc425b5ddfe8f8474814f369409e637c36898542
  Author: Thomas Huth <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/i386/pc_piix.c
    M qemu-deprecated.texi
    M tests/cpu-plug-test.c

  Log Message:
  -----------
  hw/i386: Remove deprecated machines pc-0.10 and pc-0.11

They've been deprecated for two releases and nobody complained that they
are still required anymore, so it's time to remove these now.
And while we're at it, mark the other remaining old 0.x machine types
as deprecated (since they can not properly be used for live-migration
anyway).

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>


  Commit: 5571727a6368bd23d751336e261eaf1b32dd472d
      
https://github.com/qemu/qemu/commit/5571727a6368bd23d751336e261eaf1b32dd472d
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/pci/pcie.c
    M hw/pci/pcie_port.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pci/pcie: rename hotplug handler callbacks

The callbacks are also called for cold plugged devices. Drop the "hot"
to better match the actual callback names.

While at it, also rename  pcie_cap_slot_hotplug_common() to
pcie_cap_slot_plug_common().

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


  Commit: 851fedfbc514f33d867718febf45bf90c9bed341
      
https://github.com/qemu/qemu/commit/851fedfbc514f33d867718febf45bf90c9bed341
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/pci/shpc.c
    M include/hw/pci/shpc.h

  Log Message:
  -----------
  pci/shpc: rename hotplug handler callbacks

The callbacks are also called for cold plugged devices. Drop the "hot"
to better match the actual callback names.

While at it, also rename shpc_device_hotplug_common() to
shpc_device_plug_common().

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


  Commit: fa2a7751172b6228706decfbdddb6eac39052ab1
      
https://github.com/qemu/qemu/commit/fa2a7751172b6228706decfbdddb6eac39052ab1
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/s390x/s390-pci-bus.c

  Log Message:
  -----------
  s390x/pci: rename hotplug handler callbacks

The callbacks are also called for cold plugged devices. Drop the "hot"
to better match the actual callback names.

Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Pierre Morel<address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ec266f408882fd38475f72c4e864ed576228643b
      
https://github.com/qemu/qemu/commit/ec266f408882fd38475f72c4e864ed576228643b
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M include/hw/acpi/pcihp.h

  Log Message:
  -----------
  pci/pcihp: perform check for bus capability in pre_plug handler

Perform the check in the pre_plug handler. In addition, we need the
capability only if the device is actually hotplugged (and not created
during machine initialization). This is a preparation for coldplugging
pci devices via that hotplug handler.

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


  Commit: 3e5209265798af396b9f20bac58f203a743cc3f4
      
https://github.com/qemu/qemu/commit/3e5209265798af396b9f20bac58f203a743cc3f4
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c

  Log Message:
  -----------
  pci/pcihp: overwrite hotplug handler recursively from the start

For now, the hotplug handler is not called for devices that are
being cold plugged. The hotplug handler is setup when the machine
initialization is fully done. Only bridges that were cold plugged are
considered.

Set the hotplug handler for the root piix bus directly when realizing.
Overwrite the hotplug handler of bridges when coldplugging them.

This will now make sure that the ACPI PCI hotplug handler is also called
for cold plugged devices (also on bridges) but not for bridges that were
hotplugged (keeping the current behavior).

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


  Commit: c97adf3ccfbfbe6885fd9de7293162489d293d44
      
https://github.com/qemu/qemu/commit/c97adf3ccfbfbe6885fd9de7293162489d293d44
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M include/hw/acpi/pcihp.h

  Log Message:
  -----------
  pci/pcihp: perform unplug via the hotplug handler

Introduce and use the "unplug" callback.

This is a preparation for multi-stage hotplug handlers, whereby the bus
hotplug handler is overwritten by the machine hotplug handler. This handler
will then pass control to the bus hotplug handler. So to get this running
cleanly, we also have to make sure to go via the hotplug handler chain when
actually unplugging a device after an unplug request. Lookup the hotplug
handler and call "unplug".

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


  Commit: a1952d01e731856f5a9654508d6c9658796e40f7
      
https://github.com/qemu/qemu/commit/a1952d01e731856f5a9654508d6c9658796e40f7
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/pci/pcie.c
    M hw/pci/pcie_port.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pci/pcie: perform unplug via the hotplug handler

Introduce and use the "unplug" callback.

This is a preparation for multi-stage hotplug handlers, whereby the bus
hotplug handler is overwritten by the machine hotplug handler. This handler
will then pass control to the bus hotplug handler. So to get this running
cleanly, we also have to make sure to go via the hotplug handler chain when
actually unplugging a device after an unplug request. Lookup the hotplug
handler and call "unplug".

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


  Commit: 62b765639691de36476c471117e96184a2a3c7a6
      
https://github.com/qemu/qemu/commit/62b765639691de36476c471117e96184a2a3c7a6
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

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

  Log Message:
  -----------
  pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge

These functions are essentially the same, we only have to use
object_get_typename() for reporting errors. So let's share the
implementation of hotplug handler callbacks.

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


  Commit: 8f560cdce42562a3c41d61c896667cf77c76d51f
      
https://github.com/qemu/qemu/commit/8f560cdce42562a3c41d61c896667cf77c76d51f
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/pci/shpc.c
    M include/hw/pci/pci_bridge.h
    M include/hw/pci/shpc.h

  Log Message:
  -----------
  pci/shpc: perform unplug via the hotplug handler

Introduce and use the "unplug" callback.

This is a preparation for multi-stage hotplug handlers, whereby the bus
hotplug handler is overwritten by the machine hotplug handler. This handler
will then pass control to the bus hotplug handler. So to get this running
cleanly, we also have to make sure to go via the hotplug handler chain when
actually unplugging a device after an unplug request. Lookup the hotplug
handler and call "unplug".

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


  Commit: 27c1da512994b34912dbb8d12982045da1450e65
      
https://github.com/qemu/qemu/commit/27c1da512994b34912dbb8d12982045da1450e65
  Author: David Hildenbrand <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: perform unplug via the hotplug handler

Introduce and use the "unplug" callback.

This is a preparation for multi-stage hotplug handlers, whereby the bus
hotplug handler is overwritten by the machine hotplug handler. This handler
will then pass control to the bus hotplug handler. So to get this running
cleanly, we also have to make sure to go via the hotplug handler chain when
actually unplugging a device after an unplug request. Lookup the hotplug
handler and call "unplug".

Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: David Gibson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: c2077e2ca0da75b6b97e2485a41b8168e2a387c2
      
https://github.com/qemu/qemu/commit/c2077e2ca0da75b6b97e2485a41b8168e2a387c2
  Author: Alex Williamson <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/pci/pci_host.c

  Log Message:
  -----------
  pci: Adjust PCI config limit based on bus topology

A conventional PCI bus does not support config space accesses above
the standard 256 byte configuration space.  PCIe-to-PCI bridges are
not permitted to forward transactions if the extended register address
field is non-zero and must handle it as an unsupported request (PCIe
bridge spec rev 1.0, 4.1.3, 4.1.4).  Therefore, we should not support
extended config space if there is a conventional bus anywhere on the
path to a device.

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


  Commit: b2fc91db84470a78f8e93f5b5f913c17188792c8
      
https://github.com/qemu/qemu/commit/b2fc91db84470a78f8e93f5b5f913c17188792c8
  Author: Peter Xu <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/core/machine.c
    M hw/i386/pc_q35.c
    M include/hw/boards.h

  Log Message:
  -----------
  q35: set split kernel irqchip as default

Starting from QEMU 4.0, let's specify "split" as the default value for
kernel-irqchip.

So for QEMU>=4.0 we'll have: allowed=Y,required=N,split=Y
   for QEMU<=3.1 we'll have: allowed=Y,required=N,split=N
   (omitting all the "kernel_irqchip_" prefix)

Note that this will let the default q35 machine type to depend on
Linux version 4.4 or newer because that's where split irqchip is
introduced in kernel.  But it's fine since we're boosting supported
Linux version for QEMU 4.0 to around Linux 4.5.  For more information
please refer to the discussion on AMD's RDTSCP:

  https://lore.kernel.org/lkml/address@hidden/

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a924b3d8df55a395891fd5ed341d0deb135d9aa6
      
https://github.com/qemu/qemu/commit/a924b3d8df55a395891fd5ed341d0deb135d9aa6
  Author: Peter Xu <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/i386/pc.c
    M hw/i386/x86-iommu.c
    M include/hw/i386/x86-iommu.h

  Log Message:
  -----------
  x86-iommu: switch intr_supported to OnOffAuto type

Switch the intr_supported variable from a boolean to OnOffAuto type so
that we can know whether the user specified it or not.  With that
we'll have a chance to help the user to choose more wisely where
possible.  Introduce x86_iommu_ir_supported() to mask these changes.

No functional change at all.

Signed-off-by: Peter Xu <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 47748bbba24d4f4680b77da3dc5b4da531cd17d4
      
https://github.com/qemu/qemu/commit/47748bbba24d4f4680b77da3dc5b4da531cd17d4
  Author: Peter Xu <address@hidden>
  Date:   2018-12-20 (Thu, 20 Dec 2018)

  Changed paths:
    M hw/i386/x86-iommu.c

  Log Message:
  -----------
  x86-iommu: turn on IR by default if proper

When the user didn't specify "intremap" for the IOMMU device, we turn
it on by default if it is supported.  This will turn IR on for the
default Q35 platform as long as the IOMMU device is specified on new
kernels.

Signed-off-by: Peter Xu <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 15763776bfc1017adfded6afaebe220bca582923
      
https://github.com/qemu/qemu/commit/15763776bfc1017adfded6afaebe220bca582923
  Author: Peter Maydell <address@hidden>
  Date:   2018-12-21 (Fri, 21 Dec 2018)

  Changed paths:
    M MAINTAINERS
    M hw/acpi/aml-build.c
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M hw/core/machine.c
    M hw/core/qdev-properties.c
    M hw/display/virtio-gpu-pci.c
    M hw/display/virtio-vga.c
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/trace-events
    M hw/i386/x86-iommu.c
    M hw/pci-bridge/gen_pcie_root_port.c
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/pci-bridge/pcie_root_port.c
    M hw/pci/pci.c
    M hw/pci/pci_bridge.c
    M hw/pci/pci_host.c
    M hw/pci/pcie.c
    M hw/pci/pcie_port.c
    M hw/pci/shpc.c
    M hw/ppc/spapr_pci.c
    M hw/s390x/s390-pci-bus.c
    M hw/smbios/smbios-stub.c
    M hw/smbios/smbios.c
    M hw/smbios/smbios_build.h
    M hw/smbios/smbios_type_38-stub.c
    M hw/smbios/smbios_type_38.c
    M hw/vfio/pci.c
    M hw/virtio/virtio-crypto-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    M include/hw/acpi/acpi-defs.h
    M include/hw/acpi/aml-build.h
    M include/hw/acpi/pcihp.h
    M include/hw/boards.h
    M include/hw/compat.h
    A include/hw/firmware/smbios.h
    M include/hw/i386/intel_iommu.h
    M include/hw/i386/pc.h
    M include/hw/i386/x86-iommu.h
    M include/hw/pci/pci.h
    M include/hw/pci/pci_bridge.h
    M include/hw/pci/pcie.h
    M include/hw/pci/pcie_port.h
    M include/hw/pci/pcie_regs.h
    M include/hw/pci/shpc.h
    M include/hw/qdev-properties.h
    R include/hw/smbios/ipmi.h
    R include/hw/smbios/smbios.h
    M qapi/common.json
    M qemu-deprecated.texi
    A tests/acceptance/virtio_version.py
    M tests/acpi-utils.c
    M tests/acpi-utils.h
    M tests/bios-tables-test.c
    M tests/cpu-plug-test.c
    M tests/vmgenid-test.c
    M vl.c

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

pci, pc, virtio: fixes, features

VTD fixes
IR and split irqchip are now the default for Q35
ACPI refactoring
hotplug refactoring
new names for virtio devices
multiple pcie link width/speeds
PCI fixes

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

# gpg: Signature made Thu 20 Dec 2018 18:26:03 GMT
# 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: (44 commits)
  x86-iommu: turn on IR by default if proper
  x86-iommu: switch intr_supported to OnOffAuto type
  q35: set split kernel irqchip as default
  pci: Adjust PCI config limit based on bus topology
  spapr_pci: perform unplug via the hotplug handler
  pci/shpc: perform unplug via the hotplug handler
  pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge
  pci/pcie: perform unplug via the hotplug handler
  pci/pcihp: perform unplug via the hotplug handler
  pci/pcihp: overwrite hotplug handler recursively from the start
  pci/pcihp: perform check for bus capability in pre_plug handler
  s390x/pci: rename hotplug handler callbacks
  pci/shpc: rename hotplug handler callbacks
  pci/pcie: rename hotplug handler callbacks
  hw/i386: Remove deprecated machines pc-0.10 and pc-0.11
  hw: acpi: Remove AcpiRsdpDescriptor and fix tests
  hw: acpi: Export and share the ARM RSDP build
  hw: arm: Support both legacy and current RSDP build
  hw: arm: Convert the RSDP build to the buid_append_foo() API
  hw: arm: Carry RSDP specific data through AcpiRsdpData
  ...

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


Compare: https://github.com/qemu/qemu/compare/41e2c56ed95d...15763776bfc1
      **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]