Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: d27c048318399f92c6655f0bb58aba656248ccc1
      
https://github.com/qemu/qemu/commit/d27c048318399f92c6655f0bb58aba656248ccc1
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M target/ppc/helper_regs.c

  Log Message:
  -----------
  target/ppc: limit cpu_interrupt_exittb to system emulation

It is not used by user-mode emulation and is the only caller of
cpu_interrupt() in qemu-ppc* binaries.

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 7f7c024e89c84cb640063e37d3a1b4e5210f68d6
      
https://github.com/qemu/qemu/commit/7f7c024e89c84cb640063e37d3a1b4e5210f68d6
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M target/sparc/int32_helper.c
    M target/sparc/int64_helper.c

  Log Message:
  -----------
  target/sparc: limit cpu_check_irqs to system emulation

It is not used by user-mode emulation and is the only caller of
cpu_interrupt() in qemu-sparc* binaries.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 5670a53e320414e1cef7b788cf2b5a145c348afd
      
https://github.com/qemu/qemu/commit/5670a53e320414e1cef7b788cf2b5a145c348afd
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M target/i386/helper.c

  Log Message:
  -----------
  target/i386: limit a20 to system emulation

It is not used by user-mode emulation and is the only caller of
cpu_interrupt() in qemu-i386 and qemu-x86_64.

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: d9ff26840f0887332404cd6b02ac91b802836751
      
https://github.com/qemu/qemu/commit/d9ff26840f0887332404cd6b02ac91b802836751
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    A target/arm/cpu-irq.c
    M target/arm/cpu.c
    A target/arm/el2-stubs.c
    M target/arm/helper.c
    M target/arm/internals.h
    M target/arm/meson.build

  Log Message:
  -----------
  target-arm: remove uses of cpu_interrupt() for user-mode emulation

Arm leaves around some functions that use cpu_interrupt(), even for
user-mode emulation when the code is unreachable.  Pull out the
system-mode implementation to a separate file, and add stubs for
CONFIG_USER_ONLY.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 84bd80258e8bed25e3652ff185b68038314f0346
      
https://github.com/qemu/qemu/commit/84bd80258e8bed25e3652ff185b68038314f0346
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/user-exec.c

  Log Message:
  -----------
  user-exec: remove cpu_interrupt() stub

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 846c349ddd4e124b2146b94b5a5133c631dbd71d
      
https://github.com/qemu/qemu/commit/846c349ddd4e124b2146b94b5a5133c631dbd71d
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M hw/core/cpu-system.c
    M target/avr/helper.c
    M target/i386/hvf/x86hvf.c
    M target/i386/kvm/kvm.c
    M target/i386/nvmm/nvmm-all.c
    M target/i386/tcg/system/seg_helper.c
    M target/i386/tcg/system/svm_helper.c
    M target/i386/whpx/whpx-all.c
    M target/openrisc/sys_helper.c
    M target/rx/helper.c
    M target/s390x/tcg/excp_helper.c

  Log Message:
  -----------
  treewide: clear bits of cs->interrupt_request with cpu_reset_interrupt()

Open coding cpu_reset_interrupt() can cause bugs if the BQL is not
taken, for example i386 has the call chain kvm_cpu_exec() ->
kvm_put_vcpu_events() -> kvm_arch_put_registers().

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: a980b3773134c32bf446f16d48c5984d2dbcb112
      
https://github.com/qemu/qemu/commit/a980b3773134c32bf446f16d48c5984d2dbcb112
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M hw/core/cpu-common.c
    M include/hw/core/cpu.h
    M system/cpus.c

  Log Message:
  -----------
  cpu-common: use atomic access for interrupt_request

Writes to interrupt_request used non-atomic accesses, but there are a
few cases where the access was not protected by the BQL.  Now that
there is a full set of helpers, it's easier to guarantee that
interrupt_request accesses are fully atomic, so just drop the
requirement instead of fixing them.

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 412543ded6da28f94f139fe6c8a300b9fed46305
      
https://github.com/qemu/qemu/commit/412543ded6da28f94f139fe6c8a300b9fed46305
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M include/hw/core/cpu.h

  Log Message:
  -----------
  cpus: document that qemu_cpu_kick() can be used for BQL-less operation

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 631e63a7c71ea178de637a412714b080d29ddb10
      
https://github.com/qemu/qemu/commit/631e63a7c71ea178de637a412714b080d29ddb10
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/cpu-exec.c
    M accel/tcg/tcg-accel-ops-rr.c
    M hw/core/cpu-common.c
    M target/i386/nvmm/nvmm-all.c
    M target/i386/whpx/whpx-all.c

  Log Message:
  -----------
  accel: use store_release/load_acquire for cross-thread exit_request

Reads and writes cpu->exit_request do not use a load-acquire/store-release
pair right now, but this means that cpu_exit() may not write cpu->exit_request
after any flags that are read by the vCPU thread.

Probably everything is protected one way or the other by the BQL, because
cpu->exit_request leads to the slow path, where the CPU thread often takes
the BQL (for example, to go to sleep by waiting on the BQL-protected
cpu->halt_cond); but it's not clear, so use load-acquire/store-release
consistently.

Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 8b16e6d0f8ac62183753bdebe914d1005bc11af4
      
https://github.com/qemu/qemu/commit/8b16e6d0f8ac62183753bdebe914d1005bc11af4
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/tcg-accel-ops-mttcg.c
    M accel/tcg/tcg-accel-ops-rr.c
    M hw/ppc/spapr_hcall.c
    M include/hw/core/cpu.h
    M target/i386/kvm/kvm.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/nvmm/nvmm-all.c
    M target/i386/whpx/whpx-all.c

  Log Message:
  -----------
  accel: use atomic accesses for exit_request

CPU threads write exit_request as a "note to self" that they need to
go out to a slow path.  This write happens out of the BQL and can be
a data race with another threads' cpu_exit(); use atomic accesses
consistently.

While at it, change the source argument from int ("1") to bool ("true").

Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 42f128ccefd03ac056971ab93d395ed3f6b5901d
      
https://github.com/qemu/qemu/commit/42f128ccefd03ac056971ab93d395ed3f6b5901d
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M accel/tcg/tcg-accel-ops-mttcg.c
    M accel/tcg/tcg-accel-ops-mttcg.h
    M accel/tcg/tcg-accel-ops-rr.c
    M accel/tcg/tcg-accel-ops.c
    M accel/tcg/tcg-accel-ops.h
    M accel/tcg/user-exec.c
    M bsd-user/main.c
    M docs/devel/tcg-icount.rst
    M linux-user/main.c

  Log Message:
  -----------
  accel/tcg: create a thread-kick function for TCG

Round-robin TCG is calling into cpu_exit() directly.  In preparation
for making cpu_exit() usable from all accelerators, define a generic
thread-kick function for TCG which is used directly in the multi-threaded
case, and through CPU_FOREACH in the round-robin case.

Use it also for user-mode emulation, and take the occasion to move
the implementation to accel/tcg/user-exec.c.

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: dbe6ee9858b849364d2ef04322201044c50fe727
      
https://github.com/qemu/qemu/commit/dbe6ee9858b849364d2ef04322201044c50fe727
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/cpu-exec.c

  Log Message:
  -----------
  accel/tcg: inline cpu_exit()

Right now, cpu_exit() is not usable from all accelerators because it
includes a TCG-specific thread kick.  In fact, cpu_exit() doubles as
the TCG thread-kick via tcg_kick_vcpu_thread().

In preparation for changing that, inline cpu_exit() into
tcg_kick_vcpu_thread().  The direction of the calls can then be
reversed, with an accelerator-independent cpu_exit() calling into
qemu_vcpu_kick() rather than the opposite.

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 2a4f395633b38801ad03823cbce787f53faf6060
      
