Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 588ffa75eba30baf75d1ba246c5f917e8716fcaa
https://github.com/qemu/qemu/commit/588ffa75eba30baf75d1ba246c5f917e8716fcaa
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: a445d3b85c4119aac7ecb7771b5da0709ee1f1a4
https://github.com/qemu/qemu/commit/a445d3b85c4119aac7ecb7771b5da0709ee1f1a4
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 3efe1a0f604cb7c4afd0381294acbdec75c65325
https://github.com/qemu/qemu/commit/3efe1a0f604cb7c4afd0381294acbdec75c65325
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: bd1cefdd9f18bfbdcb597d7d552fbf31dee47a28
https://github.com/qemu/qemu/commit/bd1cefdd9f18bfbdcb597d7d552fbf31dee47a28
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 11a73c6ea37483f7be85f6afebb4334d97d3050c
https://github.com/qemu/qemu/commit/11a73c6ea37483f7be85f6afebb4334d97d3050c
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 602d5ebba26b245730a0b6a4855b1812d587725c
https://github.com/qemu/qemu/commit/602d5ebba26b245730a0b6a4855b1812d587725c
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 27e76d010104646c997d20ca0996fb5a046587b0
https://github.com/qemu/qemu/commit/27e76d010104646c997d20ca0996fb5a046587b0
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 9e1ecd4aaaf9aa2f5b7caf364a10241a2cba02a8
https://github.com/qemu/qemu/commit/9e1ecd4aaaf9aa2f5b7caf364a10241a2cba02a8
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: ac6c8a390b451913995ee784ef7261b8928e5ace
https://github.com/qemu/qemu/commit/ac6c8a390b451913995ee784ef7261b8928e5ace
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: f084ff128b6136e1aebfd73e1cf7066a077a79bf
https://github.com/qemu/qemu/commit/f084ff128b6136e1aebfd73e1cf7066a077a79bf
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 9cf342b491f6872d316b7b0c3cbc0f6157f28797
https://github.com/qemu/qemu/commit/9cf342b491f6872d316b7b0c3cbc0f6157f28797
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 61d996da508fe4082f1cbfd9b51c8c47f535a993
https://github.com/qemu/qemu/commit/61d996da508fe4082f1cbfd9b51c8c47f535a993
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: dcb46ecb2e90d532fcdc04702c92e732a0ef77e8
https://github.com/qemu/qemu/commit/dcb46ecb2e90d532fcdc04702c92e732a0ef77e8
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: f8217ae54e4c44a7f0d20d56a5368ec1818f1cc2
https://github.com/qemu/qemu/commit/f8217ae54e4c44a7f0d20d56a5368ec1818f1cc2
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 871de7078fcaf597605576b97b32fab14722ea43
https://github.com/qemu/qemu/commit/871de7078fcaf597605576b97b32fab14722ea43
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 758e5de501f78d4ef53a43e0c5a4783cd807b5be
https://github.com/qemu/qemu/commit/758e5de501f78d4ef53a43e0c5a4783cd807b5be
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 9a191d3782d707062c42b9fc9f22d9f55d4ed375
https://github.com/qemu/qemu/commit/9a191d3782d707062c42b9fc9f22d9f55d4ed375
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: d5e33b5f8f5a787bc4bb38bd0b9a8c3e3a0aa9f0
https://github.com/qemu/qemu/commit/d5e33b5f8f5a787bc4bb38bd0b9a8c3e3a0aa9f0
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: b422a7bff64eaf55b8250225533ca1df42c3777e
https://github.com/qemu/qemu/commit/b422a7bff64eaf55b8250225533ca1df42c3777e
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 614fff7c0a2e28ed8675bbc3385ad88a76d4ee3a
https://github.com/qemu/qemu/commit/614fff7c0a2e28ed8675bbc3385ad88a76d4ee3a
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 091f115ea5d40880e74123f2a7cd12f3dd32d624
https://github.com/qemu/qemu/commit/091f115ea5d40880e74123f2a7cd12f3dd32d624
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: e1c689c2189087bcab258f0a99019bb900986af7
https://github.com/qemu/qemu/commit/e1c689c2189087bcab258f0a99019bb900986af7
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 71e84e5ae87b8e6adce3af7dd2a490c7b2f39772
https://github.com/qemu/qemu/commit/71e84e5ae87b8e6adce3af7dd2a490c7b2f39772
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: aecca0676ddd9e032de4eeda371b81598d3257bb
https://github.com/qemu/qemu/commit/aecca0676ddd9e032de4eeda371b81598d3257bb
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: a71df7e143b57427c1f8a917654e7b0ed1ceb919
https://github.com/qemu/qemu/commit/a71df7e143b57427c1f8a917654e7b0ed1ceb919
Author: Manos Pitsidianakis <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 7da9ee9207c55a783567eb46c71fa89cb5b43461
https://github.com/qemu/qemu/commit/7da9ee9207c55a783567eb46c71fa89cb5b43461
Author: Zhao Liu <[email protected]>
Date: 2025-09-17 (Wed, 17 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: dcdee1e718f9400a2bf523f2b009fb936370ae4b
https://github.com/qemu/qemu/commit/dcdee1e718f9400a2bf523f2b009fb936370ae4b
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 2a8a7bb8aaf54c3c878a616884a2e4bb239b6095
https://github.com/qemu/qemu/commit/2a8a7bb8aaf54c3c878a616884a2e4bb239b6095
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 945bf29aa82a2dfca3f69a19b7d048cddcc095bf
https://github.com/qemu/qemu/commit/945bf29aa82a2dfca3f69a19b7d048cddcc095bf
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: f665219b03dda114539c637c50c748a2ebd73c82
https://github.com/qemu/qemu/commit/f665219b03dda114539c637c50c748a2ebd73c82
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: d85df9a8e2436d1243a28f580e1bf155519dfdfe
https://github.com/qemu/qemu/commit/d85df9a8e2436d1243a28f580e1bf155519dfdfe
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 88cf78e9172850c786d24d298adfadd09ec43a80
https://github.com/qemu/qemu/commit/88cf78e9172850c786d24d298adfadd09ec43a80
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 0611dd418abbf5d7c011bd465779cb955cea0f39
https://github.com/qemu/qemu/commit/0611dd418abbf5d7c011bd465779cb955cea0f39
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: a6765c04beac0a3e20032b619df6afbc70b6ef74
https://github.com/qemu/qemu/commit/a6765c04beac0a3e20032b619df6afbc70b6ef74
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 593c408a6a8cd8b0af9bf60c7c3625da7910a737
https://github.com/qemu/qemu/commit/593c408a6a8cd8b0af9bf60c7c3625da7910a737
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 1e70d83de4d502759d6e68fbac301c1243088385
https://github.com/qemu/qemu/commit/1e70d83de4d502759d6e68fbac301c1243088385
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 59869b4d58854190f09a79c5392d60fdc0b55d45
https://github.com/qemu/qemu/commit/59869b4d58854190f09a79c5392d60fdc0b55d45
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 4dff343d2312bfec25f95ab99ed1068511ddbebb
https://github.com/qemu/qemu/commit/4dff343d2312bfec25f95ab99ed1068511ddbebb
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: f6b4f0dd9c57079b72ca9ff7569ce4d0dbdcc4d9
https://github.com/qemu/qemu/commit/f6b4f0dd9c57079b72ca9ff7569ce4d0dbdcc4d9
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: fcf4c00b4d73185db9239b1a6f03289f6211e142
https://github.com/qemu/qemu/commit/fcf4c00b4d73185db9239b1a6f03289f6211e142
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: fef932ef09c82c3831ff3336d1b2d566cd6ccae4
https://github.com/qemu/qemu/commit/fef932ef09c82c3831ff3336d1b2d566cd6ccae4
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: ee4ffbf239cbd9de8c6b6cc33283b7a64a95a956
https://github.com/qemu/qemu/commit/ee4ffbf239cbd9de8c6b6cc33283b7a64a95a956
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 5e588c9d08b0da64fab7f370e65744cb7a4174ef
https://github.com/qemu/qemu/commit/5e588c9d08b0da64fab7f370e65744cb7a4174ef
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 0d93f8177310515ae2d8aea8e1320e53818d70bd
https://github.com/qemu/qemu/commit/0d93f8177310515ae2d8aea8e1320e53818d70bd
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 960aaeb0238612cf7d7a8f17937e860da3d23cb3
https://github.com/qemu/qemu/commit/960aaeb0238612cf7d7a8f17937e860da3d23cb3
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 966b1c302e1bab3b20a356f1a6678dd1bee5575c
https://github.com/qemu/qemu/commit/966b1c302e1bab3b20a356f1a6678dd1bee5575c
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: d58fcd05ffc682fbad02cd8d0bee840cb7997e3e
https://github.com/qemu/qemu/commit/d58fcd05ffc682fbad02cd8d0bee840cb7997e3e
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: b0f6bf8a5b3b3a9dd4a11f792084d39a76b4b007
https://github.com/qemu/qemu/commit/b0f6bf8a5b3b3a9dd4a11f792084d39a76b4b007
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: e4444d71e85b5f5ea8311eb59fea3e52f5fc5a14
https://github.com/qemu/qemu/commit/e4444d71e85b5f5ea8311eb59fea3e52f5fc5a14
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 31b35e78be99ae0c9b7a50fa4f29c0041538ceea
https://github.com/qemu/qemu/commit/31b35e78be99ae0c9b7a50fa4f29c0041538ceea
Author: Marc-André Lureau <[email protected]>
Date: 2025-09-17 (Wed, 17 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: efe8d07383e22e39e4dafbc08855956a459b395f
https://github.com/qemu/qemu/commit/efe8d07383e22e39e4dafbc08855956a459b395f
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 7c83e501565a57560aa1d87109819f46effeb7fc
https://github.com/qemu/qemu/commit/7c83e501565a57560aa1d87109819f46effeb7fc
Author: Paolo Bonzini <[email protected]>
Date: 2025-09-17 (Wed, 17 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: d99041a20328423bc6819ddd69b60cf98d8d84f1
https://github.com/qemu/qemu/commit/d99041a20328423bc6819ddd69b60cf98d8d84f1
Author: Igor Mammedov <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 0516f4b70264b9710a25718d21bd35ef463c875e
https://github.com/qemu/qemu/commit/0516f4b70264b9710a25718d21bd35ef463c875e
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 591f817d819f5511fd9001dc863a326d23088811
https://github.com/qemu/qemu/commit/591f817d819f5511fd9001dc863a326d23088811
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 4c8f69b94839f72314c69902312068d0b9b05a34
https://github.com/qemu/qemu/commit/4c8f69b94839f72314c69902312068d0b9b05a34
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: b5ff08e64e73207d435ca720ce1e917dd2faee3c
https://github.com/qemu/qemu/commit/b5ff08e64e73207d435ca720ce1e917dd2faee3c
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 706cc708656c91552b355faa9b72dfa7ad64571e
https://github.com/qemu/qemu/commit/706cc708656c91552b355faa9b72dfa7ad64571e
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 80030f66ad15c1534f5e3700b0acefd6d0d92e37
https://github.com/qemu/qemu/commit/80030f66ad15c1534f5e3700b0acefd6d0d92e37
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 00c0911c68e5bd664de1a261b74c390f4c0be83d
https://github.com/qemu/qemu/commit/00c0911c68e5bd664de1a261b74c390f4c0be83d
Author: Xiaoyao Li <[email protected]>
Date: 2025-09-17 (Wed, 17 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: 0c042601a638c37a95690c6429af5a1b5a35d1dd
https://github.com/qemu/qemu/commit/0c042601a638c37a95690c6429af5a1b5a35d1dd
Author: Bibo Mao <[email protected]>
Date: 2025-09-18 (Thu, 18 Sep 2025)
Changed paths:
M hw/loongarch/boot.c
Log Message:
-----------
hw/loongarch/virt: Add BSP support with aux boot code
If system boots directly from Linux kernel, BSP core jumps to kernel
entry of Linux kernel image and other APs jump to aux boot code. Instead
BSP and APs can all jump to aux boot code like UEFI bios.
With aux boot code, BSP core is judged from physical cpu id, whose
cpu id is 0. With BSP core, load data to register A0-A2 and PC.
Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Song Gao <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Song Gao <[email protected]>
Commit: 6ca2df47c9b85f630faacaba8a042cb095075599
https://github.com/qemu/qemu/commit/6ca2df47c9b85f630faacaba8a042cb095075599
Author: Bibo Mao <[email protected]>
Date: 2025-09-18 (Thu, 18 Sep 2025)
Changed paths:
M hw/loongarch/boot.c
M target/loongarch/cpu.h
Log Message:
-----------
hw/loongarch/virt: Remove unnecessay pre-boot setting with BSP
With BSP core, it boots from aux boot code and loads data into register
A0-A2 and PC. Pre-boot setting is not unnecessary and can be removed.
Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Song Gao <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Song Gao <[email protected]>
Commit: cb5ee0017fc9909916383634a3f13eae05e6fe5c
https://github.com/qemu/qemu/commit/cb5ee0017fc9909916383634a3f13eae05e6fe5c
Author: Bibo Mao <[email protected]>
Date: 2025-09-18 (Thu, 18 Sep 2025)
Changed paths:
M hw/loongarch/boot.c
M hw/loongarch/virt.c
Log Message:
-----------
hw/loongarch/virt: Register reset interface with cpu plug callback
With cpu hotplug is implemented on LoongArch virt machine, reset
interface with hot-added CPU should be registered. Otherwise there
will be problem if system reboots after cpu is hot-added.
Now register reset interface with CPU plug callback, so that all
cold/hot added CPUs let their reset interface registered. And remove
reset interface with CPU unplug callback.
Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Tested-by: Song Gao <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Song Gao <[email protected]>
Commit: ccafa85a97e38698b798115bba6c18c849846e25
https://github.com/qemu/qemu/commit/ccafa85a97e38698b798115bba6c18c849846e25
Author: Richard Henderson <[email protected]>
Date: 2025-09-18 (Thu, 18 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/vSX3jHroMFAmjK6ZsUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroNBKwf/aadInCT4vASOfpxbwZgYfYgR2m2m
# BJE9oYKxZJ6MlEOU/1Wfywf9fg4leMSh3XxkDKkEIL19yS6emwin8n3SNYrdAFn3
# 6u4IIWO4NI1Ht3NKytrqFk9wtbH9pAs/gVHLlnmpMxIqtOtZLumPAKNz8rlantmK
# UVDYL3Y0L4pD9i5FK1ObMNpk5AsWNr8Tr64fmb+nTkHutld3sBrEMCLI0+EByGyN
# lQ16sLn9PGqHOr210zuQP7wP2T3NCI3YokFSPQrUUL8LZGxRdXoNF4hI4uZDKGdn
# UbtRu9EkM052qzfsFMrEw5JSbdxEfIjKlPoFKseMv+aWvNAuximAraD3Vg==
# =Lr+x
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 17 Sep 2025 10:02:19 AM 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: (60 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()
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
rust: split "chardev" crate
...
Signed-off-by: Richard Henderson <[email protected]>
Commit: e7c1e8043a69c5a8efa39d4f9d111f7c72c076e6
https://github.com/qemu/qemu/commit/e7c1e8043a69c5a8efa39d4f9d111f7c72c076e6
Author: Richard Henderson <[email protected]>
Date: 2025-09-18 (Thu, 18 Sep 2025)
Changed paths:
M hw/loongarch/boot.c
M hw/loongarch/virt.c
M target/loongarch/cpu.h
Log Message:
-----------
Merge tag 'pull-loongarch-20250918' of https://github.com/gaosong715/qemu
into staging
pull-loongarch-20250918
# -----BEGIN PGP SIGNATURE-----
#
# iLMEAAEIAB0WIQTKRzxE1qCcGJoZP81FK5aFKyaCFgUCaMvTpQAKCRBFK5aFKyaC
# Fkk0BACDkaQa6jDON8aLcTFcwpIlrnblqlYo6EK7TaGqpI866EhTX09BscRF5bvp
# 3JtGARKy5a6s5GJ64KItIl4n5Z6xvt4ME1KjyqeUTpD99c7J1krgxl6+W/NthK/K
# cLbSnlfvcw/L6KfIsGP6i2F6Y+riyZf6OYMc9IF/xFEAIMKJyA==
# =EgXn
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 18 Sep 2025 02:40:53 AM PDT
# gpg: using RSA key CA473C44D6A09C189A193FCD452B96852B268216
# gpg: Good signature from "Song Gao <[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: CA47 3C44 D6A0 9C18 9A19 3FCD 452B 9685 2B26 8216
* tag 'pull-loongarch-20250918' of https://github.com/gaosong715/qemu:
hw/loongarch/virt: Register reset interface with cpu plug callback
hw/loongarch/virt: Remove unnecessay pre-boot setting with BSP
hw/loongarch/virt: Add BSP support with aux boot code
Signed-off-by: Richard Henderson <[email protected]>
Compare: https://github.com/qemu/qemu/compare/f0007b7f03e2...e7c1e8043a69
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications