mbox

[PULL,00/38] Rust, i386 patches for 2024-01-10

Message ID 20250110184620.408302-1-pbonzini@redhat.com (mailing list archive)
State New
Headers show

Pull-request

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

Message

Paolo Bonzini Jan. 10, 2025, 6:45 p.m. UTC
The following changes since commit 6528013b5f5ba6bb3934b7f5fe57a3110680530f:

  Merge tag 'qga-pull-2025-01-06' of https://github.com/kostyanf14/qemu into staging (2025-01-06 09:39:02 -0500)

are available in the Git repository at:

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

for you to fetch changes up to d56b3fe297c307292e76d25358e2e3e367226c43:

  i386/cpu: Set and track CPUID_EXT3_CMP_LEG in env->features[FEAT_8000_0001_ECX] (2025-01-10 19:44:25 +0100)

----------------------------------------------------------------
* rust: miscellaneous changes
* target/i386: small code generation improvements
* target/i386: various cleanups and fixes
* cpu: remove env->nr_cores

----------------------------------------------------------------
Paolo Bonzini (19):
      rust: fix --enable-debug-mutex
      rust: add --check-cfg test to rustc arguments
      rust: qom: add ParentField
      rust: add a utility module for compile-time type checks
      rust: macros: check that #[derive(Object)] requires #[repr(C)]
      rust: macros: check that the first field of a #[derive(Object)] struct is a ParentField
      rust: qom: automatically use Drop trait to implement instance_finalize
      rust: qom: move device_id to PL011 class side
      rust: pl011: only leave embedded object initialization in instance_init
      rust: qom: make INSTANCE_POST_INIT take a shared reference
      rust: qemu-api-macros: extend error reporting facility to parse errors
      rust: qemu-api-macros: add automatic TryFrom/TryInto derivation
      rust: qdev: expose inherited methods to subclasses of SysBusDevice
      rust: hide warnings for subprojects
      qom: remove unused field
      make-release: only leave tarball of wrap-file subprojects
      target/i386: improve code generation for BT
      target/i386: use shr to load high-byte registers into T0/T1
      target/i386/kvm: Replace ARRAY_SIZE(msr_handlers) with KVM_MSR_FILTER_MAX_RANGES

Xiaoyao Li (10):
      i386/cpu: Extract a common fucntion to setup value of MSR_CORE_THREAD_COUNT
      i386/cpu: Drop the variable smp_cores and smp_threads in x86_cpu_pre_plug()
      i386/cpu: Drop cores_per_pkg in cpu_x86_cpuid()
      i386/topology: Update the comment of x86_apicid_from_topo_ids()
      i386/topology: Introduce helpers for various topology info of different level
      i386/cpu: Track a X86CPUTopoInfo directly in CPUX86State
      i386/cpu: Hoist check of CPUID_EXT3_TOPOEXT against threads_per_core
      cpu: Remove nr_cores from struct CPUState
      i386/cpu: Set up CPUID_HT in x86_cpu_expand_features() instead of cpu_x86_cpuid()
      i386/cpu: Set and track CPUID_EXT3_CMP_LEG in env->features[FEAT_8000_0001_ECX]