https://github.com/qemu/qemu/commit/2a4f395633b38801ad03823cbce787f53faf6060
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M hw/core/cpu-common.c

  Log Message:
  -----------
  cpus: remove TCG-ism from cpu_exit()

Now that TCG has its own kick function, make cpu_exit() do the right kick
for all accelerators.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 747e960dbe7fd6c429c680b68d0f924e5338d1de
      
https://github.com/qemu/qemu/commit/747e960dbe7fd6c429c680b68d0f924e5338d1de
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M cpu-common.c
    M hw/ppc/ppc.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas.c
    M replay/replay-events.c
    M system/cpu-timers.c
    M system/cpus.c
    M target/arm/tcg/mte_helper.c
    M target/i386/kvm/hyperv.c

  Log Message:
  -----------
  cpus: properly kick CPUs out of inner execution loop

Now that cpu_exit() actually kicks all accelerators, use it whenever
the message to another thread is processed in qemu_wait_io_event().

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 91374615a1471ed5d1f5d74fcd46c863162436bc
      
https://github.com/qemu/qemu/commit/91374615a1471ed5d1f5d74fcd46c863162436bc
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/dummy-cpus.c
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-accel-ops.c
    M accel/tcg/tcg-accel-ops-mttcg.c
    M accel/tcg/tcg-accel-ops-rr.c
    M cpu-common.c
    M include/hw/core/cpu.h
    M include/system/cpus.h
    M system/cpus.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/whpx/whpx-accel-ops.c

  Log Message:
  -----------
  treewide: rename qemu_wait_io_event/qemu_wait_io_event_common

Do so before extending it to the user-mode emulators, where there is no
such thing as an "I/O thread".

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 483498b3ca6d50a7e7f4c2ff70b75f86913b1a1f
      
https://github.com/qemu/qemu/commit/483498b3ca6d50a7e7f4c2ff70b75f86913b1a1f
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/user-exec.c
    M bsd-user/aarch64/target_arch_cpu.h
    M bsd-user/arm/target_arch_cpu.h
    M bsd-user/i386/target_arch_cpu.h
    M bsd-user/riscv/target_arch_cpu.h
    M bsd-user/x86_64/target_arch_cpu.h
    M include/hw/core/cpu.h
    M include/system/cpus.h
    M linux-user/aarch64/cpu_loop.c
    M linux-user/alpha/cpu_loop.c
    M linux-user/arm/cpu_loop.c
    M linux-user/hexagon/cpu_loop.c
    M linux-user/hppa/cpu_loop.c
    M linux-user/i386/cpu_loop.c
    M linux-user/loongarch64/cpu_loop.c
    M linux-user/m68k/cpu_loop.c
    M linux-user/microblaze/cpu_loop.c
    M linux-user/mips/cpu_loop.c
    M linux-user/openrisc/cpu_loop.c
    M linux-user/ppc/cpu_loop.c
    M linux-user/riscv/cpu_loop.c
    M linux-user/s390x/cpu_loop.c
    M linux-user/sh4/cpu_loop.c
    M linux-user/sparc/cpu_loop.c
    M linux-user/xtensa/cpu_loop.c

  Log Message:
  -----------
  bsd-user, linux-user: introduce qemu_process_cpu_events

Add a user-mode emulation version of the function.  More will be
added later, for now it is just process_queued_cpu_work.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: f87f808b22f2b06d8a6361191aa68f7b3bb6b4c9
      
https://github.com/qemu/qemu/commit/f87f808b22f2b06d8a6361191aa68f7b3bb6b4c9
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/cpu-exec.c
    M accel/tcg/tcg-accel-ops-rr.c
    M accel/tcg/tcg-accel-ops.c
    M accel/tcg/user-exec.c
    M system/cpus.c
    M target/i386/nvmm/nvmm-all.c
    M target/i386/whpx/whpx-all.c

  Log Message:
  -----------
  cpus: clear exit_request in qemu_process_cpu_events

Make the code common to all accelerators: after seeing cpu->exit_request
set to true, accelerator code needs to reach qemu_process_cpu_events_common().

So for the common cases where they use qemu_process_cpu_events(), go ahead and
clear it in there.  Note that the cheap qatomic_set() is enough because
at this point the thread has taken the BQL; qatomic_set_mb() is not needed.
In particular, this is the ordering of the communication between
I/O and vCPU threads is always the same.

In the I/O thread:

(a) store other memory locations that will be checked if cpu->exit_request
    or cpu->interrupt_request is 1 (for example cpu->stop or cpu->work_list
    for cpu->exit_request)

(b) cpu_exit(): store-release cpu->exit_request, or
(b) cpu_interrupt(): store-release cpu->interrupt_request

>>> at this point, cpu->halt_cond is broadcast and the BQL released

(c) do the accelerator-specific kick (e.g. write icount_decr for TCG,
    pthread_kill for KVM, etc.)

In the vCPU thread instead the opposite order is respected:

(c) the accelerator's execution loop exits thanks to the kick

(b) then the inner execution loop checks cpu->interrupt_request
    and cpu->exit_request.  If needed cpu->interrupt_request is
    converted into cpu->exit_request when work is needed outside
    the execution loop.

(a) then the other memory locations are checked.  Some may need to
    be read under the BQL, but the vCPU thread may also take other
    locks (e.g. for queued work items) or none at all.

qatomic_set_mb() would only be needed if the halt sleep was done
outside the BQL (though in that case, cpu->exit_request probably
would be replaced by a QemuEvent or something like that).

Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 58fa748809d04b7b5797f95e39aa7804fe674f51
      
https://github.com/qemu/qemu/commit/58fa748809d04b7b5797f95e39aa7804fe674f51
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/dummy-cpus.c
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-accel-ops.c
    M accel/tcg/tcg-accel-ops-mttcg.c
    M accel/tcg/tcg-accel-ops-rr.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/whpx/whpx-accel-ops.c

  Log Message:
  -----------
  accel: make all calls to qemu_process_cpu_events look the same

There is no reason for some accelerators to use qemu_process_cpu_events_common
(which is separated from qemu_process_cpu_events() specifically for round
robin TCG).  They can also check for events directly on the first pass through
the loop, instead of setting cpu->exit_request to true.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 8c3f5d844a15938df8779957e9c9e0cb240ac602
      
https://github.com/qemu/qemu/commit/8c3f5d844a15938df8779957e9c9e0cb240ac602
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M accel/tcg/cpu-exec.c

  Log Message:
  -----------
  tcg/user: do not set exit_request gratuitously

Whenever user-mode emulation needs to go all the way out of the cpu
exec loop, it uses cpu_exit(), which already sets cpu->exit_request.

Therefore, there is no need for tcg_kick_vcpu_thread() to set
cpu->exit_request again outside system emulation.

Reviewed-by: Igor Mammedov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: bc5f36a37830dd2212f8391278bb45d58dfbd78f
      
https://github.com/qemu/qemu/commit/bc5f36a37830dd2212f8391278bb45d58dfbd78f
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml

  Log Message:
  -----------
  ci: temporarily remove rust from Ubuntu

This is for the purpose of getting an easy-to-use base for future
development.  The plan is:
- that Debian will require trixie to enable Rust usage
- that Ubuntu will backport 1.83 to its 22.04 and 24.04 versions
  (https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318)

Marc-André is working on adding Rust to other CI jobs.

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 9141365a830192f5525ea8fb73db496ccd178fe8
      
https://github.com/qemu/qemu/commit/9141365a830192f5525ea8fb73db496ccd178fe8
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M configure
    M python/scripts/vendor.py
    R python/wheels/meson-1.8.1-py3-none-any.whl
    A python/wheels/meson-1.9.0-py3-none-any.whl
    M pythondeps.toml

  Log Message:
  -----------
  configure: bump Meson to 1.9.0 for use with Rust

