qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 6190fd: meson: do not link pixman automatical


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 6190fd: meson: do not link pixman automatically into all t...
Date: Tue, 23 Apr 2024 21:25:44 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6190fd61d4d632cef58409ceac42d2b9882601c6
      
https://github.com/qemu/qemu/commit/6190fd61d4d632cef58409ceac42d2b9882601c6
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M meson.build

  Log Message:
  -----------
  meson: do not link pixman automatically into all targets

The dependency on pixman is listed manually in all sourcesets that need it.
There is no need to bring into libqemuutil, since there is nothing in
util/ that needs pixman either.

Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-2-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d04c7e5535e97e4a1a55d05cfe632b8c66369b36
      
https://github.com/qemu/qemu/commit/d04c7e5535e97e4a1a55d05cfe632b8c66369b36
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M tests/meson.build

  Log Message:
  -----------
  tests: only build plugins if TCG is enabled

There is no way to use them for testing, if all the available
accelerators use hardware virtualization.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-3-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: bb23c33f9381a8986798deb896cd15c2c0932cc6
      
https://github.com/qemu/qemu/commit/bb23c33f9381a8986798deb896cd15c2c0932cc6
  Author: Philippe Mathieu-Daudé <philmd@linaro.org>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M ebpf/meson.build

  Log Message:
  -----------
  ebpf: Restrict to system emulation

eBPF is not used in user emulation.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240404194757.9343-2-philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-4-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 34dca3f5be81897338176cd4bbe54fecbdd5c3af
      
https://github.com/qemu/qemu/commit/34dca3f5be81897338176cd4bbe54fecbdd5c3af
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M tests/unit/meson.build

  Log Message:
  -----------
  tests/unit: match some unit tests to corresponding feature switches

Try not to test code that is not used by user mode emulation, or by the
block layer, unless they are being compiled; and fix test-timed-average
which was not compiled with --disable-system --enable-tools.

This is by no means complete, it only touches the more blatantly
wrong cases.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-5-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b9ad27a9a4040805e9bbae95853db41f33285ffa
      
https://github.com/qemu/qemu/commit/b9ad27a9a4040805e9bbae95853db41f33285ffa
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M util/meson.build

  Log Message:
  -----------
  yank: only build if needed

The yank feature is not used in user emulation.

Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-6-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3df4c28860e100011db3a51a8a331506a3fe51f0
      
https://github.com/qemu/qemu/commit/3df4c28860e100011db3a51a8a331506a3fe51f0
  Author: Philippe Mathieu-Daudé <philmd@linaro.org>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M include/qemu/config-file.h
    M monitor/meson.build
    A monitor/qemu-config-qmp.c
    M util/qemu-config.c

  Log Message:
  -----------
  util/qemu-config: Extract QMP commands to qemu-config-qmp.c

QMP is irrelevant for user emulation. Extract the code
related to QMP in a different source file, which won't
be build for user emulation binaries. This avoid pulling
pointless code.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240404194757.9343-5-philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-7-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 971febb8f5e810c2d167ac9cb5bd1cdaf6ca688d
      
https://github.com/qemu/qemu/commit/971febb8f5e810c2d167ac9cb5bd1cdaf6ca688d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    R hw/core/hotplug-stubs.c
    M hw/core/meson.build
    A stubs/hotplug-stubs.c
    M stubs/meson.build

  Log Message:
  -----------
  hw/core: Move system emulation files to system_ss

hotplug.c, qdev-hotplug.c and reset.c are not used by user emulation
and need not be included in hwcore_ss.  Move them to system_ss, where
they belong, by letting the linker pull in the stubs when needed.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-8-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 68621262bd4317dfcdd511d8005b8558c3ddc353
      
https://github.com/qemu/qemu/commit/68621262bd4317dfcdd511d8005b8558c3ddc353
  Author: Philippe Mathieu-Daudé <philmd@linaro.org>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M meson.build

  Log Message:
  -----------
  hw: Include minimal source set in user emulation build

Only the files in hwcore_ss[] are required to link a user emulation
binary.

Have meson process the hw/ sub-directories if system emulation is
selected, otherwise directly process hw/core/ to get hwcore_ss[], which
is the only set required by user emulation.

This removes about 10% from the time needed to run
"../configure --disable-system --disable-tools --disable-guest-agent".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240404194757.9343-8-philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-9-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d4d0ebb7da0489a2fff8c7150a38fa897ca3eea5
      
https://github.com/qemu/qemu/commit/d4d0ebb7da0489a2fff8c7150a38fa897ca3eea5
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M include/sysemu/sysemu.h
    R stubs/isa-bus.c
    M stubs/meson.build
    R stubs/module-opts.c
    M stubs/monitor-core.c
    R stubs/pci-bus.c
    M stubs/qdev.c
    M stubs/qtest.c
    M stubs/usb-dev-stub.c

  Log Message:
  -----------
  stubs: remove obsolete stubs

These file define functions are are not called from common code
anymore.  Delete those functions and, if applicable, the entire files.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-10-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 89857312f3245e589b161eb535261bae7b7fcce2
      
https://github.com/qemu/qemu/commit/89857312f3245e589b161eb535261bae7b7fcce2
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    A hw/usb/bus-stub.c
    M hw/usb/meson.build
    M stubs/meson.build
    R stubs/usb-dev-stub.c

  Log Message:
  -----------
  hw/usb: move stubs out of stubs/

Since the USB stubs are needed exactly when the Kconfig symbols are not
enabled, they can be placed in hw/usb/ and conditionalized on CONFIG_USB.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-11-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f2604d8508a12a2060e854283fa076c9f09d1d10
      
https://github.com/qemu/qemu/commit/f2604d8508a12a2060e854283fa076c9f09d1d10
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/virtio/meson.build
    A hw/virtio/virtio-md-stubs.c
    M stubs/meson.build
    R stubs/virtio-md-pci.c

  Log Message:
  -----------
  hw/virtio: move stubs out of stubs/

Since the virtio memory device stubs are needed exactly when the
Kconfig symbol is not enabled, they can be placed in hw/virtio/ and
conditionalized on CONFIG_VIRTIO_MD.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-12-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5837db465053f57414f671448b370a4b29250bae
      
https://github.com/qemu/qemu/commit/5837db465053f57414f671448b370a4b29250bae
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M semihosting/meson.build
    A semihosting/stubs-all.c
    A semihosting/stubs-system.c
    M stubs/meson.build
    R stubs/semihost-all.c
    R stubs/semihost.c

  Log Message:
  -----------
  semihosting: move stubs out of stubs/

Since the semihosting stubs are needed exactly when the Kconfig symbols
are not needed, move them to semihosting/ and conditionalize them
on CONFIG_SEMIHOSTING and/or CONFIG_SYSTEM_ONLY.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-13-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5643190b74df601719ca713ea21eea4997a26e78
      
https://github.com/qemu/qemu/commit/5643190b74df601719ca713ea21eea4997a26e78
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/display/meson.build
    A hw/display/ramfb-stubs.c
    M stubs/meson.build
    R stubs/ramfb.c

  Log Message:
  -----------
  ramfb: move stubs out of stubs/

