[PULL 00/35] i386 (MSHV, migration) and Rust changes for 2025-10-09

Paolo Bonzini posted 35 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251009075026.505715-1-pbonzini@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Magnus Kulke <magnus.kulke@linux.microsoft.com>, Wei Liu <wei.liu@kernel.org>, "Alex Bennée" <alex.bennee@linaro.org>, Thomas Huth <thuth@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Markus Armbruster <armbru@redhat.com>, "Dr. David Alan Gilbert" <dave@treblig.org>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, "Michael S. Tsirkin" <mst@redhat.com>, Cornelia Huck <cohuck@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Eric Blake <eblake@redhat.com>, Manos Pitsidianakis <manos.pitsidianakis@linaro.org>, Cameron Esfahani <dirty@apple.com>, Roman Bolshakov <rbolshakov@ddn.com>, Phil Dennis-Jordan <phil@philjordan.eu>, Marcelo Tosatti <mtosatti@redhat.com>
MAINTAINERS                                        |   15 +
docs/about/build-platforms.rst                     |    2 +-
docs/devel/codebase.rst                            |    2 +-
docs/glossary.rst                                  |    7 +-
docs/system/introduction.rst                       |    3 +
configure                                          |   13 +-
meson.build                                        |   15 +
qapi/accelerator.json                              |   29 +
accel/mshv/trace.h                                 |   14 +
include/hw/core/cpu.h                              |    2 +-
include/hw/hyperv/hvgdk.h                          |   20 +
include/hw/hyperv/hvgdk_mini.h                     |  817 +++++++++
include/hw/hyperv/hvhdk.h                          |  249 +++
include/hw/hyperv/hvhdk_mini.h                     |  102 ++
include/monitor/hmp.h                              |    1 +
include/system/accel-irq.h                         |   37 +
include/system/hw_accel.h                          |    1 +
include/system/mshv.h                              |   64 +
include/system/mshv_int.h                          |  155 ++
linux-headers/linux/mshv.h                         |  291 ++++
target/i386/cpu.h                                  |   16 +-
target/i386/emulate/x86_decode.h                   |    9 +
target/i386/emulate/x86_emu.h                      |    2 +
accel/accel-irq.c                                  |  106 ++
accel/mshv/irq.c                                   |  399 +++++
accel/mshv/mem.c                                   |  563 +++++++
accel/mshv/mshv-all.c                              |  727 ++++++++
accel/mshv/msr.c                                   |  375 +++++
accel/stubs/mshv-stub.c                            |   44 +
hw/core/machine-hmp-cmds.c                         |   15 +
hw/core/machine-qmp-cmds.c                         |   14 +
hw/i386/pc.c                                       |    2 +
hw/intc/apic.c                                     |    8 +
hw/intc/ioapic.c                                   |   20 +-
hw/virtio/virtio-pci.c                             |   21 +-
target/i386/cpu.c                                  |   32 +-
target/i386/emulate/x86_decode.c                   |   27 +-
target/i386/emulate/x86_emu.c                      |    3 +-
target/i386/kvm/kvm.c                              |    6 +-
target/i386/mshv/mshv-cpu.c                        | 1763 ++++++++++++++++++++
target/i386/mshv/x86.c                             |  297 ++++
accel/Kconfig                                      |    3 +
accel/meson.build                                  |    3 +-
accel/mshv/meson.build                             |    9 +
accel/mshv/trace-events                            |   33 +
accel/stubs/meson.build                            |    1 +
hmp-commands-info.hx                               |   13 +
meson_options.txt                                  |    2 +
qemu-options.hx                                    |   16 +-
rust/Cargo.lock                                    |  180 ++
rust/Cargo.toml                                    |    1 +
rust/bql/Cargo.toml                                |    1 +
rust/bql/meson.build                               |    1 +
rust/bql/src/bindings.rs                           |    4 +
rust/chardev/Cargo.toml                            |    1 +
rust/chardev/meson.build                           |    2 +-
rust/chardev/src/bindings.rs                       |    4 +
rust/hw/char/pl011/Cargo.toml                      |    1 +
rust/hw/char/pl011/meson.build                     |    1 +
rust/hw/char/pl011/src/bindings.rs                 |    5 +
rust/hw/core/Cargo.toml                            |    1 +
rust/hw/core/meson.build                           |    2 +-
rust/hw/core/src/bindings.rs                       |    3 +
rust/meson.build                                   |    2 +
rust/migration/Cargo.toml                          |    1 +
rust/migration/meson.build                         |    2 +-
rust/migration/src/bindings.rs                     |    1 +
rust/qom/Cargo.toml                                |    1 +
rust/qom/meson.build                               |    2 +-
rust/qom/src/bindings.rs                           |    2 +
rust/system/Cargo.toml                             |    1 +
rust/system/meson.build                            |    2 +-
rust/system/src/bindings.rs                        |    4 +
rust/util/Cargo.toml                               |    1 +
rust/util/meson.build                              |    2 +-
rust/util/src/bindings.rs                          |    2 +
scripts/archive-source.sh                          |    1 +
scripts/meson-buildoptions.sh                      |    3 +
scripts/rust/rust_root_crate.sh                    |    2 +-
scripts/update-linux-headers.sh                    |    2 +-
subprojects/.gitignore                             |   31 +-
subprojects/glib-sys-0.21-rs.wrap                  |    7 +
.../packagefiles/glib-sys-0.21-rs/meson.build      |   33 +
target/i386/emulate/meson.build                    |    7 +-
target/i386/meson.build                            |    2 +
target/i386/mshv/meson.build                       |    8 +
tests/docker/common.rc                             |    2 +-
87 files changed, 6617 insertions(+), 79 deletions(-)
create mode 100644 accel/mshv/trace.h
create mode 100644 include/hw/hyperv/hvgdk.h
create mode 100644 include/hw/hyperv/hvgdk_mini.h
create mode 100644 include/hw/hyperv/hvhdk.h
create mode 100644 include/hw/hyperv/hvhdk_mini.h
create mode 100644 include/system/accel-irq.h
create mode 100644 include/system/mshv.h
create mode 100644 include/system/mshv_int.h
create mode 100644 linux-headers/linux/mshv.h
create mode 100644 accel/accel-irq.c
create mode 100644 accel/mshv/irq.c
create mode 100644 accel/mshv/mem.c
create mode 100644 accel/mshv/mshv-all.c
create mode 100644 accel/mshv/msr.c
create mode 100644 accel/stubs/mshv-stub.c
create mode 100644 target/i386/mshv/mshv-cpu.c
create mode 100644 target/i386/mshv/x86.c
create mode 100644 accel/mshv/meson.build
create mode 100644 accel/mshv/trace-events
create mode 100644 subprojects/glib-sys-0.21-rs.wrap
create mode 100644 subprojects/packagefiles/glib-sys-0.21-rs/meson.build
create mode 100644 target/i386/mshv/meson.build
[PULL 00/35] i386 (MSHV, migration) and Rust changes for 2025-10-09
Posted by Paolo Bonzini 1 month ago
The following changes since commit 517e9b4862cc9798b7a24b1935d94c2f96787f12:

  Merge tag 'qtest-20251001-pull-request' of https://gitlab.com/farosas/qemu into staging (2025-10-01 15:03:00 -0700)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to b9ef6198d709f431d893d1b5525cdf7fd7a3e11b:

  rust: fix path to rust_root_crate.sh (2025-10-09 09:48:35 +0200)

