[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 2f2b18: pcie: set link state inactive/active after hot unp...,
GitHub <=