mbox

[PULL,00/54] virtio,pc,pci: fixes,cleanups,features

Message ID 20220610075631.367501-1-mst@redhat.com
State New
Headers show

Pull-request

git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

Message

Michael S. Tsirkin June 10, 2022, 7:56 a.m. UTC
The following changes since commit 6d940eff4734bcb40b1a25f62d7cec5a396f994a:

  Merge tag 'pull-tpm-2022-06-07-1' of https://github.com/stefanberger/qemu-tpm into staging (2022-06-07 19:22:18 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

for you to fetch changes up to 397c2901bfd9ee531243b38b6a318edccb88ed65:

  crypto: Introduce RSA algorithm (2022-06-09 19:32:49 -0400)

----------------------------------------------------------------
virtio,pc,pci: fixes,cleanups,features

more CXL patches
VIOT
Igor's huge AML rework
fixes, cleanups all over the place

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

----------------------------------------------------------------
Changpeng Liu (2):
      hw/virtio/vhost-user: don't use uninitialized variable
      hw/vhost-user-scsi|blk: set `supports_config` flag correctly

Claudio Fontana (1):
      pci: fix overflow in snprintf string formatting

Igor Mammedov (35):
      acpi: add interface to build device specific AML
      acpi: make isa_build_aml() support AcpiDevAmlIf interface
      acpi: fdc-isa: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml
      acpi: parallel port: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml
      acpi: serial-is: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml
      acpi: mc146818rtc: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml
      acpi: pckbd: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml
      isa-bus: drop no longer used ISADeviceClass::build_aml
      tests: acpi: add and whitelist DSDT.ipmismbus expected blob
      tests: acpi: q35: add test for smbus-ipmi device
      tests: acpi: update expected blob DSDT.ipmismbus
      tests: acpi: whitelist DSDT.ipmismbus expected blob
      ipmi: acpi: use relative path to resource source
      tests: acpi: update expected DSDT.ipmismbus blob
      acpi: ich9-smb: add support for AcpiDevAmlIf interface
      acpi: ipmi: use AcpiDevAmlIf interface to build IPMI device descriptors
      q35: acpi: drop not needed PCMachineClass::do_not_add_smb_acpi
      tests: acpi: white-list to be re-factored pc/q35 DSDT
      acpi: pc: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors
      acpi: q35: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors
      tests: acpi: update expected blobs
      tests: acpi: add and white-list DSDT.applesmc expected blob
      tests: acpi: add applesmc testcase
      acpi: applesmc: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML
      tests: acpi: update expected blobs
      tests: acpi: white-lists expected DSDT.pvpanic-isa blob
      tests: acpi: add pvpanic-isa: testcase
      acpi: pvpanic-isa: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML
      tests: acpi: update expected DSDT.pvpanic-isa blob
      tests: acpi: white-list DSDT.tis.tpm2/DSDT.tis.tpm12 expected blobs
      acpi: pc/q35: tpm-tis: fix TPM device scope
      acpi: pc/q35: remove not needed 'if' condition on pci bus
      acpi: tpm-tis: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML
      tests: acpi: update expected DSDT.tis.tpm2/DSDT.tis.tpm12 blobs
      x86: acpi-build: do not include hw/isa/isa.h directly

Jonathan Cameron (9):
      hw/cxl: Make the CXL fixed memory window setup a machine parameter.
      hw/acpi/cxl: Pass in the CXLState directly rather than MachineState
      hw/cxl: Push linking of CXL targets into i386/pc rather than in machine.c
      tests/acpi: Allow modification of q35 CXL CEDT table.
      pci/pci_expander_bridge: For CXL HB delay the HB register memory region setup.
      tests/acpi: Update q35/CEDT.cxl for new memory addresses.
      hw/cxl: Move the CXLState from MachineState to machine type specific state.
      hw/machine: Drop cxl_supported flag as no longer useful
      hw/cxl: Fix missing write mask for HDM decoder target list registers