----------------------------------------------------------------
* i386: fix migration issues in 10.1
* target/i386/mshv: new accelerator
* rust: use glib-sys-rs
* rust: fixes for docker tests

----------------------------------------------------------------
Hector Cao (1):
      target/i386: add compatibility property for pdcm feature

Magnus Kulke (26):
      accel: Add Meson and config support for MSHV accelerator
      target/i386/emulate: Allow instruction decoding from stream
      target/i386/mshv: Add x86 decoder/emu implementation
      hw/intc: Generalize APIC helper names from kvm_* to accel_*
      include/hw/hyperv: Add MSHV ABI header definitions
      linux-headers/linux: Add mshv.h headers
      accel/mshv: Add accelerator skeleton
      accel/mshv: Register memory region listeners
      accel/mshv: Initialize VM partition
      accel/mshv: Add vCPU creation and execution loop
      accel/mshv: Add vCPU signal handling
      target/i386/mshv: Add CPU create and remove logic
      target/i386/mshv: Implement mshv_store_regs()
      target/i386/mshv: Implement mshv_get_standard_regs()
      target/i386/mshv: Implement mshv_get_special_regs()
      target/i386/mshv: Implement mshv_arch_put_registers()
      target/i386/mshv: Set local interrupt controller state
      target/i386/mshv: Register CPUID entries with MSHV
      target/i386/mshv: Register MSRs with MSHV
      target/i386/mshv: Integrate x86 instruction decoder/emulator
      target/i386/mshv: Write MSRs to the hypervisor
      target/i386/mshv: Implement mshv_vcpu_run()
      accel/mshv: Handle overlapping mem mappings
      target/i386/mshv: Use preallocated page for hvcall
      docs: Add mshv to documentation
      MAINTAINERS: Add maintainers for mshv accelerator