Since the ramfb stubs are needed exactly when the Kconfig symbols are not
needed, move them to hw/display/ and compile them when ramfb.c is absent.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-14-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2c888febdfa0290a9e1d1f2133b2a24de47f6120
      
https://github.com/qemu/qemu/commit/2c888febdfa0290a9e1d1f2133b2a24de47f6120
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    A hw/mem/memory-device-stubs.c
    M hw/mem/meson.build
    R stubs/memory_device.c
    M stubs/meson.build

  Log Message:
  -----------
  memory-device: move stubs out of stubs/

Since the memory-device stubs are needed exactly when the Kconfig symbols are 
not
needed, move them to hw/mem/.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-15-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 857f504cf279a063e375c32e88d5cf3312d6b30c
      
https://github.com/qemu/qemu/commit/857f504cf279a063e375c32e88d5cf3312d6b30c
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    A migration/colo-stubs.c
    M migration/meson.build
    A net/colo-stubs.c
    M net/meson.build
    R stubs/colo-compare.c
    R stubs/colo.c
    M stubs/meson.build

  Log Message:
  -----------
  colo: move stubs out of stubs/

Since the colo stubs are needed exactly when the build options are not
enabled, move them together with the code they stub.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-16-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 957eca9e73279453899193c053d1a47304e9aa58
      
https://github.com/qemu/qemu/commit/957eca9e73279453899193c053d1a47304e9aa58
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M stubs/meson.build
    A stubs/replay-mode.c
    M stubs/replay.c

  Log Message:
  -----------
  stubs: split record/replay stubs further

replay.c symbols are only needed by user mode emulation, with the
exception of replay_mode that is needed by both user mode emulation
(by way of qemu_guest_getrandom) and block layer tools (by way of
util/qemu-timer.c).

Since it is needed by libqemuutil rather than specific files that
are part of the tools and emulators, split the replay_mode stub
into its own file.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-17-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3a15604900c4f433c970cc6294520a98f201287e
      
https://github.com/qemu/qemu/commit/3a15604900c4f433c970cc6294520a98f201287e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M stubs/meson.build
    A stubs/monitor-internal.c
    R stubs/monitor.c

  Log Message:
  -----------
  stubs: include stubs only if needed

Currently it is not documented anywhere why some functions need to
be stubbed.

Group the files in stubs/meson.build according to who needs them, both
to reduce the size of the compilation and to clarify the use of stubs.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-18-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 748e62dbf5065c7d166c827425c7797389b5f9fe
      
https://github.com/qemu/qemu/commit/748e62dbf5065c7d166c827425c7797389b5f9fe
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M stubs/fdset.c
    M stubs/monitor-internal.c

  Log Message:
  -----------
  stubs: move monitor_fdsets_cleanup with other fdset stubs

Even though monitor_get_fd() has to remain separate because it is mocked by
tests/unit/test-util-sockets, monitor_fdsets_cleanup() is logically part
of the stubs for monitor/fds.c, so move it there.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240408155330.522792-19-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ab75ecb79be3b856f63bef4c91aef0dc17d405cb
      
https://github.com/qemu/qemu/commit/ab75ecb79be3b856f63bef4c91aef0dc17d405cb
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/display/vga.c

  Log Message:
  -----------
  vga: optimize computation of dirty memory region

The depth == 0 and depth == 15 have to be special cased because
width * depth / 8 does not provide the correct scanline length.
However, thanks to the recent reorganization of vga_draw_graphic()
the correct value of VRAM bits per pixel is available in "bits".

Use it (via the same "bwidth" computation that is used later in
the function), thus restricting the slow path to the wraparound case.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f89761d349999a3d898b35fd85737cf25114d44a
      
https://github.com/qemu/qemu/commit/f89761d349999a3d898b35fd85737cf25114d44a
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/display/vga.c

  Log Message:
  -----------
  vga: move dirty memory region code together

Take into account split screen mode close to wrap around, which is the
other special case for dirty memory region computation.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1e1e48792a92652af05f59b4df2f643542c71d90
      
https://github.com/qemu/qemu/commit/1e1e48792a92652af05f59b4df2f643542c71d90
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-accel-ops.c
    M accel/kvm/kvm-all.c
    M configs/targets/aarch64-softmmu.mak
    M configs/targets/i386-softmmu.mak
    M configs/targets/ppc-softmmu.mak
    M configs/targets/ppc64-softmmu.mak
    M configs/targets/s390x-softmmu.mak
    M configs/targets/x86_64-softmmu.mak
    M include/sysemu/kvm.h
    M include/sysemu/kvm_int.h

  Log Message:
  -----------
  kvm: use configs/ definition to conditionalize debug support

If an architecture adds support for KVM_CAP_SET_GUEST_DEBUG but QEMU does not
have the necessary code, QEMU will fail to build after updating kernel headers.
Avoid this by using a #define in config-target.h instead of 
KVM_CAP_SET_GUEST_DEBUG.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 85fa9acda887438feb0711970bb528959a37568e
      
https://github.com/qemu/qemu/commit/85fa9acda887438feb0711970bb528959a37568e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/arm/virt.c
    M hw/core/machine.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/m68k/virt.c
    M hw/ppc/spapr.c
    M hw/s390x/s390-virtio-ccw.c
    M include/hw/boards.h
    M include/hw/i386/pc.h

  Log Message:
  -----------
  hw: Add compat machines for 9.1

Add 9.1 machine types for arm/i440fx/m68k/q35/s390x/spapr.

Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Cc: Gavin Shan <gshan@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 513ba32dccc659c80722b3a43233b26eaa50309a
      
https://github.com/qemu/qemu/commit/513ba32dccc659c80722b3a43233b26eaa50309a
  Author: Gerd Hoffmann <kraxel@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M hw/i386/pc.c
    M target/i386/cpu.c
    M target/i386/cpu.h

  Log Message:
  -----------
  target/i386: add guest-phys-bits cpu property

Allows to set guest-phys-bits (cpuid leaf 80000008, eax[23:16])
via -cpu $model,guest-phys-bits=$nr.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-ID: <20240318155336.156197-3-kraxel@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0d08c423688edcca857f88dab20f1fc56de2b281
      
https://github.com/qemu/qemu/commit/0d08c423688edcca857f88dab20f1fc56de2b281
  Author: Gerd Hoffmann <kraxel@redhat.com>
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
    M target/i386/kvm/kvm-cpu.c

  Log Message:
  -----------
  kvm: add support for guest physical bits

Query kvm for supported guest physical address bits, in cpuid
function 80000008, eax[23:16].  Usually this is identical to host
physical address bits.  With NPT or EPT being used this might be
restricted to 48 (max 4-level paging address space size) even if
the host cpu supports more physical address bits.

When set pass this to the guest, using cpuid too.  Guest firmware
can use this to figure how big the usable guest physical address
space is, so PCI bar mapping are actually reachable.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240318155336.156197-2-kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a5acf4f26c208a05d05ef1bde65553ce2ab5e5d0
      
https://github.com/qemu/qemu/commit/a5acf4f26c208a05d05ef1bde65553ce2ab5e5d0
  Author: Sean Christopherson <sean.j.christopherson@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/kvm/kvm.c

  Log Message:
  -----------
  i386/kvm: Move architectural CPUID leaf generation to separate helper