Meson 1.9.0 provides mixed linking of Rust and C objects.  As a side effect,
this also allows adding dependencies with "sources: ..." files to Rust crates
that use structured_sources().

It can also clean up up the meson.build files for Rust noticeably, but due
to an issue with doctests (see https://github.com/mesonbuild/meson/pull/14973)
that will have to wait for 1.9.1.

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 49825d8dda3043d944f96ab78bb05ba79b5d6017
      
https://github.com/qemu/qemu/commit/49825d8dda3043d944f96ab78bb05ba79b5d6017
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M clippy.toml
    M docs/about/build-platforms.rst
    M docs/devel/rust.rst
    M meson.build
    M rust/Cargo.toml

  Log Message:
  -----------
  meson, cargo: require Rust 1.83.0

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: e002c6e8d7a6f8a4f17aaf66681532859bb1189c
      
https://github.com/qemu/qemu/commit/e002c6e8d7a6f8a4f17aaf66681532859bb1189c
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/bits/src/lib.rs
    M rust/qemu-api/src/assertions.rs
    M rust/qemu-api/src/cell.rs
    M rust/qemu-api/src/qom.rs
    M rust/qemu-api/src/timer.rs
    M rust/qemu-api/src/uninit.rs

  Log Message:
  -----------
  rust: add missing const markers for MSRV==1.83.0

Rust 1.83 allows more functions to be marked const.
Fix clippy with bumped minimum supported Rust version.

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 009b69695828c3c16af17c42dd39df2d7610e7f5
      
https://github.com/qemu/qemu/commit/009b69695828c3c16af17c42dd39df2d7610e7f5
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst
    M rust/qemu-api/src/callbacks.rs
    M rust/qemu-api/src/chardev.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/timer.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust: use inline const expressions

They were stabilized in Rust 1.79.0.

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 1fbba15d758b0aa33ffd85e4bbdab04186e73619
      
https://github.com/qemu/qemu/commit/1fbba15d758b0aa33ffd85e4bbdab04186e73619
  Author: Manos Pitsidianakis <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/src/device.rs
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/tests/tests.rs

  Log Message:
  -----------
  rust: add qdev Device derive macro

Add derive macro for declaring qdev properties directly above the field
definitions. To do this, we split DeviceImpl::properties method on a
separate trait so we can implement only that part in the derive macro
expansion (we cannot partially implement the DeviceImpl trait).

Adding a `property` attribute above the field declaration will generate
a `qemu_api::bindings::Property` array member in the device's property
list.

Signed-off-by: Manos Pitsidianakis <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 54dee000ccae1d49f188c1b251d32be535fbaff1
      
https://github.com/qemu/qemu/commit/54dee000ccae1d49f188c1b251d32be535fbaff1
  Author: Zhao Liu <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/src/device.rs
    M rust/qemu-api/src/errno.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/vmstate.rs
    M rust/qemu-api/tests/tests.rs
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust: vmstate: convert to use builder pattern

Similar to MemoryRegionOps, the builder pattern has two advantages:
1) it makes it possible to build a VMStateDescription that knows which
types it will be invoked on; 2) it provides a way to wrap the callbacks
and let devices avoid "unsafe".

Unfortunately, building a static VMStateDescription requires the
builder methods to be "const", and because the VMStateFields are
*also* static, this requires const_refs_static.  So this requires
Rust 1.83.0.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: ca9a3f4d1fef90f83c5ff1e58235022d4f62f6e0
      
https://github.com/qemu/qemu/commit/ca9a3f4d1fef90f83c5ff1e58235022d4f62f6e0
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/src/device.rs
    M rust/qemu-api/src/assertions.rs
    M rust/qemu-api/src/vmstate.rs
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust: vmstate: use const_refs_to_static

The VMStateDescriptionBuilder already needs const_refs_static, so
use it to remove the need for vmstate_clock! and vmstate_struct!,
as well as to simplify the implementation for scalars.

If the consts in the VMState trait can reference to static
VMStateDescription, scalars do not need the info_enum_to_ref!
indirection and structs can implement the VMState trait themselves.

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: f2b8e502fe8562363474db7839d36e00b210aded
      
https://github.com/qemu/qemu/commit/f2b8e502fe8562363474db7839d36e00b210aded
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/src/device.rs
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/tests/tests.rs

  Log Message:
  -----------
  rust: qdev: const_refs_to_static

Now that const_refs_static can be assumed, convert the members of
the DeviceImpl trait from functions to constants.  This lets the
compiler know that they have a 'static lifetime, and removes the
need for the weird "Box::leak()".

Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 3fc14e06dbe808af93f4139cc5636201d07a1c67
      
https://github.com/qemu/qemu/commit/3fc14e06dbe808af93f4139cc5636201d07a1c67
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst
    M rust/Cargo.toml

  Log Message:
  -----------
  docs/rust: update msrv

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 01dca07685a34d808d0a2e1ac7c79bd23875c3d9
      
https://github.com/qemu/qemu/commit/01dca07685a34d808d0a2e1ac7c79bd23875c3d9
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M meson.build
    M rust/Cargo.toml
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/lib.rs

  Log Message:
  -----------
  rust: remove unused global qemu "allocator"

The global allocator has always been disabled. There is no clear reason
Rust and C should use the same allocator. Allocations made from Rust
must be freed by Rust, and same for C, otherwise we head into troubles.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: d350d4821902a57f72ca78882856a3e386c9a640
      
https://github.com/qemu/qemu/commit/d350d4821902a57f72ca78882856a3e386c9a640
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/Cargo.toml

  Log Message:
  -----------
  rust: add workspace authors

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 02757b40b216dc257c832f0dfc2d6de8499d57a7
      
https://github.com/qemu/qemu/commit/02757b40b216dc257c832f0dfc2d6de8499d57a7
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust: move vmstate_clock!() to qdev module

This will allow to split vmstate to a standalone crate next.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: d9ad8658ee86b29fe2b15fd37ccbbe0b6d9f1cd6
      
https://github.com/qemu/qemu/commit/d9ad8658ee86b29fe2b15fd37ccbbe0b6d9f1cd6
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/qemu-api/src/qom.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust: move VMState handling to QOM module

This will allow to split vmstate to a standalone crate next.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 20d8bdadfef3e2d97bf8641d415562a3de095e0d
      
https://github.com/qemu/qemu/commit/20d8bdadfef3e2d97bf8641d415562a3de095e0d
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/qemu-api/src/cell.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust: move Cell vmstate impl

This will allow to split vmstate to a standalone crate next.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: f110ba248860c651e90145b23ba18f62c7e979ba
      
https://github.com/qemu/qemu/commit/f110ba248860c651e90145b23ba18f62c7e979ba
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    A rust/common/Cargo.toml
    A rust/common/meson.build
    A rust/common/src/assertions.rs
    A rust/common/src/bitops.rs
    A rust/common/src/callbacks.rs
    A rust/common/src/errno.rs
    A rust/common/src/lib.rs
    A rust/common/src/opaque.rs
    A rust/common/src/uninit.rs
    A rust/common/src/zeroable.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/hw/timer/hpet/src/fw_cfg.rs
    M rust/meson.build
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    R rust/qemu-api/src/assertions.rs
    M rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/bitops.rs
    R rust/qemu-api/src/callbacks.rs
    M rust/qemu-api/src/cell.rs
    M rust/qemu-api/src/chardev.rs
    R rust/qemu-api/src/errno.rs
    M rust/qemu-api/src/error.rs
    M rust/qemu-api/src/irq.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/log.rs
    M rust/qemu-api/src/memory.rs
    M rust/qemu-api/src/prelude.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/qom.rs
    M rust/qemu-api/src/sysbus.rs
    M rust/qemu-api/src/timer.rs
    R rust/qemu-api/src/uninit.rs
    M rust/qemu-api/src/vmstate.rs
    R rust/qemu-api/src/zeroable.rs
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust: split Rust-only "common" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 84a18a9cbdffda68003e570d043e6ecb7d0899cb
      