Mark Cave-Ayland (6):
      hw/acpi/viot: rename build_pci_range_node() to enumerate_pci_host_bridges()
      hw/acpi/viot: move the individual PCI host bridge entry generation to a new function
      hw/acpi/viot: build array of PCI host bridges before generating VIOT ACPI table
      tests/acpi: virt: allow VIOT acpi table changes
      hw/acpi/viot: sort VIOT ACPI table entries by PCI host bridge min_bus
      tests/acpi: virt: update golden masters for VIOT

Zhenwei Pi (1):
      crypto: Introduce RSA algorithm

 qapi/machine.json                           |  13 ++
 include/hw/acpi/acpi_aml_interface.h        |  40 ++++
 include/hw/acpi/cxl.h                       |   5 +-
 include/hw/acpi/ipmi.h                      |   9 +-
 include/hw/boards.h                         |   3 +-
 include/hw/cxl/cxl.h                        |   9 +-
 include/hw/cxl/cxl_host.h                   |  23 ++
 include/hw/i386/pc.h                        |   3 +-
 include/hw/isa/isa.h                        |  15 --
 include/hw/misc/pvpanic.h                   |   9 -
 include/hw/pci-bridge/pci_expander_bridge.h |  12 ++
 include/hw/virtio/virtio-crypto.h           |   5 +-
 include/sysemu/cryptodev.h                  |  83 ++++++--
 backends/cryptodev-builtin.c                | 274 ++++++++++++++++++++----
 backends/cryptodev-vhost-user.c             |  34 ++-
 backends/cryptodev.c                        |  32 ++-
 hw/acpi/acpi_interface.c                    |   8 +
 hw/acpi/cxl.c                               |   9 +-
 hw/acpi/ipmi-stub.c                         |   2 +-
 hw/acpi/ipmi.c                              |  53 ++---
 hw/acpi/viot.c                              | 109 ++++++----
 hw/block/fdc-isa.c                          |  16 +-
 hw/block/vhost-user-blk.c                   |   1 +
 hw/char/parallel.c                          |  14 +-
 hw/char/serial-isa.c                        |  14 +-
 hw/core/machine.c                           |  28 ---
 hw/cxl/cxl-component-utils.c                |  13 +-
 hw/cxl/cxl-host-stubs.c                     |   9 +-
 hw/cxl/cxl-host.c                           | 100 ++++++++-
 hw/i2c/smbus_ich9.c                         |  15 ++
 hw/i386/acpi-build.c                        | 179 ++++------------
 hw/i386/pc.c                                |  31 ++-
 hw/i386/pc_piix.c                           |   1 -
 hw/i386/pc_q35.c                            |   1 -
 hw/input/pckbd.c                            |  14 +-
 hw/ipmi/isa_ipmi_bt.c                       |   4 +
 hw/ipmi/isa_ipmi_kcs.c                      |   4 +
 hw/ipmi/smbus_ipmi.c                        |   4 +
 hw/isa/isa-bus.c                            |   9 +-
 hw/isa/lpc_ich9.c                           |  19 ++
 hw/isa/piix3.c                              |  17 ++
 hw/misc/applesmc.c                          |  29 +++
 hw/misc/pvpanic-isa.c                       |  42 ++++
 hw/pci-bridge/pci_expander_bridge.c         |  32 +--
 hw/pci-bridge/pci_expander_bridge_stubs.c   |  14 ++
 hw/pci/pci.c                                |  16 +-
 hw/rtc/mc146818rtc.c                        |  14 +-
 hw/scsi/vhost-user-scsi.c                   |   1 -
 hw/tpm/tpm_tis_isa.c                        |  32 +++
 hw/virtio/vhost-user.c                      |   8 +-
 hw/virtio/virtio-crypto.c                   | 319 ++++++++++++++++++++++------
 softmmu/vl.c                                |  46 ----
 tests/qtest/bios-tables-test.c              |  44 +++-
 tests/qtest/cxl-test.c                      |   4 +-
 docs/system/devices/cxl.rst                 |   4 +-
 hw/acpi/meson.build                         |   2 +-
 hw/pci-bridge/meson.build                   |   5 +-
 qemu-options.hx                             |  73 +++----
 tests/data/acpi/pc/DSDT                     | Bin 6002 -> 5987 bytes
 tests/data/acpi/pc/DSDT.acpierst            | Bin 5969 -> 5954 bytes
 tests/data/acpi/pc/DSDT.acpihmat            | Bin 7327 -> 7312 bytes
 tests/data/acpi/pc/DSDT.bridge              | Bin 8668 -> 8653 bytes
 tests/data/acpi/pc/DSDT.cphp                | Bin 6466 -> 6451 bytes
 tests/data/acpi/pc/DSDT.dimmpxm             | Bin 7656 -> 7641 bytes
 tests/data/acpi/pc/DSDT.hpbridge            | Bin 5969 -> 5954 bytes
 tests/data/acpi/pc/DSDT.hpbrroot            | Bin 3084 -> 3069 bytes
 tests/data/acpi/pc/DSDT.ipmikcs             | Bin 6074 -> 6059 bytes
 tests/data/acpi/pc/DSDT.memhp               | Bin 7361 -> 7346 bytes
 tests/data/acpi/pc/DSDT.nohpet              | Bin 5860 -> 5845 bytes
 tests/data/acpi/pc/DSDT.numamem             | Bin 6008 -> 5993 bytes
 tests/data/acpi/pc/DSDT.roothp              | Bin 6210 -> 6195 bytes
 tests/data/acpi/q35/CEDT.cxl                | Bin 184 -> 184 bytes
 tests/data/acpi/q35/DSDT                    | Bin 8289 -> 8274 bytes
 tests/data/acpi/q35/DSDT.acpierst           | Bin 8306 -> 8291 bytes
 tests/data/acpi/q35/DSDT.acpihmat           | Bin 9614 -> 9599 bytes
 tests/data/acpi/q35/DSDT.applesmc           | Bin 0 -> 8320 bytes
 tests/data/acpi/q35/DSDT.bridge             | Bin 11003 -> 10988 bytes
 tests/data/acpi/q35/DSDT.cphp               | Bin 8753 -> 8738 bytes
 tests/data/acpi/q35/DSDT.cxl                | Bin 9615 -> 9600 bytes
 tests/data/acpi/q35/DSDT.dimmpxm            | Bin 9943 -> 9928 bytes
 tests/data/acpi/q35/DSDT.ipmibt             | Bin 8364 -> 8349 bytes
 tests/data/acpi/q35/DSDT.ipmismbus          | Bin 0 -> 8363 bytes
 tests/data/acpi/q35/DSDT.ivrs               | Bin 8306 -> 8291 bytes
 tests/data/acpi/q35/DSDT.memhp              | Bin 9648 -> 9633 bytes
 tests/data/acpi/q35/DSDT.mmio64             | Bin 9419 -> 9404 bytes
 tests/data/acpi/q35/DSDT.multi-bridge       | Bin 8583 -> 8568 bytes
 tests/data/acpi/q35/DSDT.nohpet             | Bin 8147 -> 8132 bytes
 tests/data/acpi/q35/DSDT.numamem            | Bin 8295 -> 8280 bytes
 tests/data/acpi/q35/DSDT.pvpanic-isa        | Bin 0 -> 8375 bytes
 tests/data/acpi/q35/DSDT.tis.tpm12          | Bin 8900 -> 8880 bytes
 tests/data/acpi/q35/DSDT.tis.tpm2           | Bin 8921 -> 8906 bytes
 tests/data/acpi/q35/DSDT.viot               | Bin 9398 -> 9383 bytes
 tests/data/acpi/q35/DSDT.xapic              | Bin 35652 -> 35637 bytes
 tests/data/acpi/q35/VIOT.viot               | Bin 112 -> 112 bytes
 94 files changed, 1313 insertions(+), 615 deletions(-)
 create mode 100644 include/hw/acpi/acpi_aml_interface.h
 create mode 100644 include/hw/cxl/cxl_host.h
 create mode 100644 include/hw/pci-bridge/pci_expander_bridge.h
 create mode 100644 hw/pci-bridge/pci_expander_bridge_stubs.c
 create mode 100644 tests/data/acpi/q35/DSDT.applesmc
 create mode 100644 tests/data/acpi/q35/DSDT.ipmismbus
 create mode 100644 tests/data/acpi/q35/DSDT.pvpanic-isa