Move the architectural (for lack of a better term) CPUID leaf generation
to a separate helper so that the generation code can be reused by TDX,
which needs to generate a canonical VM-scoped configuration.

For now this is just a cleanup, so keep the function static.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240229063726.610065-23-xiaoyao.li@intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c895fa54e3060c5ac6f3888dce96c9b78626072b
      
https://github.com/qemu/qemu/commit/c895fa54e3060c5ac6f3888dce96c9b78626072b
  Author: Zhenzhong Duan <zhenzhong.duan@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: Introduce Icelake-Server-v7 to enable TSX

When start L2 guest with both L1/L2 using Icelake-Server-v3 or above,
QEMU reports below warning:

"warning: host doesn't support requested feature: MSR(10AH).taa-no [bit 8]"

Reason is QEMU Icelake-Server-v3 has TSX feature disabled but enables taa-no
bit. It's meaningless that TSX isn't supported but still claim TSX is secure.
So L1 KVM doesn't expose taa-no to L2 if TSX is unsupported, then starting L2
triggers the warning.

Fix it by introducing a new version Icelake-Server-v7 which has both TSX
and taa-no features. Then guest can use TSX securely when it see taa-no.

This matches the production Icelake which supports TSX and isn't susceptible
to TSX Async Abort (TAA) vulnerabilities, a.k.a, taa-no.

Ideally, TSX should have being enabled together with taa-no since v3, but for
compatibility, we'd better to add v7 to enable it.