https://github.com/qemu/qemu/commit/84a18a9cbdffda68003e570d043e6ecb7d0899cb
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/qemu-api/build.rs

  Log Message:
  -----------
  rust: make build.rs generic over various ./rust/projects

Guess the name of the subdir from the manifest directory, instead of
hard-coding it. In the following commits, other crates can then link to
this file, instead of maintaining their own copy.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: e2ac36f2de57d1707280e066fb7bd1940695339f
      
https://github.com/qemu/qemu/commit/e2ac36f2de57d1707280e066fb7bd1940695339f
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/Cargo.toml
    R rust/qemu-api/build.rs
    A rust/qemu-api/build.rs
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/error.rs
    M rust/qemu-api/src/lib.rs
    R rust/qemu-api/src/log.rs
    R rust/qemu-api/src/module.rs
    M rust/qemu-api/src/prelude.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/sysbus.rs
    R rust/qemu-api/src/timer.rs
    M rust/qemu-api/src/vmstate.rs
    M rust/qemu-api/tests/tests.rs
    M rust/qemu-api/wrapper.h
    A rust/util/Cargo.toml
    A rust/util/build.rs
    A rust/util/meson.build
    A rust/util/src/bindings.rs
    A rust/util/src/error.rs
    A rust/util/src/lib.rs
    A rust/util/src/log.rs
    A rust/util/src/module.rs
    A rust/util/src/timer.rs
    A rust/util/wrapper.h

  Log Message:
  -----------
  rust: split "util" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: c50cc4b1e48e6de63ba36bfc13795def2c5f9af6
      
https://github.com/qemu/qemu/commit/c50cc4b1e48e6de63ba36bfc13795def2c5f9af6
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/registers.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    A rust/migration/Cargo.toml
    A rust/migration/build.rs
    A rust/migration/meson.build
    A rust/migration/src/bindings.rs
    A rust/migration/src/lib.rs
    A rust/migration/src/vmstate.rs
    A rust/migration/wrapper.h
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    M rust/qemu-api/src/cell.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/prelude.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/qom.rs
    R rust/qemu-api/src/vmstate.rs
    M rust/qemu-api/tests/tests.rs
    M rust/qemu-api/tests/vmstate_tests.rs
    M rust/qemu-api/wrapper.h

  Log Message:
  -----------
  rust: split "migration" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 0f643b0f09fc6bd263d7b26dc2ce4939763f257e
      
https://github.com/qemu/qemu/commit/0f643b0f09fc6bd263d7b26dc2ce4939763f257e
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    A rust/bql/Cargo.toml
    A rust/bql/build.rs
    A rust/bql/meson.build
    A rust/bql/src/bindings.rs
    A rust/bql/src/cell.rs
    A rust/bql/src/lib.rs
    A rust/bql/wrapper.h
    M rust/common/src/opaque.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/hw/timer/hpet/src/fw_cfg.rs
    M rust/meson.build
    M rust/migration/src/vmstate.rs
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    R rust/qemu-api/src/cell.rs
    M rust/qemu-api/src/chardev.rs
    M rust/qemu-api/src/irq.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/prelude.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/src/qom.rs
    M rust/qemu-api/src/sysbus.rs
    M rust/qemu-api/tests/tests.rs
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust: split "bql" crate

Unfortunately, an example had to be compile-time disabled, since it
relies on higher level crates (qdev, irq etc). The alternative is
probably to move that code to an example in qemu-api or elsewere and
make a link to it, or include_str.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 4e9d5997ab7ed1c8a21bc24d4eb1837137eeefc9
      
https://github.com/qemu/qemu/commit/4e9d5997ab7ed1c8a21bc24d4eb1837137eeefc9
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/migration/src/vmstate.rs
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    M rust/qemu-api/src/chardev.rs
    M rust/qemu-api/src/irq.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/memory.rs
    M rust/qemu-api/src/prelude.rs
    M rust/qemu-api/src/qdev.rs
    R rust/qemu-api/src/qom.rs
    M rust/qemu-api/src/sysbus.rs
    M rust/qemu-api/tests/tests.rs
    A rust/qom/Cargo.toml
    A rust/qom/build.rs
    A rust/qom/meson.build
    A rust/qom/src/bindings.rs
    A rust/qom/src/lib.rs
    A rust/qom/src/prelude.rs
    A rust/qom/src/qom.rs
    A rust/qom/wrapper.h

  Log Message:
  -----------
  rust: split "qom" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 3fc24f78bd329a6039dceae8def0fcfc022c7c6b
      
https://github.com/qemu/qemu/commit/3fc24f78bd329a6039dceae8def0fcfc022c7c6b
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    A rust/chardev/Cargo.toml
    A rust/chardev/build.rs
    A rust/chardev/meson.build
    A rust/chardev/src/bindings.rs
    A rust/chardev/src/chardev.rs
    A rust/chardev/src/lib.rs
    A rust/chardev/wrapper.h
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/meson.build
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/chardev.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/qdev.rs
    M rust/qemu-api/wrapper.h

  Log Message:
  -----------
  rust: split "chardev" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: ed0d83d73c6c8260911e88b9db25e4ef7e65c65c
      
https://github.com/qemu/qemu/commit/ed0d83d73c6c8260911e88b9db25e4ef7e65c65c
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/bql/src/cell.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    M rust/qemu-api/src/lib.rs
    R rust/qemu-api/src/memory.rs
    M rust/qemu-api/src/sysbus.rs
    M rust/qemu-api/wrapper.h
    A rust/system/Cargo.toml
    A rust/system/build.rs
    A rust/system/meson.build
    A rust/system/src/bindings.rs
    A rust/system/src/lib.rs
    A rust/system/src/memory.rs
    A rust/system/wrapper.h

  Log Message:
  -----------
  rust: split "system" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 1e37b78989d8bdc614a30a3e2f454cc3c1b7977b
      
https://github.com/qemu/qemu/commit/1e37b78989d8bdc614a30a3e2f454cc3c1b7977b
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    A rust/bindings/src/lib.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    A rust/hw/core/Cargo.toml
    A rust/hw/core/build.rs
    A rust/hw/core/meson.build
    A rust/hw/core/src/bindings.rs
    A rust/hw/core/src/irq.rs
    A rust/hw/core/src/lib.rs
    A rust/hw/core/src/qdev.rs
    A rust/hw/core/src/sysbus.rs
    A rust/hw/core/tests/tests.rs
    A rust/hw/core/wrapper.h
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/qemu-api-macros/src/lib.rs
    M rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/irq.rs
    M rust/qemu-api/src/lib.rs
    M rust/qemu-api/src/prelude.rs
    R rust/qemu-api/src/qdev.rs
    R rust/qemu-api/src/sysbus.rs
    R rust/qemu-api/tests/tests.rs
    M rust/qemu-api/wrapper.h

  Log Message:
  -----------
  rust: split "hwcore" crate

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: d70fc20af6d4633519642d807aee91d66c3a4e41
      