Comments

Peter Maydell July 14, 2022, 9:16 a.m. UTC | #1
On Fri, 10 Jun 2022 at 08:57, Michael S. Tsirkin <mst@redhat.com> wrote:
> ----------------------------------------------------------------
> virtio,pc,pci: fixes,cleanups,features
>
> more CXL patches
> VIOT
> Igor's huge AML rework
> fixes, cleanups all over the place

Hi. On my macos machine (an x86 one), 'make check' output for
the bios-tables-test for both i386 and x86-64 guests now includes
a warning message:

qemu-system-i386: -device isa-applesmc: warning: Using AppleSMC with invalid key

I have not bisected but I rather suspect that this is the result of
the applesmc test changes in this pullreq.

>       tests: acpi: add applesmc testcase


 45/582 qemu:qtest+qtest-i386 / qtest-i386/bios-tables-test
  OK             108.07s   47 subtests passed
――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
stderr:

Looking for expected file 'tests/data/acpi/pc/FACP'
Using expected file 'tests/data/acpi/pc/FACP'
Looking for expected file 'tests/data/acpi/pc/APIC'
Using expected file 'tests/data/acpi/pc/APIC'
Looking for expected file 'tests/data/acpi/pc/HPET'
Using expected file 'tests/data/acpi/pc/HPET'
Looking for expected file 'tests/data/acpi/pc/WAET'
Using expected file 'tests/data/acpi/pc/WAET'
Looking for expected file 'tests/data/acpi/pc/FACS'
Using expected file 'tests/data/acpi/pc/FACS'
Looking for expected file 'tests/data/acpi/pc/DSDT'
Using expected file 'tests/data/acpi/pc/DSDT'

