qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 00/39] accel: Preparatory cleanups for split-accel
@ 2025-07-03 17:32 Philippe Mathieu-Daudé
  2025-07-03 17:32 ` [PATCH v6 01/39] hw/core/machine: Display CPU model name in 'info cpus' command Philippe Mathieu-Daudé
                   ` (39 more replies)
  0 siblings, 40 replies; 112+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-07-03 17:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Zhao Liu, Paolo Bonzini, Richard Henderson, Pierrick Bouvier,
	Alex Bennée, Philippe Mathieu-Daudé

Missing review: 11, 37-39

Since v5:
- Dropped patches with problems
- Moved system/accel-ops.h -> generic accel/ namespace
- Added R-b tags

Few changes needed before being able to add the
split acceleration:

- few method docstring added
- remove pointless stubs
- propagate soon required AccelState argument
- try to reduce current_accel() uses
- move declarations AccelClass <-> AccelOpsClass
- display model name in 'info cpus'
- add 'info accel' command to QMP/HMP
- make accel_create_vcpu_thread() more generic
- introduce hwaccel_enabled()

I plan to send a PR once fully reviewed.

Regards,

Phil.

Philippe Mathieu-Daudé (39):
  hw/core/machine: Display CPU model name in 'info cpus' command
  system/memory: Restrict eventfd dispatch_write() to emulators
  system/runstate: Document qemu_add_vm_change_state_handler()
  system/cpus: Assert interrupt handling is done with BQL locked
  accel/kvm: Remove kvm_init_cpu_signals() stub
  accel/kvm: Reduce kvm_create_vcpu() declaration scope
  accel/tcg: Remove 'info opcount' and @x-query-opcount
  accel/tcg: Remove profiler leftover
  accel/tcg: Factor tcg_dump_flush_info() out
  accel/tcg: Factor tcg_dump_stats() out for re-use
  accel/tcg: Extract statistic related code to tcg-stats.c
  accel: Move supports_guest_debug() declaration to AccelClass
  accel: Move cpus_are_resettable() declaration to AccelClass
  accel/hvf: Restrict internal declarations
  accel/hvf: Move per-cpu method declarations to hvf-accel-ops.c
  accel/hvf: Move generic method declarations to hvf-all.c
  cpus: Document CPUState::vcpu_dirty field
  accel/hvf: Replace @dirty field by generic CPUState::vcpu_dirty field
  accel/nvmm: Replace @dirty field by generic CPUState::vcpu_dirty field
  accel/whpx: Replace @dirty field by generic CPUState::vcpu_dirty field
  accel/kvm: Remove kvm_cpu_synchronize_state() stub
  accel/system: Document cpu_synchronize_state()
  accel/system: Document cpu_synchronize_state_post_init/reset()
  accel/nvmm: Expose nvmm_enabled() to common code
  accel/whpx: Expose whpx_enabled() to common code
  accel/dummy: Extract 'dummy-cpus.h' header from 'system/cpus.h'
  accel: Pass old/new interrupt mask to handle_interrupt() handler
  accel: Expose and register generic_handle_interrupt()
  accel: Keep reference to AccelOpsClass in AccelClass
  accel: Propagate AccelState to AccelClass::init_machine()
  accel/kvm: Prefer local AccelState over global MachineState::accel
  accel/tcg: Prefer local AccelState over global current_accel()
  accel: Directly pass AccelState argument to AccelClass::has_memory()
  accel/kvm: Directly pass KVMState argument to do_kvm_create_vm()
  accel: Remove unused MachineState argument of AccelClass::setup_post()
  accel: Pass AccelState argument to gdbstub_supported_sstep_flags()
  accel: Rename 'system/accel-ops.h' -> 'accel/accel-cpu-ops.h'
  accel: Extract AccelClass definition to 'accel/accel-ops.h'
  MAINTAINERS: Add me as reviewer of overall accelerators section

 MAINTAINERS                                   |   4 +-
 qapi/machine.json                             |  21 +-
 accel/dummy-cpus.h                            |  14 +
 accel/kvm/kvm-cpus.h                          |   1 -
 accel/tcg/internal-common.h                   |   2 +
 accel/tcg/tcg-accel-ops-icount.h              |   2 +-
 accel/tcg/tcg-accel-ops.h                     |   2 +-
 .../accel-ops.h => accel/accel-cpu-ops.h}     |  34 +-
 include/accel/accel-ops.h                     |  50 +++
 include/hw/core/cpu.h                         |   3 +-
 include/qemu/accel.h                          |  35 +-
 include/system/cpus.h                         |   5 -
 include/system/hvf.h                          |  38 ---
 include/system/hvf_int.h                      |  38 ++-
 include/system/hw_accel.h                     |  21 +-
 include/system/kvm.h                          |   8 -
 include/system/kvm_int.h                      |   1 +
 include/system/nvmm.h                         |  23 +-
 include/system/runstate.h                     |  10 +
 include/system/whpx.h                         |  27 +-
 accel/accel-common.c                          |   4 +-
 accel/accel-system.c                          |  20 +-
 accel/dummy-cpus.c                            |   1 +
 accel/hvf/hvf-accel-ops.c                     | 317 +++---------------
 accel/hvf/hvf-all.c                           | 279 +++++++++++++--
 accel/kvm/kvm-accel-ops.c                     |  10 +-
 accel/kvm/kvm-all.c                           |  39 ++-
 accel/qtest/qtest.c                           |   7 +-
 accel/stubs/kvm-stub.c                        |   9 -
 accel/stubs/nvmm-stub.c                       |  12 +
 accel/stubs/whpx-stub.c                       |  12 +
 accel/tcg/monitor.c                           | 210 +-----------
 accel/tcg/tcg-accel-ops-icount.c              |   8 +-
 accel/tcg/tcg-accel-ops.c                     |  19 +-
 accel/tcg/tcg-all.c                           |  13 +-
 accel/tcg/tcg-stats.c                         | 206 ++++++++++++
 accel/xen/xen-all.c                           |   9 +-
 bsd-user/main.c                               |   3 +-
 cpu-target.c                                  |   2 +-
 gdbstub/system.c                              |  11 +-
 hw/core/machine-hmp-cmds.c                    |   3 +-
 hw/core/machine-qmp-cmds.c                    |   1 +
 linux-user/main.c                             |   3 +-
 system/cpus.c                                 |  28 +-
 system/memory.c                               |  12 +-
 target/arm/hvf/hvf.c                          |   6 +-
 target/i386/hvf/hvf.c                         |   6 +-
 target/i386/hvf/x86hvf.c                      |   2 +-
 target/i386/nvmm/nvmm-accel-ops.c             |   3 +-
 target/i386/nvmm/nvmm-all.c                   |  32 +-
 target/i386/whpx/whpx-accel-ops.c             |   3 +-
 target/i386/whpx/whpx-all.c                   |  33 +-
 tests/qtest/qmp-cmd-test.c                    |   1 -
 accel/stubs/meson.build                       |   2 +
 accel/tcg/meson.build                         |   1 +
 hmp-commands-info.hx                          |  14 -
 56 files changed, 876 insertions(+), 804 deletions(-)
 create mode 100644 accel/dummy-cpus.h
 rename include/{system/accel-ops.h => accel/accel-cpu-ops.h} (70%)
 create mode 100644 include/accel/accel-ops.h
 create mode 100644 accel/stubs/nvmm-stub.c
 create mode 100644 accel/stubs/whpx-stub.c
 create mode 100644 accel/tcg/tcg-stats.c