https://github.com/qemu/qemu/commit/d70fc20af6d4633519642d807aee91d66c3a4e41
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/bits/Cargo.toml
    M rust/bits/meson.build
    M rust/bits/src/lib.rs
    M rust/chardev/Cargo.toml
    M rust/chardev/meson.build
    M rust/chardev/src/chardev.rs
    M rust/common/src/opaque.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/registers.rs
    M rust/hw/core/Cargo.toml
    M rust/hw/core/meson.build
    M rust/hw/core/src/irq.rs
    M rust/hw/core/src/qdev.rs
    M rust/hw/core/src/sysbus.rs
    M rust/hw/core/tests/tests.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/migration/Cargo.toml
    R rust/qemu-api-macros/Cargo.toml
    R rust/qemu-api-macros/meson.build
    R rust/qemu-api-macros/src/bits.rs
    R rust/qemu-api-macros/src/lib.rs
    R rust/qemu-api-macros/src/tests.rs
    M rust/qemu-api/Cargo.toml
    M rust/qemu-api/meson.build
    A rust/qemu-macros/Cargo.toml
    A rust/qemu-macros/meson.build
    A rust/qemu-macros/src/bits.rs
    A rust/qemu-macros/src/lib.rs
    A rust/qemu-macros/src/tests.rs
    M rust/qom/Cargo.toml
    M rust/qom/meson.build
    M rust/qom/src/qom.rs
    M rust/system/Cargo.toml
    M rust/system/meson.build
    M rust/system/src/memory.rs
    M rust/util/Cargo.toml
    M rust/util/meson.build
    M rust/util/src/timer.rs

  Log Message:
  -----------
  rust: rename qemu_api_macros -> qemu_macros

Since "qemu_api" is no longer the unique crate to provide APIs.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 2d14df6bb76e8b50139b785d8f4da95f151776b6
      
https://github.com/qemu/qemu/commit/2d14df6bb76e8b50139b785d8f4da95f151776b6
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/Cargo.lock
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build

  Log Message:
  -----------
  rust/hpet: drop now unneeded qemu_api dep

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 51d341b9ba3894c483b42af0b48edaf87ecc21f2
      
https://github.com/qemu/qemu/commit/51d341b9ba3894c483b42af0b48edaf87ecc21f2
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/Cargo.lock
    M rust/hw/char/pl011/Cargo.toml
    A rust/hw/char/pl011/build.rs
    M rust/hw/char/pl011/meson.build
    A rust/hw/char/pl011/src/bindings.rs
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/lib.rs
    A rust/hw/char/pl011/wrapper.h

  Log Message:
  -----------
  rust/pl011: drop dependency on qemu_api

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 97dd1be187cc68c058190ad42ede2e6ec10d6bb5
      
https://github.com/qemu/qemu/commit/97dd1be187cc68c058190ad42ede2e6ec10d6bb5
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M rust/Cargo.lock
    M rust/Cargo.toml
    M rust/meson.build
    R rust/qemu-api/.gitignore
    R rust/qemu-api/Cargo.toml
    R rust/qemu-api/README.md
    R rust/qemu-api/build.rs
    R rust/qemu-api/meson.build
    R rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/lib.rs
    R rust/qemu-api/src/prelude.rs
    R rust/qemu-api/tests/vmstate_tests.rs
    R rust/qemu-api/wrapper.h
    A rust/tests/Cargo.toml
    A rust/tests/meson.build
    A rust/tests/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust: repurpose qemu_api -> tests

The crate purpose is only to provide integration tests at this point,
that can't easily be moved to a specific crate.

