[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/9] rust/hpet: Initial support for migration
From: |
Zhao Liu |
Subject: |
[PATCH 0/9] rust/hpet: Initial support for migration |
Date: |
Mon, 14 Apr 2025 22:49:34 +0800 |
Hi all,
This series add the *initial* support for HPET migration.
This is *initial* because the current migration implementation
introduces multiple *unsafe* callbacks (please refer Patch 8).
Before the vmstate builder, one possible cleanup approach is to wrap
callbacks in the vmstate binding using a method similar to the
vmstate_exist_fn macro.
However, this approach would also create a lot of repetitive code (since
vmstate has so many callbacks: pre_load, post_load, pre_save, post_save,
needed and dev_unplug_pending). Although it would be cleaner, it would
somewhat deviate from the path of the vmstate builder.
Therefore, firstly focus on completing the functionality of HPET, and
those current unsafe callbacks can at least clearly indicate the needed
functionality of vmstate. The next step is to consider refactoring
vmstate to move towards the vmstate builder direction.
Test this series with 3 migration cases:
* q35 (Rust HPET) -> q35 (Rust HPET)
* q35 (Rust HPET) -> q35 (C HPET)
* q35 (C HPET) -> q35 (Rust HPET)
Thanks and Best Regards,
Zhao
---
Zhao Liu (9):
rust/vmstate: Support field_exists check in vmstate_struct macro
rust/vmstate: Support varray's num field wrapped in BqlCell
rust/vmstate_test: Test varray with num field wrapped in BqlCell
rust/vmstate_test: Fix typo in
test_vmstate_macro_array_of_pointer_wrapped()
rust/timer: Define NANOSECONDS_PER_SECOND binding as u64
rust/hpet: convert num_timers to u8 type
rust/hpet: convert HPETTimer index to u8 type
rust/hpet: Support migration
rust/hpet: Fix a clippy error
docs/devel/rust.rst | 3 +-
rust/hw/timer/hpet/src/hpet.rs | 189 ++++++++++++++++++++++++---
rust/qemu-api/src/assertions.rs | 30 ++++-
rust/qemu-api/src/cell.rs | 23 ++++
rust/qemu-api/src/timer.rs | 2 +
rust/qemu-api/src/vmstate.rs | 67 +++++-----
rust/qemu-api/tests/vmstate_tests.rs | 45 +++++--
7 files changed, 294 insertions(+), 65 deletions(-)
--
2.34.1
- [PATCH 0/9] rust/hpet: Initial support for migration,
Zhao Liu <=
- [PATCH 1/9] rust/vmstate: Support field_exists check in vmstate_struct macro, Zhao Liu, 2025/04/14
- [PATCH 2/9] rust/vmstate: Support varray's num field wrapped in BqlCell, Zhao Liu, 2025/04/14
- [PATCH 4/9] rust/vmstate_test: Fix typo in test_vmstate_macro_array_of_pointer_wrapped(), Zhao Liu, 2025/04/14
- [PATCH 6/9] rust/hpet: convert num_timers to u8 type, Zhao Liu, 2025/04/14
- [PATCH 3/9] rust/vmstate_test: Test varray with num field wrapped in BqlCell, Zhao Liu, 2025/04/14