[snip]
Looking for expected file 'tests/data/acpi/q35/FACS.acpierst'
Looking for expected file 'tests/data/acpi/q35/FACS'
Using expected file 'tests/data/acpi/q35/FACS'
Looking for expected file 'tests/data/acpi/q35/DSDT.acpierst'
Using expected file 'tests/data/acpi/q35/DSDT.acpierst'
qemu-system-i386: -device isa-applesmc: warning: Using AppleSMC with invalid key

Looking for expected file 'tests/data/acpi/q35/FACP.applesmc'
Looking for expected file 'tests/data/acpi/q35/FACP'
Using expected file 'tests/data/acpi/q35/FACP'
[snip]


Could somebody investigate why this happens and fix it, please?

thanks
-- PMM
Igor Mammedov July 14, 2022, 11:41 a.m. UTC | #2
On Thu, 14 Jul 2022 10:16:34 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On Fri, 10 Jun 2022 at 08:57, Michael S. Tsirkin <mst@redhat.com> wrote:
> > ----------------------------------------------------------------
> > virtio,pc,pci: fixes,cleanups,features
> >
> > more CXL patches
> > VIOT
> > Igor's huge AML rework
> > fixes, cleanups all over the place  
> 
> Hi. On my macos machine (an x86 one), 'make check' output for
> the bios-tables-test for both i386 and x86-64 guests now includes
> a warning message:
> 
> qemu-system-i386: -device isa-applesmc: warning: Using AppleSMC with invalid key
> 
> I have not bisected but I rather suspect that this is the result of
> the applesmc test changes in this pullreq.