It's also often a good practice to have a single integration test crate
(see for ex https://github.com/rust-lang/cargo/issues/4867)

Drop README.md, use docs/devel/rust.rst instead.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 43abe6f0f132b0a84ce0bd87b41347104f256e39
      
https://github.com/qemu/qemu/commit/43abe6f0f132b0a84ce0bd87b41347104f256e39
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/bits/src/lib.rs

  Log Message:
  -----------
  rust: re-export qemu_macros internal helper in "bits"

Avoid the need to import "qemu_macros".

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: c27d1c86b46bd2aab0f0fd05fa807c5997e98de1
      
https://github.com/qemu/qemu/commit/c27d1c86b46bd2aab0f0fd05fa807c5997e98de1
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst
    M rust/Cargo.lock
    M rust/chardev/Cargo.toml
    M rust/chardev/meson.build
    M rust/chardev/src/chardev.rs
    M rust/common/Cargo.toml
    M rust/common/meson.build
    M rust/common/src/lib.rs
    M rust/common/src/opaque.rs
    M rust/hw/char/pl011/Cargo.toml
    M rust/hw/char/pl011/meson.build
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/registers.rs
    M rust/hw/core/Cargo.toml
    M rust/hw/core/meson.build
    M rust/hw/core/src/irq.rs
    M rust/hw/core/src/lib.rs
    M rust/hw/core/src/qdev.rs
    M rust/hw/core/src/sysbus.rs
    M rust/hw/core/tests/tests.rs
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/meson.build
    M rust/migration/Cargo.toml
    M rust/qom/src/lib.rs
    M rust/qom/src/qom.rs
    M rust/system/Cargo.toml
    M rust/system/meson.build
    M rust/system/src/memory.rs
    M rust/tests/Cargo.toml
    M rust/util/Cargo.toml
    M rust/util/meson.build
    M rust/util/src/timer.rs

  Log Message:
  -----------
  rust: re-export qemu macros from common/qom/hwcore

This is just a bit nicer.

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 0683ee264da1516dce9f6f19a5161129bf56c908
      
https://github.com/qemu/qemu/commit/0683ee264da1516dce9f6f19a5161129bf56c908
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M docs/devel/rust.rst

  Log Message:
  -----------
  docs: update rust.rst

Signed-off-by: Marc-André Lureau <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 4ceef181d47842f8ec3a3c6beaed1294dbb8ac13
      
https://github.com/qemu/qemu/commit/4ceef181d47842f8ec3a3c6beaed1294dbb8ac13
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/hw/char/pl011/meson.build
    M rust/hw/timer/hpet/meson.build

  Log Message:
  -----------
  rust: meson: remove unnecessary complication in device crates

It is not necessary anymore to explicitly list procedural macro crates
when doing the final link using rustc.

Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 9b1de02d27d73a1d5f7b44e463bb6b07669e369d
      
https://github.com/qemu/qemu/commit/9b1de02d27d73a1d5f7b44e463bb6b07669e369d
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M rust/system/src/memory.rs

  Log Message:
  -----------
  rust: do not inline do_init_io

This is now possible since the hwcore integration tests do not
link the system crate anymore.

Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 722388b3ac0dc97aab6d695397a2cca20701b91e
      
https://github.com/qemu/qemu/commit/722388b3ac0dc97aab6d695397a2cca20701b91e
  Author: Igor Mammedov <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M hw/timer/hpet.c

  Log Message:
  -----------
  hpet: guard IRQ handling with BQL

Commit [1] made qemu fail with abort:
  xen_evtchn_set_gsi: Assertion `bql_locked()' failed.
when running ./tests/functional/x86_64/test_kvm_xen.py tests.

To fix it make sure that BQL is held when manipulating IRQs.

Fixes: 7defb58baf (hpet: switch to fine-grained device locking)
Reported-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Igor Mammedov <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: cf4addeb5ff917f448472b566f5d8152dc20073e
      
https://github.com/qemu/qemu/commit/cf4addeb5ff917f448472b566f5d8152dc20073e
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  i386/cpu: Enable SMM cpu address space under KVM

Kirill Martynov reported assertation in cpu_asidx_from_attrs() being hit
when x86_cpu_dump_state() is called to dump the CPU state[*]. It happens
when the CPU is in SMM and KVM emulation failure due to misbehaving
guest.

The root cause is that QEMU i386 never enables the SMM address space for
cpu since KVM SMM support has been added.

Enable the SMM cpu address space under KVM when the SMM is enabled for
the x86machine.

[*] 
https://lore.kernel.org/qemu-devel/[email protected]/

Reported-by: Kirill Martynov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Tested-by: Kirill Martynov <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: b40628654ce455c37385aa6907c75cb39e876fc6
      
https://github.com/qemu/qemu/commit/b40628654ce455c37385aa6907c75cb39e876fc6
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  target/i386: Define enum X86ASIdx for x86's address spaces

Define X86ASIdx as enum, like ARM's ARMASIdx, so that it's clear index 0
is for memory and index 1 is for SMM.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Tested-By: Kirill Martynov <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 6a54795fd875de09b05599537b602e91d3b6e5d2
      
https://github.com/qemu/qemu/commit/6a54795fd875de09b05599537b602e91d3b6e5d2
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

  Changed paths:
    M pc-bios/multiboot_dma.bin
    M pc-bios/optionrom/multiboot.S

  Log Message:
  -----------
  multiboot: Fix the split lock

While running the kvm-unit-tests on Intel platforms with "split lock
disable" feature, every test triggers a kernel warning of

  x86/split lock detection: #AC: qemu-system-x86_64/373232 took a split_lock 
trap at address: 0x1e3

Hack KVM by exiting to QEMU on split lock #AC, we get

KVM: exception 17 exit (error code 0x0)
EAX=00000001 EBX=00000000 ECX=00000014 EDX=0001fb80
ESI=00000000 EDI=000000a8 EBP=00000000 ESP=00006f10
EIP=000001e3 EFL=00010002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0900 00009000 0000ffff 00009300 DPL=0 DS16 [-WA]
CS =c000 000c0000 0000ffff 00009b00 DPL=0 CS16 [-RA]
SS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA]
DS =c000 000c0000 0000ffff 00009300 DPL=0 DS16 [-WA]
FS =0950 00009500 0000ffff 00009300 DPL=0 DS16 [-WA]
GS =06f2 00006f20 0000ffff 00009300 DPL=0 DS16 [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     000c02b4 00000027
IDT=     00000000 000003ff
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=89 16 08 00 65 66 0f 01 16 06 00 66 b8 01 00 00 00 0f 22 c0 <65> 66 ff 2e 
00 00 b8 10 00 00 00 8e d0 8e d8 8e c0 8e e0 8e e8 66 b8 08 00 66 ba 10 05 66

And it matches with what disassembled from multiboo_dma.bin:

 #objdump -b binary -m i386 -D pc-bios/multiboot_dma.bin

  1d1:   08 00                   or     %al,(%eax)
  1d3:   65 66 0f 01 16          lgdtw  %gs:(%esi)
  1d8:   06                      push   %es
  1d9:   00 66 b8                add    %ah,-0x48(%esi)
  1dc:   01 00                   add    %eax,(%eax)
  1de:   00 00                   add    %al,(%eax)
  1e0:   0f 22 c0                mov    %eax,%cr0
> 1e3:   65 66 ff 2e             ljmpw  *%gs:(%esi)
  1e7:   00 00                   add    %al,(%eax)
  1e9:   b8 10 00 00 00          mov    $0x10,%eax
  1ee:   8e d0                   mov    %eax,%ss
  1f0:   8e d8                   mov    %eax,%ds
  1f2:   8e c0                   mov    %eax,%es
  1f4:   8e e0                   mov    %eax,%fs
  1f6:   8e e8                   mov    %eax,%gs
  1f8:   66 b8 08 00             mov    $0x8,%ax
  1fc:   66 ba 10 05             mov    $0x510,%dx

We can see that the instruction at 0x1e3 is a far jmp through the GDT.
However, the GDT is not 8 byte aligned, the base is 0xc02b4.

Intel processors follow the LOCK semantics to set the accessed flag of the
segment descriptor when loading a segment descriptor. If the the segment
descriptor crosses two cache line, it causes split lock.

Fix it by aligning the GDT on 8 bytes, so that segment descriptor cannot
span two cache lines.

Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 98a0c1ea83e74fcc17223beee3df2888dd0dafa0
      
https://github.com/qemu/qemu/commit/98a0c1ea83e74fcc17223beee3df2888dd0dafa0
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  i386/kvm: Get X86MachineState in kvm_arch_init() without the cast check

Commit 8f54bbd0b4d9 ("x86: Check for machine state object class before
typecasting it") added back the object_dynamic_cast() check before
casting MachineState to X86MachineState. And commit 035d1ef26565 ("i386:
Add ratelimit for bus locks acquired in guest") followed it.

The reason to check object_dynamic_cast(OBJECT(ms), TYPE_PC_MACHINE)
before commit 8f54bbd0b4d9 was that smm was not supported for microvm
machine at that time. But after commit 8f54bbd0b4d9, smm is supported
for all x86 machines (both pc and microvm). And since it's the
target-specifc implementation of kvm_arch_init() in target/i386/kvm/kvm.c,
I don't see how it would be called for other machines than x86machine,
and why the check of object_dynamic_cast() is needed.

Drop the object_dynamic_cast() check and simplify the code.

Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Chenyi Qiang <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 3bb77ab6cceec70f82ff7d7755a02ede5af4cf59
      
https://github.com/qemu/qemu/commit/3bb77ab6cceec70f82ff7d7755a02ede5af4cf59
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  i386/kvm: Drop KVM_CAP_X86_SMM check in kvm_arch_init()

x86_machine_is_smm_enabled() checks the KVM_CAP_X86_SMM for KVM
case. No need to check KVM_CAP_X86_SMM in kvm_arch_init().

So just drop the check of KVM_CAP_X86_SMM to simplify the code.

Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 37c8d81ee27260b84123d9f1ce45d869e440e51b
      
https://github.com/qemu/qemu/commit/37c8d81ee27260b84123d9f1ce45d869e440e51b
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  accel/kvm: Switch to check KVM_CAP_GUEST_MEMFD and KVM_CAP_USER_MEMORY2 on VM

It returns more accruate result on checking KVM_CAP_GUEST_MEMFD and
KVM_CAP_USER_MEMORY2 on VM instance instead of on KVM platform.

Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 4ef1c6962710c2158374d225e28e28184959b182
      
https://github.com/qemu/qemu/commit/4ef1c6962710c2158374d225e28e28184959b182
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  accel/kvm: Zero out mem explicitly in kvm_set_user_memory_region()

Zero out the entire mem explicitly before it's used, to ensure the unused
feilds (pad1, pad2) are all zeros. Otherwise, it might cause problem when
the pad fields are extended by future KVM.

Fixes: ce5a983233b4 ("kvm: Enable KVM_SET_USER_MEMORY_REGION2 for memslot")
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 8733ddc08165d901eb2c87f364f814f58ab9fd19
      
https://github.com/qemu/qemu/commit/8733ddc08165d901eb2c87f364f814f58ab9fd19
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-13 (Sat, 13 Sep 2025)

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

  Log Message:
  -----------
  accel/kvm: Set guest_memfd_offset to non-zero value only when guest_memfd is 
valid

Current QEMU unconditionally sets the guest_memfd_offset of KVMSlot in
kvm_set_phys_mem(), which leads to the trace of kvm_set_user_memory looks:

kvm_set_user_memory AddrSpace#0 Slot#4 flags=0x2 gpa=0xe0000 size=0x20000 
ua=0x7f5840de0000 guest_memfd=-1 guest_memfd_offset=0x3e0000 ret=0

It's confusing that the guest_memfd_offset has a non-zero value while
the guest_memfd is invalid (-1).

Change to only set guest_memfd_offset when guest_memfd is valid and
leave it as 0 when no valid guest_memfd.

Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 83d5e0eedaca36d9ac269b76a9aaebb0d7e00bf6
      
https://github.com/qemu/qemu/commit/83d5e0eedaca36d9ac269b76a9aaebb0d7e00bf6
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M MAINTAINERS
    M accel/dummy-cpus.c
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-accel-ops.c
    M accel/kvm/kvm-all.c
    M accel/tcg/cpu-exec.c
    M accel/tcg/tcg-accel-ops-mttcg.c
    M accel/tcg/tcg-accel-ops-mttcg.h
    M accel/tcg/tcg-accel-ops-rr.c
    M accel/tcg/tcg-accel-ops.c
    M accel/tcg/tcg-accel-ops.h
    M accel/tcg/user-exec.c
    M bsd-user/aarch64/target_arch_cpu.h
    M bsd-user/arm/target_arch_cpu.h
    M bsd-user/i386/target_arch_cpu.h
    M bsd-user/main.c
    M bsd-user/riscv/target_arch_cpu.h
    M bsd-user/x86_64/target_arch_cpu.h
    M clippy.toml
    M configure
    M cpu-common.c
    M docs/about/build-platforms.rst
    M docs/devel/rust.rst
    M docs/devel/tcg-icount.rst
    M hw/core/cpu-common.c
    M hw/core/cpu-system.c
    M hw/ppc/ppc.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas.c
    M hw/timer/hpet.c
    M include/hw/core/cpu.h
    M include/system/cpus.h
    M linux-user/aarch64/cpu_loop.c
    M linux-user/alpha/cpu_loop.c
    M linux-user/arm/cpu_loop.c
    M linux-user/hexagon/cpu_loop.c
    M linux-user/hppa/cpu_loop.c
    M linux-user/i386/cpu_loop.c
    M linux-user/loongarch64/cpu_loop.c
    M linux-user/m68k/cpu_loop.c
    M linux-user/main.c
    M linux-user/microblaze/cpu_loop.c
    M linux-user/mips/cpu_loop.c
    M linux-user/openrisc/cpu_loop.c
    M linux-user/ppc/cpu_loop.c
    M linux-user/riscv/cpu_loop.c
    M linux-user/s390x/cpu_loop.c
    M linux-user/sh4/cpu_loop.c
    M linux-user/sparc/cpu_loop.c
    M linux-user/xtensa/cpu_loop.c
    M meson.build
    M pc-bios/multiboot_dma.bin
    M pc-bios/optionrom/multiboot.S
    M python/scripts/vendor.py
    R python/wheels/meson-1.8.1-py3-none-any.whl
    A python/wheels/meson-1.9.0-py3-none-any.whl
    M pythondeps.toml
    M replay/replay-events.c
    M rust/Cargo.lock
    M rust/Cargo.toml
    A rust/bindings/src/lib.rs
    M rust/bits/Cargo.toml
    M rust/bits/meson.build
    M rust/bits/src/lib.rs
    A rust/bql/Cargo.toml
    A rust/bql/build.rs
    A rust/bql/meson.build
    A rust/bql/src/bindings.rs
    A rust/bql/src/cell.rs
    A rust/bql/src/lib.rs
    A rust/bql/wrapper.h
    A rust/chardev/Cargo.toml
    A rust/chardev/build.rs
    A rust/chardev/meson.build
    A rust/chardev/src/bindings.rs
    A rust/chardev/src/chardev.rs
    A rust/chardev/src/lib.rs
    A rust/chardev/wrapper.h
    A rust/common/Cargo.toml
    A rust/common/meson.build
    A rust/common/src/assertions.rs
    A rust/common/src/bitops.rs
    A rust/common/src/callbacks.rs
    A rust/common/src/errno.rs
    A rust/common/src/lib.rs
    A rust/common/src/opaque.rs
    A rust/common/src/uninit.rs
    A rust/common/src/zeroable.rs
    M rust/hw/char/pl011/Cargo.toml
    A rust/hw/char/pl011/build.rs
    M rust/hw/char/pl011/meson.build
    A rust/hw/char/pl011/src/bindings.rs
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/lib.rs
    M rust/hw/char/pl011/src/registers.rs
    A rust/hw/char/pl011/wrapper.h
    A rust/hw/core/Cargo.toml
    A rust/hw/core/build.rs
    A rust/hw/core/meson.build
    A rust/hw/core/src/bindings.rs
    A rust/hw/core/src/irq.rs
    A rust/hw/core/src/lib.rs
    A rust/hw/core/src/qdev.rs
    A rust/hw/core/src/sysbus.rs
    A rust/hw/core/tests/tests.rs
    A rust/hw/core/wrapper.h
    M rust/hw/timer/hpet/Cargo.toml
    M rust/hw/timer/hpet/meson.build
    M rust/hw/timer/hpet/src/device.rs
    M rust/hw/timer/hpet/src/fw_cfg.rs
    M rust/meson.build
    A rust/migration/Cargo.toml
    A rust/migration/build.rs
    A rust/migration/meson.build
    A rust/migration/src/bindings.rs
    A rust/migration/src/lib.rs
    A rust/migration/src/vmstate.rs
    A rust/migration/wrapper.h
    R rust/qemu-api-macros/Cargo.toml
    R rust/qemu-api-macros/meson.build
    R rust/qemu-api-macros/src/bits.rs
    R rust/qemu-api-macros/src/lib.rs
    R rust/qemu-api-macros/src/tests.rs
    R rust/qemu-api/.gitignore
    R rust/qemu-api/Cargo.toml
    R rust/qemu-api/README.md
    R rust/qemu-api/build.rs
    R rust/qemu-api/meson.build
    R rust/qemu-api/src/assertions.rs
    R rust/qemu-api/src/bindings.rs
    R rust/qemu-api/src/bitops.rs
    R rust/qemu-api/src/callbacks.rs
    R rust/qemu-api/src/cell.rs
    R rust/qemu-api/src/chardev.rs
    R rust/qemu-api/src/errno.rs
    R rust/qemu-api/src/error.rs
    R rust/qemu-api/src/irq.rs
    R rust/qemu-api/src/lib.rs
    R rust/qemu-api/src/log.rs
    R rust/qemu-api/src/memory.rs
    R rust/qemu-api/src/module.rs
    R rust/qemu-api/src/prelude.rs
    R rust/qemu-api/src/qdev.rs
    R rust/qemu-api/src/qom.rs
    R rust/qemu-api/src/sysbus.rs
    R rust/qemu-api/src/timer.rs
    R rust/qemu-api/src/uninit.rs
    R rust/qemu-api/src/vmstate.rs
    R rust/qemu-api/src/zeroable.rs
    R rust/qemu-api/tests/tests.rs
    R rust/qemu-api/tests/vmstate_tests.rs
    R rust/qemu-api/wrapper.h
    A rust/qemu-macros/Cargo.toml
    A rust/qemu-macros/meson.build
    A rust/qemu-macros/src/bits.rs
    A rust/qemu-macros/src/lib.rs
    A rust/qemu-macros/src/tests.rs
    A rust/qom/Cargo.toml
    A rust/qom/build.rs
    A rust/qom/meson.build
    A rust/qom/src/bindings.rs
    A rust/qom/src/lib.rs
    A rust/qom/src/prelude.rs
    A rust/qom/src/qom.rs
    A rust/qom/wrapper.h
    A rust/system/Cargo.toml
    A rust/system/build.rs
    A rust/system/meson.build
    A rust/system/src/bindings.rs
    A rust/system/src/lib.rs
    A rust/system/src/memory.rs
    A rust/system/wrapper.h
    A rust/tests/Cargo.toml
    A rust/tests/meson.build
    A rust/tests/tests/vmstate_tests.rs
    A rust/util/Cargo.toml
    A rust/util/build.rs
    A rust/util/meson.build
    A rust/util/src/bindings.rs
    A rust/util/src/error.rs
    A rust/util/src/lib.rs
    A rust/util/src/log.rs
    A rust/util/src/module.rs
    A rust/util/src/timer.rs
    A rust/util/wrapper.h
    M system/cpu-timers.c
    M system/cpus.c
    M system/physmem.c
    A target/arm/cpu-irq.c
    M target/arm/cpu.c
    A target/arm/el2-stubs.c
    M target/arm/helper.c
    M target/arm/internals.h
    M target/arm/meson.build
    M target/arm/tcg/mte_helper.c
    M target/avr/helper.c
    M target/i386/cpu.h
    M target/i386/helper.c
    M target/i386/hvf/x86hvf.c
    M target/i386/kvm/hyperv.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/kvm/kvm.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/nvmm/nvmm-all.c
    M target/i386/tcg/system/seg_helper.c
    M target/i386/tcg/system/svm_helper.c
    M target/i386/tcg/system/tcg-cpu.c
    M target/i386/whpx/whpx-accel-ops.c
    M target/i386/whpx/whpx-all.c
    M target/openrisc/sys_helper.c
    M target/ppc/helper_regs.c
    M target/rx/helper.c
    M target/s390x/tcg/excp_helper.c
    M target/sparc/int32_helper.c
    M target/sparc/int64_helper.c

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

* cpu-exec: more cleanups to CPU loop exits
* python: bump bundled Meson to 1.9.0
* rust: require Rust 1.83.0
* rust: temporarily remove from Ubuntu CI
* rust: vmstate: convert to use builder pattern
* rust: split "qemu-api" crate
* rust: rename qemu_api_macros -> qemu_macros
* rust: re-export qemu macros from other crates
* x86: fix functional test failure for Xen emulation
* x86: cleanups

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmjFBsMUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroNqTwf/SSRZmiNq5br/lFgBPgJX+j5WzhR4
# +qnusntSS6eXmEl7wpf5cna5j4VzuzjMMq/FFVmEoXTMyMDRLn6MWQJ2qb1xUrVp
# pHXDQEGmSOCTBe/+9JJYGAA5PsUilPhFK45iwImkAT86mco4aKm4kupZNuXJjxvE
# 6Mi+Yfa9I2usAYzSRZRY9Nm7xSk9S1heVtOog02o9aV1dLJBNozj7TL8qxTC41JB
# 4/7dr+G6A1Rj5+o0rFO4aiItknUk11DurMoYhYEXzKAwzlQDvr4fDDpNYcc7QnjW
# sUVHGcIuHXKDgJPGM4QpYiOKi2TebnH5tHDWc0oJKgX+FmJE5pFJ/ozEyQ==
# =osmA
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 12 Sep 2025 10:53:07 PM PDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Paolo Bonzini <[email protected]>" [unknown]
# gpg:                 aka "Paolo Bonzini <[email protected]>" [unknown]
# gpg: WARNING: The key's User ID 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: (61 commits)
  accel/kvm: Set guest_memfd_offset to non-zero value only when guest_memfd is 
valid
  accel/kvm: Zero out mem explicitly in kvm_set_user_memory_region()
  accel/kvm: Switch to check KVM_CAP_GUEST_MEMFD and KVM_CAP_USER_MEMORY2 on VM
  i386/kvm: Drop KVM_CAP_X86_SMM check in kvm_arch_init()
  i386/kvm: Get X86MachineState in kvm_arch_init() without the cast check
  multiboot: Fix the split lock
  target/i386: Define enum X86ASIdx for x86's address spaces
  i386/cpu: Enable SMM cpu address space under KVM
  hpet: guard IRQ handling with BQL
  rust: do not inline do_init_io
  rust: meson: remove unnecessary complication in device crates
  docs: update rust.rst
  rust: re-export qemu macros from common/qom/hwcore
  rust: re-export qemu_macros internal helper in "bits"
  rust: repurpose qemu_api -> tests
  rust/pl011: drop dependency on qemu_api
  rust/hpet: drop now unneeded qemu_api dep
  rust: rename qemu_api_macros -> qemu_macros
  rust: split "hwcore" crate
  rust: split "system" crate
  ...

Signed-off-by: Richard Henderson <[email protected]>


  Commit: 4d14460540b8f7becd0ed70bf73c2c2746bad1d9
      
https://github.com/qemu/qemu/commit/4d14460540b8f7becd0ed70bf73c2c2746bad1d9
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M MAINTAINERS
    M docs/devel/testing/main.rst
    M scripts/checkpatch.pl
    M scripts/tracetool/__init__.py
    M scripts/tracetool/format/c.py
    M scripts/tracetool/format/d.py
    M scripts/tracetool/format/h.py
    M scripts/tracetool/format/log_stap.py
    M scripts/tracetool/format/simpletrace_stap.py
    M scripts/tracetool/format/stap.py
    M scripts/tracetool/format/ust_events_c.py
    M scripts/tracetool/format/ust_events_h.py
    M tests/Makefile.include
    M tests/meson.build
    M tests/qapi-schema/test-qapi.py
    A tests/tracetool/dtrace.c
    A tests/tracetool/dtrace.d
    A tests/tracetool/dtrace.h
    A tests/tracetool/dtrace.log-stap
    A tests/tracetool/dtrace.simpletrace-stap
    A tests/tracetool/dtrace.stap
    A tests/tracetool/ftrace.c
    A tests/tracetool/ftrace.h
    A tests/tracetool/log.c
    A tests/tracetool/log.h
    A tests/tracetool/meson.build
    A tests/tracetool/simple.c
    A tests/tracetool/simple.h
    A tests/tracetool/syslog.c
    A tests/tracetool/syslog.h
    A tests/tracetool/trace-events
    A tests/tracetool/tracetool-test.py
    A tests/tracetool/ust.c
    A tests/tracetool/ust.h
    A tests/tracetool/ust.ust-events-c
    A tests/tracetool/ust.ust-events-h

  Log Message:
  -----------
  Merge tag 'tracing-pull-request' of https://gitlab.com/stefanha/qemu into 
staging

Pull request

Daniel's updated tracetool test suite that doesn't break Windows CI.

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmjJo2gACgkQnKSrs4Gr
# c8gAWggAmFCi3KyeoJYLdw8ANZ46lDPV+GCtTKtCM68LtcSZKfrlNROWE/9UDI7V
# P3U/Xog01mqyWw4RX+SC90ckSWchMcLSN+TT8mZNfOTn8mcelyQkh4TDlguBLxlE
# Qz8PMwIxrKljP0bV9evZ1gk1CHkB8u1jPKLckiZRdI9rbjuxNkYTMyVSezCdfIhV
# dTDO1xf3oTDZq94591D0jSLHuF58MNXJHlA/q5OIdPCqu80Vo6cc8A8B5E1ZGKA5
# wzXaMY72GlX8RYwebXudHI0Sen6XyE3It+iWQYD8o6kgJ6kxBc0ljLxJCRE9O/d4
# D5hBgEgJ5S1ul4ggkBf5UKazF86EIQ==
# =YODs
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 16 Sep 2025 10:50:32 AM PDT
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>" [unknown]
# gpg:                 aka "Stefan Hajnoczi <[email protected]>" [unknown]
# 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: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* tag 'tracing-pull-request' of https://gitlab.com/stefanha/qemu:
  tracetool-test: allow to run in parallel
  qapi: switch to use QEMU_TEST_REGENERATE env var
  tracetool: drop the probe "__nocheck__" wrapping
  tracetool: add test suite for tracetool with reference output
  tracetool: include SPDX-License-Identifier in generated files
  tracetool: avoid space after "*" in arg types
  tracetool: eliminate trailing whitespace in C format
  checkpatch: cull trailing '*/' in SPDX check

Signed-off-by: Richard Henderson <[email protected]>


Compare: https://github.com/qemu/qemu/compare/86f633d00aa2...4d14460540b8

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

Reply via email to