Fixes: d965dc35592d ("target/i386: Add ARCH_CAPABILITIES related bits into 
Icelake-Server CPU model")
Tested-by: Xiangfei Ma <xiangfeix.ma@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Message-ID: <20240320093138.80267-2-zhenzhong.duan@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6e82d3b6220777667968a04c87e1667f164ebe88
      
https://github.com/qemu/qemu/commit/6e82d3b6220777667968a04c87e1667f164ebe88
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: Add new CPU model SierraForest

According to table 1-2 in Intel Architecture Instruction Set Extensions and
Future Features (rev 051) [1], SierraForest has the following new features
which have already been virtualized:

- CMPCCXADD CPUID.(EAX=7,ECX=1):EAX[bit 7]
- AVX-IFMA CPUID.(EAX=7,ECX=1):EAX[bit 23]
- AVX-VNNI-INT8 CPUID.(EAX=7,ECX=1):EDX[bit 4]
- AVX-NE-CONVERT CPUID.(EAX=7,ECX=1):EDX[bit 5]

Add above features to new CPU model SierraForest. Comparing with GraniteRapids
CPU model, SierraForest bare-metal removes the following features:

- HLE CPUID.(EAX=7,ECX=0):EBX[bit 4]
- RTM CPUID.(EAX=7,ECX=0):EBX[bit 11]
- AVX512F CPUID.(EAX=7,ECX=0):EBX[bit 16]
- AVX512DQ CPUID.(EAX=7,ECX=0):EBX[bit 17]
- AVX512_IFMA CPUID.(EAX=7,ECX=0):EBX[bit 21]
- AVX512CD CPUID.(EAX=7,ECX=0):EBX[bit 28]
- AVX512BW CPUID.(EAX=7,ECX=0):EBX[bit 30]
- AVX512VL CPUID.(EAX=7,ECX=0):EBX[bit 31]
- AVX512_VBMI CPUID.(EAX=7,ECX=0):ECX[bit 1]
- AVX512_VBMI2 CPUID.(EAX=7,ECX=0):ECX[bit 6]
- AVX512_VNNI CPUID.(EAX=7,ECX=0):ECX[bit 11]
- AVX512_BITALG CPUID.(EAX=7,ECX=0):ECX[bit 12]
- AVX512_VPOPCNTDQ CPUID.(EAX=7,ECX=0):ECX[bit 14]
- LA57 CPUID.(EAX=7,ECX=0):ECX[bit 16]
- TSXLDTRK CPUID.(EAX=7,ECX=0):EDX[bit 16]
- AMX-BF16 CPUID.(EAX=7,ECX=0):EDX[bit 22]
- AVX512_FP16 CPUID.(EAX=7,ECX=0):EDX[bit 23]
- AMX-TILE CPUID.(EAX=7,ECX=0):EDX[bit 24]
- AMX-INT8 CPUID.(EAX=7,ECX=0):EDX[bit 25]
- AVX512_BF16 CPUID.(EAX=7,ECX=1):EAX[bit 5]
- fast zero-length MOVSB CPUID.(EAX=7,ECX=1):EAX[bit 10]
- fast short CMPSB, SCASB CPUID.(EAX=7,ECX=1):EAX[bit 12]
- AMX-FP16 CPUID.(EAX=7,ECX=1):EAX[bit 21]
- PREFETCHI CPUID.(EAX=7,ECX=1):EDX[bit 14]
- XFD CPUID.(EAX=0xD,ECX=1):EAX[bit 4]
- EPT_PAGE_WALK_LENGTH_5 VMX_EPT_VPID_CAP(0x48c)[bit 7]

Add all features of GraniteRapids CPU model except above features to
SierraForest CPU model.

SierraForest doesn’t support TSX and RTM but supports TAA_NO. When RTM is
not enabled in host, KVM will not report TAA_NO. So, just don't include
TAA_NO in SierraForest CPU model.

[1] https://cdrdv2.intel.com/v1/dl/getContent/671368

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Message-ID: <20240320021044.508263-1-tao1.su@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 41bdd9812863c150284a9339a048ed88c40f4df7
      
https://github.com/qemu/qemu/commit/41bdd9812863c150284a9339a048ed88c40f4df7
  Author: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: Export RFDS bit to guests

Register File Data Sampling (RFDS) is a CPU side-channel vulnerability
that may expose stale register value. CPUs that set RFDS_NO bit in MSR
IA32_ARCH_CAPABILITIES indicate that they are not vulnerable to RFDS.
Similarly, RFDS_CLEAR indicates that CPU is affected by RFDS, and has
the microcode to help mitigate RFDS.

Make RFDS_CLEAR and RFDS_NO bits available to guests.

Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: 
<9a38877857392b5c2deae7e7db1b170d15510314.1710341348.git.pawan.kumar.gupta@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 42c11ae2416dcbcd694ec3ee574fe2f3e70099ae
      
https://github.com/qemu/qemu/commit/42c11ae2416dcbcd694ec3ee574fe2f3e70099ae
  Author: Isaku Yamahata <isaku.yamahata@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/pci-host/q35.c

  Log Message:
  -----------
  pci-host/q35: Move PAM initialization above SMRAM initialization

In mch_realize(), process PAM initialization before SMRAM initialization so
that later patch can skill all the SMRAM related with a single check.

Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240320083945.991426-18-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b07bf7b73fd02d24a7baa64a580f4974b86bbc86
      
https://github.com/qemu/qemu/commit/b07bf7b73fd02d24a7baa64a580f4974b86bbc86
  Author: Isaku Yamahata <isaku.yamahata@linux.intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/i386/pc_q35.c
    M hw/pci-host/q35.c
    M include/hw/i386/pc.h
    M include/hw/pci-host/q35.h

  Log Message:
  -----------
  q35: Introduce smm_ranges property for q35-pci-host

Add a q35 property to check whether or not SMM ranges, e.g. SMRAM, TSEG,
etc... exist for the target platform.  TDX doesn't support SMM and doesn't
play nice with QEMU modifying related guest memory ranges.

Signed-off-by: Isaku Yamahata <isaku.yamahata@linux.intel.com>
Co-developed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240320083945.991426-19-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 292dd287e78e0cbafde9d1522c729349d132d844
      
https://github.com/qemu/qemu/commit/292dd287e78e0cbafde9d1522c729349d132d844
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

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

  Log Message:
  -----------
  hw/i386/acpi: Set PCAT_COMPAT bit only when pic is not disabled

A value 1 of PCAT_COMPAT (bit 0) of MADT.Flags indicates that the system
also has a PC-AT-compatible dual-8259 setup, i.e., the PIC.  When PIC
is not enabled (pic=off) for x86 machine, the PCAT_COMPAT bit needs to
be cleared.  The PIC probe should then print:

   [    0.155970] Using NULL legacy PIC

However, no such log printed in guest kernel unless PCAT_COMPAT is
cleared.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240403145953.3082491-1-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 41a605944e3fecae43ca18ded95ec31f28e0c7fe
      
https://github.com/qemu/qemu/commit/41a605944e3fecae43ca18ded95ec31f28e0c7fe
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M include/exec/confidential-guest-support.h

  Log Message:
  -----------
  confidential guest support: Add kvm_init() and kvm_reset() in class

Different confidential VMs in different architectures all have the same
needs to do their specific initialization (and maybe resetting) stuffs
with KVM. Currently each of them exposes individual *_kvm_init()
functions and let machine code or kvm code to call it.

To facilitate the introduction of confidential guest technology from
different x86 vendors, add two virtual functions, kvm_init() and kvm_reset()
in ConfidentialGuestSupportClass, and expose two helpers functions for
invodking them.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-Id: <20240229060038.606591-1-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 637c95b37b106c2eeba313e0abb38ec12e918a59
      
https://github.com/qemu/qemu/commit/637c95b37b106c2eeba313e0abb38ec12e918a59
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/kvm/kvm.c
    M target/i386/kvm/meson.build
    R target/i386/kvm/sev-stub.c
    M target/i386/sev.c
    M target/i386/sev.h

  Log Message:
  -----------
  i386/sev: Switch to use confidential_guest_kvm_init()

Use confidential_guest_kvm_init() instead of calling SEV
specific sev_kvm_init(). This allows the introduction of multiple
confidential-guest-support subclasses for different x86 vendors.

As a bonus, stubs are not needed anymore since there is no
direct call from target/i386/kvm/kvm.c to SEV code.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-Id: <20240229060038.606591-1-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 00a238b1a845fd5f0acd771664c5e184a63ed9b6
      
https://github.com/qemu/qemu/commit/00a238b1a845fd5f0acd771664c5e184a63ed9b6
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/ppc/pef.c
    M hw/ppc/spapr.c
    R include/hw/ppc/pef.h

  Log Message:
  -----------
  ppc/pef: switch to use confidential_guest_kvm_init/reset()

Use the unified interface to call confidential guest related kvm_init()
and kvm_reset(), to avoid exposing pef specific functions.

As a bonus, pef.h goes away since there is no direct call from sPAPR
board code to PEF code anymore.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a14a2b0148e657cc526b7a75f2a1937628764e7a
      
https://github.com/qemu/qemu/commit/a14a2b0148e657cc526b7a75f2a1937628764e7a
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M target/s390x/kvm/pv.c
    M target/s390x/kvm/pv.h

  Log Message:
  -----------
  s390: Switch to use confidential_guest_kvm_init()

Use unified confidential_guest_kvm_init() for consistency with
other architectures.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-Id: <20240229060038.606591-1-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 66210a1a30f2384bb59f9dad8d769dba56dd30f1
      
https://github.com/qemu/qemu/commit/66210a1a30f2384bb59f9dad8d769dba56dd30f1
  Author: Michael Roth <michael.roth@amd.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  scripts/update-linux-headers: Add setup_data.h to import list

Data structures like struct setup_data have been moved to a separate
setup_data.h header which bootparam.h relies on. Add setup_data.h to
the cp_portable() list and sync it along with the other header files.

Note that currently struct setup_data is stripped away as part of
generating bootparam.h, but that handling is no currently needed for
setup_data.h since it doesn't pull in many external
headers/dependencies. However, QEMU currently redefines struct
setup_data in hw/i386/x86.c, so that will need to be removed as part of
any header update that pulls in the new setup_data.h to avoid build
bisect breakage.

Because <asm/setup_data.h> is the first architecture specific #include
in include/standard-headers/, add a new sed substitution to rewrite
asm/ include to the standard-headers/asm-* subdirectory for the current
architecture.

And while at it, remove asm-generic/kvm_para.h from the list of
allowed includes: it does not have a matching substitution, and therefore
it would not be possible to use it on non-Linux systems where there is
no /usr/include/asm-generic/ directory.

Signed-off-by: Michael Roth <michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b40b8eb609d3549ac14aab43849b20f5cba951c9
      
https://github.com/qemu/qemu/commit/b40b8eb609d3549ac14aab43849b20f5cba951c9
  Author: Michael Roth <michael.roth@amd.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  scripts/update-linux-headers: Add bits.h to file imports

Signed-off-by: Michael Roth <michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ab0c7fb22b56523f24d6e127cd4d10ecff67bf85
      
https://github.com/qemu/qemu/commit/ab0c7fb22b56523f24d6e127cd4d10ecff67bf85
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/i386/x86.c
    M include/standard-headers/asm-x86/bootparam.h
    M include/standard-headers/asm-x86/kvm_para.h
    A include/standard-headers/asm-x86/setup_data.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/fuse.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/virtio_gpu.h
    M include/standard-headers/linux/virtio_pci.h
    M include/standard-headers/linux/virtio_snd.h
    M linux-headers/asm-arm64/kvm.h
    M linux-headers/asm-arm64/sve_context.h
    M linux-headers/asm-generic/bitsperlong.h
    M linux-headers/asm-loongarch/kvm.h
    M linux-headers/asm-mips/kvm.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-riscv/kvm.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-x86/kvm.h
    A linux-headers/linux/bits.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/psp-sev.h
    M linux-headers/linux/vhost.h

  Log Message:
  -----------
  linux-headers: update to current kvm/next

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 08b2d15cdd0d3fbbe37ce23bf192b770db3a7539
      
https://github.com/qemu/qemu/commit/08b2d15cdd0d3fbbe37ce23bf192b770db3a7539
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M system/runstate.c

  Log Message:
  -----------
  runstate: skip initial CPU reset if reset is not actually possible

Right now, the system reset is concluded by a call to
cpu_synchronize_all_post_reset() in order to sync any changes
that the machine reset callback applied to the CPU state.

However, for VMs with encrypted state such as SEV-ES guests (currently
the only case of guests with non-resettable CPUs) this cannot be done,
because guest state has already been finalized by machine-init-done notifiers.
cpu_synchronize_all_post_reset() does nothing on these guests, and actually
we would like to make it fail if called once guest has been encrypted.
So, assume that boards that support non-resettable CPUs do not touch
CPU state and that all such setup is done before, at the time of
cpu_synchronize_all_post_init().

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5c3131c392f84c660033d511ec39872d8beb4b1e
      
https://github.com/qemu/qemu/commit/5c3131c392f84c660033d511ec39872d8beb4b1e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M include/sysemu/kvm.h
    M include/sysemu/kvm_int.h
    M target/i386/sev.c

  Log Message:
  -----------
  KVM: track whether guest state is encrypted

So far, KVM has allowed KVM_GET/SET_* ioctls to execute even if the
guest state is encrypted, in which case they do nothing.  For the new
API using VM types, instead, the ioctls will fail which is a safer and
more robust approach.

The new API will be the only one available for SEV-SNP and TDX, but it
is also usable for SEV and SEV-ES.  In preparation for that, require
architecture-specific KVM code to communicate the point at which guest
state is protected (which must be after kvm_cpu_synchronize_post_init(),
though that might change in the future in order to suppor migration).
>From that point, skip reading registers so that cpu->vcpu_dirty is
never true: if it ever becomes true, kvm_arch_put_registers() will
fail miserably.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a99c0c66ebe7d8db3af6f16689ade9375247e43e
      
https://github.com/qemu/qemu/commit/a99c0c66ebe7d8db3af6f16689ade9375247e43e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-accel-ops.c
    M accel/kvm/kvm-all.c
    M include/sysemu/kvm.h
    M target/arm/kvm.c
    M target/i386/kvm/kvm.c
    M target/loongarch/kvm/kvm.c
    M target/mips/kvm.c
    M target/ppc/kvm.c
    M target/riscv/kvm/kvm-cpu.c
    M target/s390x/kvm/kvm.c

  Log Message:
  -----------
  KVM: remove kvm_arch_cpu_check_are_resettable

Board reset requires writing a fresh CPU state.  As far as KVM is
concerned, the only thing that blocks reset is that CPU state is
encrypted; therefore, kvm_cpus_are_resettable() can simply check
if that is the case.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d82e9c843d662f13821026618aba936eda31a6c0
      
https://github.com/qemu/qemu/commit/d82e9c843d662f13821026618aba936eda31a6c0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    A target/i386/confidential-guest.c
    A target/i386/confidential-guest.h
    M target/i386/meson.build
    M target/i386/sev.c

  Log Message:
  -----------
  target/i386: introduce x86-confidential-guest

Introduce a common superclass for x86 confidential guest implementations.
It will extend ConfidentialGuestSupportClass with a method that provides
the VM type to be passed to KVM_CREATE_VM.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ee88612df1e8d6c2bfec75bff3f9482ea44acec1
      
https://github.com/qemu/qemu/commit/ee88612df1e8d6c2bfec75bff3f9482ea44acec1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/i386/x86.c
    M target/i386/confidential-guest.h
    M target/i386/kvm/kvm.c
    M target/i386/kvm/kvm_i386.h

  Log Message:
  -----------
  target/i386: Implement mc->kvm_type() to get VM type

KVM is introducing a new API to create confidential guests, which
will be used by TDX and SEV-SNP but is also available for SEV and
SEV-ES.  The API uses the VM type argument to KVM_CREATE_VM to
identify which confidential computing technology to use.

Since there are no other expected uses of VM types, delegate
mc->kvm_type() for x86 boards to the confidential-guest-support
object pointed to by ms->cgs.

For example, if a sev-guest object is specified to confidential-guest-support,
like,

  qemu -machine ...,confidential-guest-support=sev0 \
       -object sev-guest,id=sev0,...

it will check if a VM type KVM_X86_SEV_VM or KVM_X86_SEV_ES_VM
is supported, and if so use them together with the KVM_SEV_INIT2
function of the KVM_MEMORY_ENCRYPT_OP ioctl. If not, it will fall back to
KVM_SEV_INIT and KVM_SEV_ES_INIT.

This is a preparatory work towards TDX and SEV-SNP support, but it
will also enable support for VMSA features such as DebugSwap, which
are only available via KVM_SEV_INIT2.

Co-developed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 663e2f443e5722370708ce2f4c27d94a2087d2d3
      
https://github.com/qemu/qemu/commit/663e2f443e5722370708ce2f4c27d94a2087d2d3
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/kvm/kvm.c
    M target/i386/sev.c

  Log Message:
  -----------
  target/i386: SEV: use KVM_SEV_INIT2 if possible

Implement support for the KVM_X86_SEV_VM and KVM_X86_SEV_ES_VM virtual
machine types, and the KVM_SEV_INIT2 function of KVM_MEMORY_ENCRYPT_OP.

These replace the KVM_SEV_INIT and KVM_SEV_ES_INIT functions, and have
several advantages:

- sharing the initialization sequence with SEV-SNP and TDX

- allowing arguments including the set of desired VMSA features

- protection against invalid use of KVM_GET/SET_* ioctls for guests
  with encrypted state

If the KVM_X86_SEV_VM and KVM_X86_SEV_ES_VM types are not supported,
fall back to KVM_SEV_INIT and KVM_SEV_ES_INIT (which use the
default x86 VM type).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 023267334da375226720e62963df9545aa8fc2fd
      
https://github.com/qemu/qemu/commit/023267334da375226720e62963df9545aa8fc2fd
  Author: Michael Roth <michael.roth@amd.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M qapi/qom.json
    M target/i386/sev.c

  Log Message:
  -----------
  i386/sev: Add 'legacy-vm-type' parameter for SEV guest objects

QEMU will currently automatically make use of the KVM_SEV_INIT2 API for
initializing SEV and SEV-ES guests verses the older
KVM_SEV_INIT/KVM_SEV_ES_INIT interfaces.

However, the older interfaces will silently avoid sync'ing FPU/XSAVE
state to the VMSA prior to encryption, thus relying on behavior and
measurements that assume the related fields to be allow zero.

With KVM_SEV_INIT2, this state is now synced into the VMSA, resulting in
measurements changes and, theoretically, behaviorial changes, though the
latter are unlikely to be seen in practice.

To allow a smooth transition to the newer interface, while still
providing a mechanism to maintain backward compatibility with VMs
created using the older interfaces, provide a new command-line
parameter:

  -object sev-guest,legacy-vm-type=true,...

and have it default to false.

Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240409230743.962513-2-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ea7fbd37537b3a598335c21ccb2ea674630fc810
      
https://github.com/qemu/qemu/commit/ea7fbd37537b3a598335c21ccb2ea674630fc810
  Author: Michael Roth <michael.roth@amd.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M hw/i386/pc.c
    M target/i386/sev.c

  Log Message:
  -----------
  hw/i386/sev: Use legacy SEV VM types for older machine types

Newer 9.1 machine types will default to using the KVM_SEV_INIT2 API for
creating SEV/SEV-ES going forward. However, this API results in guest
measurement changes which are generally not expected for users of these
older guest types and can cause disruption if they switch to a newer
QEMU/kernel version. Avoid this by continuing to use the older
KVM_SEV_INIT/KVM_SEV_ES_INIT APIs for older machine types.

Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240409230743.962513-4-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 72853afc638b3e28779c86dd05da2f3bb149fe2c
      
https://github.com/qemu/qemu/commit/72853afc638b3e28779c86dd05da2f3bb149fe2c
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events

  Log Message:
  -----------
  trace/kvm: Split address space and slot id in trace_kvm_set_user_memory()

The upper 16 bits of kvm_userspace_memory_region::slot are
address space id. Parse it separately in trace_kvm_set_user_memory().

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240229063726.610065-5-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0811baed49010a9b651b8029ab6b9828b09a884f
      
https://github.com/qemu/qemu/commit/0811baed49010a9b651b8029ab6b9828b09a884f
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M include/sysemu/kvm.h

  Log Message:
  -----------
  kvm: Introduce support for memory_attributes

Introduce the helper functions to set the attributes of a range of
memory to private or shared.

This is necessary to notify KVM the private/shared attribute of each gpa
range. KVM needs the information to decide the GPA needs to be mapped at
hva-based shared memory or guest_memfd based private memory.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240320083945.991426-11-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 15f7a80c49cb3637f62fa37fa4a17da913bd91ff
      
https://github.com/qemu/qemu/commit/15f7a80c49cb3637f62fa37fa4a17da913bd91ff
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/stubs/kvm-stub.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/exec/ramblock.h
    M include/sysemu/kvm.h
    M system/memory.c
    M system/physmem.c

  Log Message:
  -----------
  RAMBlock: Add support of KVM private guest memfd

Add KVM guest_memfd support to RAMBlock so both normal hva based memory
and kvm guest memfd based private memory can be associated in one RAMBlock.

Introduce new flag RAM_GUEST_MEMFD. When it's set, it calls KVM ioctl to
create private guest_memfd during RAMBlock setup.

Allocating a new RAM_GUEST_MEMFD flag to instruct the setup of guest memfd
is more flexible and extensible than simply relying on the VM type because
in the future we may have the case that not all the memory of a VM need
guest memfd. As a benefit, it also avoid getting MachineState in memory
subsystem.

Note, RAM_GUEST_MEMFD is supposed to be set for memory backends of
confidential guests, such as TDX VM. How and when to set it for memory
backends will be implemented in the following patches.

Introduce memory_region_has_guest_memfd() to query if the MemoryRegion has
KVM guest_memfd allocated.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-ID: <20240320083945.991426-7-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ce5a983233b4ca94ced88c9581014346509b5c71
      
https://github.com/qemu/qemu/commit/ce5a983233b4ca94ced88c9581014346509b5c71
  Author: Chao Peng <chao.p.peng@linux.intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events
    M include/sysemu/kvm_int.h

  Log Message:
  -----------
  kvm: Enable KVM_SET_USER_MEMORY_REGION2 for memslot

Switch to KVM_SET_USER_MEMORY_REGION2 when supported by KVM.

With KVM_SET_USER_MEMORY_REGION2, QEMU can set up memory region that
backend'ed both by hva-based shared memory and guest memfd based private
memory.

Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
Co-developed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240320083945.991426-10-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: bd3bcf6962b664ca3bf9c60fdcc4534e8e3d0641
      
https://github.com/qemu/qemu/commit/bd3bcf6962b664ca3bf9c60fdcc4534e8e3d0641
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c

  Log Message:
  -----------
  kvm/memory: Make memory type private by default if it has guest memfd backend

KVM side leaves the memory to shared by default, which may incur the
overhead of paging conversion on the first visit of each page. Because
the expectation is that page is likely to private for the VMs that
require private memory (has guest memfd).

Explicitly set the memory to private when memory region has valid
guest memfd backend.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240320083945.991426-16-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 37662d85b0b7dded0ebdf6747bef6c3bb7ed6a0c
      
https://github.com/qemu/qemu/commit/37662d85b0b7dded0ebdf6747bef6c3bb7ed6a0c
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c
    M backends/hostmem-ram.c
    M backends/hostmem.c
    M hw/core/machine.c
    M include/hw/boards.h
    M include/sysemu/hostmem.h

  Log Message:
  -----------
  HostMem: Add mechanism to opt in kvm guest memfd via MachineState

Add a new member "guest_memfd" to memory backends. When it's set
to true, it enables RAM_GUEST_MEMFD in ram_flags, thus private kvm
guest_memfd will be allocated during RAMBlock allocation.

Memory backend's @guest_memfd is wired with @require_guest_memfd
field of MachineState. It avoid looking up the machine in phymem.c.

MachineState::require_guest_memfd is supposed to be set by any VMs
that requires KVM guest memfd as private memory, e.g., TDX VM.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-ID: <20240320083945.991426-8-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 852f0048f3ea9f14de18eb279a99fccb6d250e8f
      
https://github.com/qemu/qemu/commit/852f0048f3ea9f14de18eb279a99fccb6d250e8f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M system/physmem.c

  Log Message:
  -----------
  RAMBlock: make guest_memfd require uncoordinated discard

Some subsystems like VFIO might disable ram block discard, but guest_memfd
uses discard operations to implement conversions between private and
shared memory.  Because of this, sequences like the following can result
in stale IOMMU mappings:

1. allocate shared page
2. convert page shared->private
3. discard shared page
4. convert page private->shared
5. allocate shared page
6. issue DMA operations against that shared page

This is not a use-after-free, because after step 3 VFIO is still pinning
the page.  However, DMA operations in step 6 will hit the old mapping
that was allocated in step 1.

Address this by taking ram_block_discard_is_enabled() into account when
deciding whether or not to discard pages.

Since kvm_convert_memory()/guest_memfd doesn't implement a
RamDiscardManager handler to convey and replay discard operations,
this is a case of uncoordinated discard, which is blocked/released
by ram_block_discard_require().  Interestingly, this function had
no use so far.

Alternative approaches would be to block discard of shared pages, but
this would cause guests to consume twice the memory if they use VFIO;
or to implement a RamDiscardManager and only block uncoordinated
discard, i.e. use ram_block_coordinated_discard_require().

[Commit message mostly by Michael Roth <michael.roth@amd.com>]

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b2e9426c04fdd32d93a3a37db6b0c2e67c88c335
      
https://github.com/qemu/qemu/commit/b2e9426c04fdd32d93a3a37db6b0c2e67c88c335
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M include/exec/cpu-common.h
    M system/physmem.c

  Log Message:
  -----------
  physmem: Introduce ram_block_discard_guest_memfd_range()

When memory page is converted from private to shared, the original
private memory is back'ed by guest_memfd. Introduce
ram_block_discard_guest_memfd_range() for discarding memory in
guest_memfd.

Based on a patch by Isaku Yamahata <isaku.yamahata@intel.com>.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Message-ID: <20240320083945.991426-12-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c15e5684071d93174e446be318f49d8d59b15d6d
      
https://github.com/qemu/qemu/commit/c15e5684071d93174e446be318f49d8d59b15d6d
  Author: Chao Peng <chao.p.peng@linux.intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events
    M include/sysemu/kvm.h

  Log Message:
  -----------
  kvm: handle KVM_EXIT_MEMORY_FAULT

Upon an KVM_EXIT_MEMORY_FAULT exit, userspace needs to do the memory
conversion on the RAMBlock to turn the memory into desired attribute,
switching between private and shared.

Currently only KVM_MEMORY_EXIT_FLAG_PRIVATE in flags is valid when
KVM_EXIT_MEMORY_FAULT happens.

Note, KVM_EXIT_MEMORY_FAULT makes sense only when the RAMBlock has
guest_memfd memory backend.

Note, KVM_EXIT_MEMORY_FAULT returns with -EFAULT, so special handling is
added.

When page is converted from shared to private, the original shared
memory can be discarded via ram_block_discard_range(). Note, shared
memory can be discarded only when it's not back'ed by hugetlb because
hugetlb is supposed to be pre-allocated and no need for discarding.

Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
Co-developed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>

Message-ID: <20240320083945.991426-13-michael.roth@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c5d9425ef4da9f43fc0903905ad415456d1ab843
      
https://github.com/qemu/qemu/commit/c5d9425ef4da9f43fc0903905ad415456d1ab843
  Author: Isaku Yamahata <isaku.yamahata@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c

  Log Message:
  -----------
  kvm/tdx: Don't complain when converting vMMIO region to shared

Because vMMIO region needs to be shared region, guest TD may explicitly
convert such region from private to shared.  Don't complain such
conversion.

Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240229063726.610065-34-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 565f4768bb9cf840b2f8cca41483bb91aa3196a3
      
https://github.com/qemu/qemu/commit/565f4768bb9cf840b2f8cca41483bb91aa3196a3
  Author: Isaku Yamahata <isaku.yamahata@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-all.c

  Log Message:
  -----------
  kvm/tdx: Ignore memory conversion to shared of unassigned region

TDX requires vMMIO region to be shared.  For KVM, MMIO region is the region
which kvm memslot isn't assigned to (except in-kernel emulation).
qemu has the memory region for vMMIO at each device level.

While OVMF issues MapGPA(to-shared) conservatively on 32bit PCI MMIO
region, qemu doesn't find corresponding vMMIO region because it's before
PCI device allocation and memory_region_find() finds the device region, not
PCI bus region.  It's safe to ignore MapGPA(to-shared) because when guest
accesses those region they use GPA with shared bit set for vMMIO.  Ignore
memory conversion request of non-assigned region to shared and return
success.  Otherwise OVMF is confused and panics there.

Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Message-ID: <20240229063726.610065-35-xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 7502ffb2f3240247e9426fd73b8422e5be54501a
      
https://github.com/qemu/qemu/commit/7502ffb2f3240247e9426fd73b8422e5be54501a
  Author: Zhao Liu <zhao1.liu@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/host-cpu.c

  Log Message:
  -----------
  target/i386/host-cpu: Consolidate the use of warn_report_once()

Use warn_report_once() to get rid of the static local variable "warned".

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240327103951.3853425-2-zhao1.liu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8e3991ebc865e659e32195286caf0ca14ffcf806
      
https://github.com/qemu/qemu/commit/8e3991ebc865e659e32195286caf0ca14ffcf806
  Author: Zhao Liu <zhao1.liu@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386/cpu: Consolidate the use of warn_report_once()

The difference between error_printf() and error_report() is the latter
may contain more information, such as the name of the program
("qemu-system-x86_64").

Thus its variant error_report_once() and warn_report()'s variant
warn_report_once() can be used here to print the information only once
without a static local variable "ht_warned".

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240327103951.3853425-3-zhao1.liu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: aec202cb0eb800049c85428ba31566a9ef634cfc
      
https://github.com/qemu/qemu/commit/aec202cb0eb800049c85428ba31566a9ef634cfc
  Author: Zhao Liu <zhao1.liu@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386/cpu: Merge the warning and error messages for AMD HT check

Currently, the difference between warn_report_once() and
error_report_once() is the former has the "warning:" prefix, while the
latter does not have a similar level prefix.

At the meantime, considering that there is no error handling logic here,
and the purpose of error_report_once() is only to prompt the user with
an abnormal message, there is no need to use an error-level message here,
and instead we can just use a warning.

Therefore, downgrade the message in error_report_once() to warning, and
merge it into the previous warn_report_once().

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240327103951.3853425-4-zhao1.liu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 94da7b6e9ad8da2b0cb2ef86a64d9fa1d6c8320c
      
https://github.com/qemu/qemu/commit/94da7b6e9ad8da2b0cb2ef86a64d9fa1d6c8320c
  Author: Zhao Liu <zhao1.liu@intel.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/tcg/icount-common.c

  Log Message:
  -----------
  accel/tcg/icount-common: Consolidate the use of warn_report_once()

Use warn_report_once() to get rid of the static local variable "notified".

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Message-ID: <20240418100716.1085491-1-zhao1.liu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c05071719ca3a479b677e58db8ab0c5ad3f9b83
      
https://github.com/qemu/qemu/commit/9c05071719ca3a479b677e58db8ab0c5ad3f9b83
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M docs/requirements.txt
    M pythondeps.toml

  Log Message:
  -----------
  pythondeps.toml: warn about updates needed to docs/requirements.txt

docs/requirements.txt is expected by readthedocs and should be in sync
with pythondeps.toml.  Add a comment to both.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 7653b44534d3267fa63ebc9d7221eaa7b48bf5ae
      
https://github.com/qemu/qemu/commit/7653b44534d3267fa63ebc9d7221eaa7b48bf5ae
  Author: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386/translate.c: always write 32-bits for SGDT and SIDT

The various Intel CPU manuals claim that SGDT and SIDT can write either 24-bits
or 32-bits depending upon the operand size, but this is incorrect. Not only do
the Intel CPU manuals give contradictory information between processor
revisions, but this information doesn't even match real-life behaviour.

In fact, tests on real hardware show that the CPU always writes 32-bits for SGDT
and SIDT, and this behaviour is required for at least OS/2 Warp and WFW 3.11 
with
Win32s to function correctly. Remove the masking applied due to the operand size
for SGDT and SIDT so that the TCG behaviour matches the behaviour on real
hardware.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2198

--
MCA: Whilst I don't have a copy of OS/2 Warp handy, I've confirmed that this
patch fixes the issue in WFW 3.11 with Win32s. For more technical information I
highly recommend the excellent write-up at
https://www.os2museum.com/wp/sgdtsidt-fiction-and-reality/.
Message-ID: <20240419195147.434894-1-mark.cave-ayland@ilande.co.uk>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1a6f53953df65f31e922f8a1763dac9f10adc81b
      
https://github.com/qemu/qemu/commit/1a6f53953df65f31e922f8a1763dac9f10adc81b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M VERSION

  Log Message:
  -----------
  Open 9.1 development tree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 13b1e9667737132440f4d500c31cb69320c6b15a
      
https://github.com/qemu/qemu/commit/13b1e9667737132440f4d500c31cb69320c6b15a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M accel/kvm/kvm-accel-ops.c
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events
    M accel/stubs/kvm-stub.c
    M accel/tcg/icount-common.c
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c
    M backends/hostmem-ram.c
    M backends/hostmem.c
    M configs/targets/aarch64-softmmu.mak
    M configs/targets/i386-softmmu.mak
    M configs/targets/ppc-softmmu.mak
    M configs/targets/ppc64-softmmu.mak
    M configs/targets/s390x-softmmu.mak
    M configs/targets/x86_64-softmmu.mak
    M docs/requirements.txt
    M ebpf/meson.build
    M hw/arm/virt.c
    R hw/core/hotplug-stubs.c
    M hw/core/machine.c
    M hw/core/meson.build
    M hw/display/meson.build
    A hw/display/ramfb-stubs.c
    M hw/display/vga.c
    M hw/i386/acpi-common.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/x86.c
    M hw/m68k/virt.c
    A hw/mem/memory-device-stubs.c
    M hw/mem/meson.build
    M hw/pci-host/q35.c
    M hw/ppc/pef.c
    M hw/ppc/spapr.c
    M hw/s390x/s390-virtio-ccw.c
    A hw/usb/bus-stub.c
    M hw/usb/meson.build
    M hw/virtio/meson.build
    A hw/virtio/virtio-md-stubs.c
    M include/exec/confidential-guest-support.h
    M include/exec/cpu-common.h
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/exec/ramblock.h
    M include/hw/boards.h
    M include/hw/i386/pc.h
    M include/hw/pci-host/q35.h
    R include/hw/ppc/pef.h
    M include/qemu/config-file.h
    M include/standard-headers/asm-x86/bootparam.h
    M include/standard-headers/asm-x86/kvm_para.h
    A include/standard-headers/asm-x86/setup_data.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/fuse.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/virtio_gpu.h
    M include/standard-headers/linux/virtio_pci.h
    M include/standard-headers/linux/virtio_snd.h
    M include/sysemu/hostmem.h
    M include/sysemu/kvm.h
    M include/sysemu/kvm_int.h
    M include/sysemu/sysemu.h
    M linux-headers/asm-arm64/kvm.h
    M linux-headers/asm-arm64/sve_context.h
    M linux-headers/asm-generic/bitsperlong.h
    M linux-headers/asm-loongarch/kvm.h
    M linux-headers/asm-mips/kvm.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-riscv/kvm.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-x86/kvm.h
    A linux-headers/linux/bits.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/psp-sev.h
    M linux-headers/linux/vhost.h
    M meson.build
    A migration/colo-stubs.c
    M migration/meson.build
    M monitor/meson.build
    A monitor/qemu-config-qmp.c
    A net/colo-stubs.c
    M net/meson.build
    M pythondeps.toml
    M qapi/qom.json
    M scripts/update-linux-headers.sh
    M semihosting/meson.build
    A semihosting/stubs-all.c
    A semihosting/stubs-system.c
    R stubs/colo-compare.c
    R stubs/colo.c
    M stubs/fdset.c
    A stubs/hotplug-stubs.c
    R stubs/isa-bus.c
    R stubs/memory_device.c
    M stubs/meson.build
    R stubs/module-opts.c
    M stubs/monitor-core.c
    A stubs/monitor-internal.c
    R stubs/monitor.c
    R stubs/pci-bus.c
    M stubs/qdev.c
    M stubs/qtest.c
    R stubs/ramfb.c
    A stubs/replay-mode.c
    M stubs/replay.c
    R stubs/semihost-all.c
    R stubs/semihost.c
    R stubs/usb-dev-stub.c
    R stubs/virtio-md-pci.c
    M system/memory.c
    M system/physmem.c
    M system/runstate.c
    M target/arm/kvm.c
    A target/i386/confidential-guest.c
    A target/i386/confidential-guest.h
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/host-cpu.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/kvm/kvm.c
    M target/i386/kvm/kvm_i386.h
    M target/i386/kvm/meson.build
    R target/i386/kvm/sev-stub.c
    M target/i386/meson.build
    M target/i386/sev.c
    M target/i386/sev.h
    M target/i386/tcg/translate.c
    M target/loongarch/kvm/kvm.c
    M target/mips/kvm.c
    M target/ppc/kvm.c
    M target/riscv/kvm/kvm-cpu.c
    M target/s390x/kvm/kvm.c
    M target/s390x/kvm/pv.c
    M target/s390x/kvm/pv.h
    M tests/meson.build
    M tests/unit/meson.build
    M util/meson.build
    M util/qemu-config.c

  Log Message:
  -----------
  Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* cleanups for stubs
* do not link pixman automatically into all targets
* optimize computation of VGA dirty memory region
* kvm: use configs/ definition to conditionalize debug support
* hw: Add compat machines for 9.1
* target/i386: add guest-phys-bits cpu property
* target/i386: Introduce Icelake-Server-v7 and SierraForest models
* target/i386: Export RFDS bit to guests
* q35: SMM ranges cleanups
* target/i386: basic support for confidential guests
* linux-headers: update headers
* target/i386: SEV: use KVM_SEV_INIT2 if possible
* kvm: Introduce support for memory_attributes
* RAMBlock: Add support of KVM private guest memfd
* Consolidate use of warn_report_once()
* pythondeps.toml: warn about updates needed to docs/requirements.txt
* target/i386: always write 32-bits for SGDT and SIDT

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmYn1UkUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroO1nwgAhRQhkYcdtFc649WJWTNvJCNzmek0
# Sg7trH2NKlwA75zG8Qv4TR3E71UrXoY9oItwYstc4Erz+tdf73WyaHMF3cEk1p82
# xx3LcBYhP7jGSjabxTkZsFU8+MM1raOjRN/tHvfcjYLaJOqJZplnkaVhMbNPsVuM
# IPJ5bVQohxpmHKPbeFNpF4QJ9wGyZAYOfJOFCk09xQtHnA8CtFjS9to33QPAR/Se
# OVZwRCigVjf0KNmCnHC8tJHoW8pG/cdQAr3qqd397XbM1vVELv9fiXiMoGF78UsY
# trO4K2yg6N5Sly4Qv/++zZ0OZNkL3BREGp3wf4eTSvLXxqSGvfi8iLpFGA==
# =lwSL
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 23 Apr 2024 08:35:37 AM PDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [undefined]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (63 commits)
  target/i386/translate.c: always write 32-bits for SGDT and SIDT
  pythondeps.toml: warn about updates needed to docs/requirements.txt
  accel/tcg/icount-common: Consolidate the use of warn_report_once()
  target/i386/cpu: Merge the warning and error messages for AMD HT check
  target/i386/cpu: Consolidate the use of warn_report_once()
  target/i386/host-cpu: Consolidate the use of warn_report_once()
  kvm/tdx: Ignore memory conversion to shared of unassigned region
  kvm/tdx: Don't complain when converting vMMIO region to shared
  kvm: handle KVM_EXIT_MEMORY_FAULT
  physmem: Introduce ram_block_discard_guest_memfd_range()
  RAMBlock: make guest_memfd require uncoordinated discard
  HostMem: Add mechanism to opt in kvm guest memfd via MachineState
  kvm/memory: Make memory type private by default if it has guest memfd backend
  kvm: Enable KVM_SET_USER_MEMORY_REGION2 for memslot
  RAMBlock: Add support of KVM private guest memfd
  kvm: Introduce support for memory_attributes
  trace/kvm: Split address space and slot id in trace_kvm_set_user_memory()
  hw/i386/sev: Use legacy SEV VM types for older machine types
  i386/sev: Add 'legacy-vm-type' parameter for SEV guest objects
  target/i386: SEV: use KVM_SEV_INIT2 if possible
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/c25df57ae8f9...13b1e9667737

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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