-- 
2.49.0



^ permalink raw reply	[flat|nested] 112+ messages in thread

end of thread, other threads:[~2025-07-15  9:40 UTC | newest]

Thread overview: 112+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-03 17:32 [PATCH v6 00/39] accel: Preparatory cleanups for split-accel Philippe Mathieu-Daudé
2025-07-03 17:32 ` [PATCH v6 01/39] hw/core/machine: Display CPU model name in 'info cpus' command Philippe Mathieu-Daudé
2025-07-04  3:10   ` Xiaoyao Li
2025-07-04  4:59   ` Markus Armbruster
2025-07-15  8:48     ` Philippe Mathieu-Daudé
2025-07-03 17:32 ` [PATCH v6 02/39] system/memory: Restrict eventfd dispatch_write() to emulators Philippe Mathieu-Daudé
2025-07-04  3:32   ` Xiaoyao Li
2025-07-04 11:34     ` Alex Bennée
2025-07-03 17:32 ` [PATCH v6 03/39] system/runstate: Document qemu_add_vm_change_state_handler() Philippe Mathieu-Daudé
2025-07-04  3:40   ` Xiaoyao Li
2025-07-15  9:02     ` Alex Bennée
2025-07-15  9:34       ` Xiaoyao Li
2025-07-04  9:31   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 04/39] system/cpus: Assert interrupt handling is done with BQL locked Philippe Mathieu-Daudé
2025-07-04  4:07   ` Xiaoyao Li
2025-07-04  9:32   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 05/39] accel/kvm: Remove kvm_init_cpu_signals() stub Philippe Mathieu-Daudé
2025-07-04  4:13   ` Xiaoyao Li
2025-07-04  8:24     ` Philippe Mathieu-Daudé
2025-07-04 11:49   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 06/39] accel/kvm: Reduce kvm_create_vcpu() declaration scope Philippe Mathieu-Daudé
2025-07-04  4:15   ` Xiaoyao Li
2025-07-04  9:33   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 07/39] accel/tcg: Remove 'info opcount' and @x-query-opcount Philippe Mathieu-Daudé
2025-07-04  4:23   ` Xiaoyao Li
2025-07-04  4:50   ` Markus Armbruster
2025-07-04  9:36   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 08/39] accel/tcg: Remove profiler leftover Philippe Mathieu-Daudé
2025-07-04  4:24   ` Xiaoyao Li
2025-07-04  9:37   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 09/39] accel/tcg: Factor tcg_dump_flush_info() out Philippe Mathieu-Daudé
2025-07-04  4:27   ` Xiaoyao Li
2025-07-04  4:33     ` Xiaoyao Li
2025-07-04  9:38   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 10/39] accel/tcg: Factor tcg_dump_stats() out for re-use Philippe Mathieu-Daudé
2025-07-04  9:39   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 11/39] accel/tcg: Extract statistic related code to tcg-stats.c Philippe Mathieu-Daudé
2025-07-04  8:44   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 12/39] accel: Move supports_guest_debug() declaration to AccelClass Philippe Mathieu-Daudé
2025-07-04  5:25   ` Xiaoyao Li
2025-07-04  9:42   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 13/39] accel: Move cpus_are_resettable() " Philippe Mathieu-Daudé
2025-07-04  5:36   ` Xiaoyao Li
2025-07-04  9:44   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 14/39] accel/hvf: Restrict internal declarations Philippe Mathieu-Daudé
2025-07-04  5:39   ` Xiaoyao Li
2025-07-04  9:45   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 15/39] accel/hvf: Move per-cpu method declarations to hvf-accel-ops.c Philippe Mathieu-Daudé
2025-07-04  9:46   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 16/39] accel/hvf: Move generic method declarations to hvf-all.c Philippe Mathieu-Daudé
2025-07-04  9:50   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 17/39] cpus: Document CPUState::vcpu_dirty field Philippe Mathieu-Daudé
2025-07-04  5:52   ` Xiaoyao Li
2025-07-03 17:32 ` [PATCH v6 18/39] accel/hvf: Replace @dirty field by generic " Philippe Mathieu-Daudé
2025-07-04  5:54   ` Xiaoyao Li
2025-07-04 10:07   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 19/39] accel/nvmm: " Philippe Mathieu-Daudé
2025-07-04  5:55   ` Xiaoyao Li
2025-07-04 10:08   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 20/39] accel/whpx: " Philippe Mathieu-Daudé
2025-07-04  5:55   ` Xiaoyao Li
2025-07-04 10:11   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 21/39] accel/kvm: Remove kvm_cpu_synchronize_state() stub Philippe Mathieu-Daudé
2025-07-04  6:02   ` Xiaoyao Li
2025-07-04  8:21     ` Philippe Mathieu-Daudé
2025-07-04 10:15   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 22/39] accel/system: Document cpu_synchronize_state() Philippe Mathieu-Daudé
2025-07-04 10:17   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 23/39] accel/system: Document cpu_synchronize_state_post_init/reset() Philippe Mathieu-Daudé
2025-07-04 10:19   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 24/39] accel/nvmm: Expose nvmm_enabled() to common code Philippe Mathieu-Daudé
2025-07-04  8:32   ` Philippe Mathieu-Daudé
2025-07-04 10:26   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 25/39] accel/whpx: Expose whpx_enabled() " Philippe Mathieu-Daudé
2025-07-04 10:36   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 26/39] accel/dummy: Extract 'dummy-cpus.h' header from 'system/cpus.h' Philippe Mathieu-Daudé
2025-07-04  6:16   ` Xiaoyao Li
2025-07-04 10:44   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 27/39] accel: Pass old/new interrupt mask to handle_interrupt() handler Philippe Mathieu-Daudé
2025-07-04  6:32   ` Xiaoyao Li
2025-07-04 10:59   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 28/39] accel: Expose and register generic_handle_interrupt() Philippe Mathieu-Daudé
2025-07-04  6:38   ` Xiaoyao Li
2025-07-04  8:27     ` Philippe Mathieu-Daudé
2025-07-03 17:32 ` [PATCH v6 29/39] accel: Keep reference to AccelOpsClass in AccelClass Philippe Mathieu-Daudé
2025-07-04 11:01   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 30/39] accel: Propagate AccelState to AccelClass::init_machine() Philippe Mathieu-Daudé
2025-07-04 11:33   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 31/39] accel/kvm: Prefer local AccelState over global MachineState::accel Philippe Mathieu-Daudé
2025-07-04 11:33   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 32/39] accel/tcg: Prefer local AccelState over global current_accel() Philippe Mathieu-Daudé
2025-07-04 11:34   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 33/39] accel: Directly pass AccelState argument to AccelClass::has_memory() Philippe Mathieu-Daudé
2025-07-04 11:35   ` Zhao Liu
2025-07-04 11:46   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 34/39] accel/kvm: Directly pass KVMState argument to do_kvm_create_vm() Philippe Mathieu-Daudé
2025-07-04 11:37   ` Zhao Liu
2025-07-04 11:46   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 35/39] accel: Remove unused MachineState argument of AccelClass::setup_post() Philippe Mathieu-Daudé
2025-07-04 11:38   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 36/39] accel: Pass AccelState argument to gdbstub_supported_sstep_flags() Philippe Mathieu-Daudé
2025-07-04 11:42   ` Zhao Liu
2025-07-03 17:32 ` [PATCH v6 37/39] accel: Rename 'system/accel-ops.h' -> 'accel/accel-cpu-ops.h' Philippe Mathieu-Daudé
2025-07-04  8:52   ` Zhao Liu
2025-07-04 14:01   ` Richard Henderson
2025-07-03 17:32 ` [PATCH v6 38/39] accel: Extract AccelClass definition to 'accel/accel-ops.h' Philippe Mathieu-Daudé
2025-07-04  9:02   ` Zhao Liu
2025-07-04 14:03   ` Richard Henderson
2025-07-03 17:32 ` [PATCH v6 39/39] MAINTAINERS: Add me as reviewer of overall accelerators section Philippe Mathieu-Daudé
2025-07-03 22:42   ` Philippe Mathieu-Daudé
2025-07-04  3:23   ` Richard Henderson
2025-07-04  8:50 ` [PATCH v6 00/39] accel: Preparatory cleanups for split-accel Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).