Marc-André Lureau (4):
      subprojects: add glib-sys-rs
      rust: use glib-sys
      build-sys: default to host vendor for rust target triple
      tests/docker: make --enable-rust overridable with EXTRA_CONFIGURE_OPTS

Paolo Bonzini (2):
      subprojects: Remove version number from .gitignore
      target/i386: add compatibility property for arch_capabilities

Praveen K Paladugu (1):
      qapi/accel: Allow to query mshv capabilities

Stefan Hajnoczi (1):
      rust: fix path to rust_root_crate.sh

 MAINTAINERS                                        |   15 +
 docs/about/build-platforms.rst                     |    2 +-
 docs/devel/codebase.rst                            |    2 +-
 docs/glossary.rst                                  |    7 +-
 docs/system/introduction.rst                       |    3 +
 configure                                          |   13 +-
 meson.build                                        |   15 +
 qapi/accelerator.json                              |   29 +
 accel/mshv/trace.h                                 |   14 +
 include/hw/core/cpu.h                              |    2 +-
 include/hw/hyperv/hvgdk.h                          |   20 +
 include/hw/hyperv/hvgdk_mini.h                     |  817 +++++++++
 include/hw/hyperv/hvhdk.h                          |  249 +++
 include/hw/hyperv/hvhdk_mini.h                     |  102 ++
 include/monitor/hmp.h                              |    1 +
 include/system/accel-irq.h                         |   37 +
 include/system/hw_accel.h                          |    1 +
 include/system/mshv.h                              |   64 +
 include/system/mshv_int.h                          |  155 ++
 linux-headers/linux/mshv.h                         |  291 ++++
 target/i386/cpu.h                                  |   16 +-
 target/i386/emulate/x86_decode.h                   |    9 +
 target/i386/emulate/x86_emu.h                      |    2 +
 accel/accel-irq.c                                  |  106 ++
 accel/mshv/irq.c                                   |  399 +++++
 accel/mshv/mem.c                                   |  563 +++++++
 accel/mshv/mshv-all.c                              |  727 ++++++++
 accel/mshv/msr.c                                   |  375 +++++
 accel/stubs/mshv-stub.c                            |   44 +
 hw/core/machine-hmp-cmds.c                         |   15 +
 hw/core/machine-qmp-cmds.c                         |   14 +
 hw/i386/pc.c                                       |    2 +
 hw/intc/apic.c                                     |    8 +
 hw/intc/ioapic.c                                   |   20 +-
 hw/virtio/virtio-pci.c                             |   21 +-
 target/i386/cpu.c                                  |   32 +-
 target/i386/emulate/x86_decode.c                   |   27 +-
 target/i386/emulate/x86_emu.c                      |    3 +-
 target/i386/kvm/kvm.c                              |    6 +-
 target/i386/mshv/mshv-cpu.c                        | 1763 ++++++++++++++++++++
 target/i386/mshv/x86.c                             |  297 ++++
 accel/Kconfig                                      |    3 +
 accel/meson.build                                  |    3 +-
 accel/mshv/meson.build                             |    9 +
 accel/mshv/trace-events                            |   33 +
 accel/stubs/meson.build                            |    1 +
 hmp-commands-info.hx                               |   13 +
 meson_options.txt                                  |    2 +
 qemu-options.hx                                    |   16 +-
 rust/Cargo.lock                                    |  180 ++
 rust/Cargo.toml                                    |    1 +
 rust/bql/Cargo.toml                                |    1 +
 rust/bql/meson.build                               |    1 +
 rust/bql/src/bindings.rs                           |    4 +
 rust/chardev/Cargo.toml                            |    1 +
 rust/chardev/meson.build                           |    2 +-
 rust/chardev/src/bindings.rs                       |    4 +
 rust/hw/char/pl011/Cargo.toml                      |    1 +
 rust/hw/char/pl011/meson.build                     |    1 +
 rust/hw/char/pl011/src/bindings.rs                 |    5 +
 rust/hw/core/Cargo.toml                            |    1 +
 rust/hw/core/meson.build                           |    2 +-
 rust/hw/core/src/bindings.rs                       |    3 +
 rust/meson.build                                   |    2 +
 rust/migration/Cargo.toml                          |    1 +
 rust/migration/meson.build                         |    2 +-
 rust/migration/src/bindings.rs                     |    1 +
 rust/qom/Cargo.toml                                |    1 +
 rust/qom/meson.build                               |    2 +-
 rust/qom/src/bindings.rs                           |    2 +
 rust/system/Cargo.toml                             |    1 +
 rust/system/meson.build                            |    2 +-
 rust/system/src/bindings.rs                        |    4 +
 rust/util/Cargo.toml                               |    1 +
 rust/util/meson.build                              |    2 +-
 rust/util/src/bindings.rs                          |    2 +
 scripts/archive-source.sh                          |    1 +
 scripts/meson-buildoptions.sh                      |    3 +
 scripts/rust/rust_root_crate.sh                    |    2 +-
 scripts/update-linux-headers.sh                    |    2 +-
 subprojects/.gitignore                             |   31 +-
 subprojects/glib-sys-0.21-rs.wrap                  |    7 +
 .../packagefiles/glib-sys-0.21-rs/meson.build      |   33 +
 target/i386/emulate/meson.build                    |    7 +-
 target/i386/meson.build                            |    2 +
 target/i386/mshv/meson.build                       |    8 +
 tests/docker/common.rc                             |    2 +-
 87 files changed, 6617 insertions(+), 79 deletions(-)
 create mode 100644 accel/mshv/trace.h
 create mode 100644 include/hw/hyperv/hvgdk.h
 create mode 100644 include/hw/hyperv/hvgdk_mini.h
 create mode 100644 include/hw/hyperv/hvhdk.h
 create mode 100644 include/hw/hyperv/hvhdk_mini.h
 create mode 100644 include/system/accel-irq.h
 create mode 100644 include/system/mshv.h
 create mode 100644 include/system/mshv_int.h
 create mode 100644 linux-headers/linux/mshv.h
 create mode 100644 accel/accel-irq.c
 create mode 100644 accel/mshv/irq.c
 create mode 100644 accel/mshv/mem.c
 create mode 100644 accel/mshv/mshv-all.c
 create mode 100644 accel/mshv/msr.c
 create mode 100644 accel/stubs/mshv-stub.c
 create mode 100644 target/i386/mshv/mshv-cpu.c
 create mode 100644 target/i386/mshv/x86.c
 create mode 100644 accel/mshv/meson.build
 create mode 100644 accel/mshv/trace-events
 create mode 100644 subprojects/glib-sys-0.21-rs.wrap
 create mode 100644 subprojects/packagefiles/glib-sys-0.21-rs/meson.build
 create mode 100644 target/i386/mshv/meson.build
-- 
2.51.0


Re: [PULL 00/35] i386 (MSHV, migration) and Rust changes for 2025-10-09
Posted by Richard Henderson 1 month ago
On 10/9/25 00:49, Paolo Bonzini wrote:
> The following changes since commit 517e9b4862cc9798b7a24b1935d94c2f96787f12:
> 
>    Merge tag 'qtest-20251001-pull-request' ofhttps://gitlab.com/farosas/qemu into staging (2025-10-01 15:03:00 -0700)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/bonzini/qemu.git tags/for-upstream
> 
> for you to fetch changes up to b9ef6198d709f431d893d1b5525cdf7fd7a3e11b:
> 
>    rust: fix path to rust_root_crate.sh (2025-10-09 09:48:35 +0200)
> 
> ----------------------------------------------------------------
> * i386: fix migration issues in 10.1
> * target/i386/mshv: new accelerator
> * rust: use glib-sys-rs
> * rust: fixes for docker tests

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/10.2 as appropriate.

r~