Like warning says, test case doesn't have SMC key after which
QEMU uses some made up default.

It can't suppressed with 'qtest_enabled()' since QEMU in test
doesn't use qtest as accelerator.

I'm more inclined to removing warning.

> 
> >       tests: acpi: add applesmc testcase  
> 
> 
>  45/582 qemu:qtest+qtest-i386 / qtest-i386/bios-tables-test
>   OK             108.07s   47 subtests passed
> ――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
> stderr:
> 
> Looking for expected file 'tests/data/acpi/pc/FACP'
> Using expected file 'tests/data/acpi/pc/FACP'
> Looking for expected file 'tests/data/acpi/pc/APIC'
> Using expected file 'tests/data/acpi/pc/APIC'
> Looking for expected file 'tests/data/acpi/pc/HPET'
> Using expected file 'tests/data/acpi/pc/HPET'
> Looking for expected file 'tests/data/acpi/pc/WAET'
> Using expected file 'tests/data/acpi/pc/WAET'
> Looking for expected file 'tests/data/acpi/pc/FACS'
> Using expected file 'tests/data/acpi/pc/FACS'
> Looking for expected file 'tests/data/acpi/pc/DSDT'
> Using expected file 'tests/data/acpi/pc/DSDT'
> 
> [snip]
> Looking for expected file 'tests/data/acpi/q35/FACS.acpierst'
> Looking for expected file 'tests/data/acpi/q35/FACS'
> Using expected file 'tests/data/acpi/q35/FACS'
> Looking for expected file 'tests/data/acpi/q35/DSDT.acpierst'
> Using expected file 'tests/data/acpi/q35/DSDT.acpierst'
> qemu-system-i386: -device isa-applesmc: warning: Using AppleSMC with invalid key
> 
> Looking for expected file 'tests/data/acpi/q35/FACP.applesmc'
> Looking for expected file 'tests/data/acpi/q35/FACP'
> Using expected file 'tests/data/acpi/q35/FACP'
> [snip]
> 
> 
> Could somebody investigate why this happens and fix it, please?
> 
> thanks
> -- PMM
>
Michael S. Tsirkin July 14, 2022, 4:09 p.m. UTC | #3
On Thu, Jul 14, 2022 at 01:41:46PM +0200, Igor Mammedov wrote:
> On Thu, 14 Jul 2022 10:16:34 +0100
> Peter Maydell <peter.maydell@linaro.org> wrote:
> 
> > On Fri, 10 Jun 2022 at 08:57, Michael S. Tsirkin <mst@redhat.com> wrote:
> > > ----------------------------------------------------------------
> > > virtio,pc,pci: fixes,cleanups,features
> > >
> > > more CXL patches
> > > VIOT
> > > Igor's huge AML rework
> > > fixes, cleanups all over the place  
> > 
> > Hi. On my macos machine (an x86 one), 'make check' output for
> > the bios-tables-test for both i386 and x86-64 guests now includes
> > a warning message:
> > 
> > qemu-system-i386: -device isa-applesmc: warning: Using AppleSMC with invalid key
> > 
> > I have not bisected but I rather suspect that this is the result of
> > the applesmc test changes in this pullreq.
> 
> Like warning says, test case doesn't have SMC key after which
> QEMU uses some made up default.
> 
> It can't suppressed with 'qtest_enabled()' since QEMU in test
> doesn't use qtest as accelerator.
> 
> I'm more inclined to removing warning.


yes:

    if (!s->osk || (strlen(s->osk) != 64)) {
        warn_report("Using AppleSMC with invalid key");
        s->osk = default_osk;
    }

I would say the incorrect length is right in producing the
warning, but the !s->osk case shouldn't warn.

Alex what do you think?