Zhao Liu (9):
      i386/cpu: Mark avx10_version filtered when prefix is NULL
      target/i386/kvm: Add feature bit definitions for KVM CPUID
      target/i386/kvm: Remove local MSR_KVM_WALL_CLOCK and MSR_KVM_SYSTEM_TIME definitions
      target/i386/kvm: Only save/load kvmclock MSRs when kvmclock enabled
      target/i386/kvm: Drop workaround for KVM_X86_DISABLE_EXITS_HTL typo
      target/i386/confidential-guest: Fix comment of x86_confidential_guest_kvm_type()
      target/i386/kvm: Clean up return values of MSR filter related functions
      target/i386/kvm: Return -1 when kvm_msr_energy_thread_init() fails
      target/i386/kvm: Clean up error handling in kvm_arch_init()

 include/hw/core/cpu.h                              |   2 -
 include/hw/i386/topology.h                         |  30 +++-
 include/qom/object.h                               |   5 +-
 target/i386/confidential-guest.h                   |   2 +-
 target/i386/cpu.h                                  |  31 +++-
 hw/core/cpu-common.c                               |   1 -
 hw/i386/kvm/clock.c                                |   5 +-
 hw/i386/x86-common.c                               |  22 +--
 qom/object.c                                       |   1 -
 system/cpus.c                                      |   1 -
 target/i386/cpu-system.c                           |  11 ++
 target/i386/cpu.c                                  | 119 ++++++-------
 target/i386/hvf/x86_emu.c                          |   3 +-
 target/i386/kvm/kvm.c                              | 197 ++++++++++-----------
 target/i386/tcg/system/misc_helper.c               |   3 +-
 target/i386/tcg/translate.c                        |   2 +-
 target/i386/tcg/emit.c.inc                         |  59 ++++--
 rust/hw/char/pl011/src/device.rs                   |  79 ++++-----
 rust/hw/char/pl011/src/lib.rs                      |  28 +--
 rust/qemu-api-macros/src/lib.rs                    | 150 ++++++++++++----
 rust/qemu-api-macros/src/utils.rs                  |  26 +++
 rust/qemu-api/meson.build                          |   3 +-
 rust/qemu-api/src/assertions.rs                    |  90 ++++++++++
 rust/qemu-api/src/irq.rs                           |   3 +-
 rust/qemu-api/src/lib.rs                           |   1 +
 rust/qemu-api/src/prelude.rs                       |   2 +
 rust/qemu-api/src/qom.rs                           |  85 +++++++--
 rust/qemu-api/src/sysbus.rs                        |  23 ++-
 rust/qemu-api/tests/tests.rs                       |   4 +-
 scripts/make-release                               |  31 +++-
 scripts/rust/rustc_args.py                         |   2 +
 subprojects/arbitrary-int-1-rs.wrap                |   3 +
 subprojects/bilge-0.2-rs.wrap                      |   3 +
 subprojects/bilge-impl-0.2-rs.wrap                 |   3 +
 subprojects/either-1-rs.wrap                       |   3 +
 subprojects/itertools-0.11-rs.wrap                 |   3 +
 .../packagefiles/arbitrary-int-1-rs/meson.build    |   1 +
 subprojects/packagefiles/bilge-0.2-rs/meson.build  |   1 +
 .../packagefiles/bilge-impl-0.2-rs/meson.build     |   1 +
 subprojects/packagefiles/either-1-rs/meson.build   |   1 +
 .../packagefiles/itertools-0.11-rs/meson.build     |   1 +
 .../packagefiles/proc-macro-error-1-rs/meson.build |   1 +
 .../proc-macro-error-attr-1-rs/meson.build         |   1 +
 .../packagefiles/proc-macro2-1-rs/meson.build      |   1 +
 subprojects/packagefiles/quote-1-rs/meson.build    |   1 +
 subprojects/packagefiles/syn-2-rs/meson.build      |   1 +
 .../packagefiles/unicode-ident-1-rs/meson.build    |   1 +
 subprojects/proc-macro-error-1-rs.wrap             |   3 +
 subprojects/proc-macro-error-attr-1-rs.wrap        |   3 +
 subprojects/proc-macro2-1-rs.wrap                  |   3 +
 subprojects/quote-1-rs.wrap                        |   3 +
 subprojects/syn-2-rs.wrap                          |   3 +
 subprojects/unicode-ident-1-rs.wrap                |   3 +
 subprojects/unicode-ident-1-rs/meson.build         |  20 ---
 54 files changed, 716 insertions(+), 369 deletions(-)
 create mode 100644 rust/qemu-api-macros/src/utils.rs
 create mode 100644 rust/qemu-api/src/assertions.rs
 delete mode 100644 subprojects/unicode-ident-1-rs/meson.build