qemu-cr16/hw/core
Alex Bennée 638181a180 core/cpu-common: initialise plugin state before thread creation
Originally I tried to move where vCPU thread initialisation to later
in realize. However pulling that thread (sic) got gnarly really
quickly. It turns out some steps of CPU realization need values that
can only be determined from the running vCPU thread.

However having moved enough out of the thread creation we can now
queue work before the thread starts (at least for TCG guests) and
avoid the race between vcpu_init and other vcpu states a plugin might
subscribe to.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20240530194250.1801701-6-alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2024-06-04 10:02:39 +02:00
..
bus.c hw/core: Remove transitional infrastructure from BusClass 2024-02-02 13:51:57 +00:00
clock-vmstate.c hw/core: Constify VMState 2023-12-29 11:17:30 +11:00
clock.c hw/core/clock: allow clock_propagate on child clocks 2024-04-30 15:01:05 +01:00
cpu-common.c core/cpu-common: initialise plugin state before thread creation 2024-06-04 10:02:39 +02:00
cpu-sysemu.c exec: Declare target_words_bigendian() in 'exec/tswap.h' 2024-04-26 17:03:05 +02:00
fw-path-provider.c
generic-loader.c exec: Declare target_words_bigendian() in 'exec/tswap.h' 2024-04-26 17:03:05 +02:00
gpio.c
guest-loader.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
guest-loader.h
hotplug.c
irq.c hw/irq: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-02-27 13:27:05 +00:00
Kconfig kconfig: allow compiling out QEMU device tree code per target 2024-05-10 15:45:15 +02:00
loader-fit.c hw/core/loader-fit: Fix missing ERRP_GUARD() for error_prepend() 2024-03-11 22:10:18 +01:00
loader.c hw/elf_ops: Rename elf_ops.h -> elf_ops.h.inc 2024-04-25 12:48:12 +02:00
machine-hmp-cmds.c hw/core: Introduce module-id as the topology subindex 2024-04-25 12:48:12 +02:00
machine-qmp-cmds.c qmp: add dump machine type compatibility properties 2024-04-25 10:12:40 +02:00
machine-smp.c hw/core: allow parameter=1 for SMP topology on any machine 2024-05-17 16:49:04 +02:00
machine.c Migration pull request 2024-05-22 15:32:25 -07:00
meson.build kconfig: allow compiling out QEMU device tree code per target 2024-05-10 15:45:15 +02:00
nmi.c hw/core: Improve error message when machine doesn't provide NMIs 2023-02-23 14:10:17 +01:00
null-machine.c
numa.c virtio,pc,pci: features, cleanups, fixes 2024-03-13 15:11:53 +00:00
or-irq.c hw/core: Constify VMState 2023-12-29 11:17:30 +11:00
platform-bus.c
ptimer.c hw/core: Constify VMState 2023-12-29 11:17:30 +11:00
qdev-clock.c Drop more useless casts from void * to pointer 2022-12-14 16:19:35 +01:00
qdev-fw.c
qdev-hotplug.c
qdev-prop-internal.h
qdev-properties-system.c virtio,pc,pci: features, cleanups, fixes 2024-03-13 15:11:53 +00:00
qdev-properties.c qapi: Inline and remove QERR_PROPERTY_VALUE_BAD definition 2024-04-24 09:50:58 +02:00
qdev.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
register.c
reset.c reset: Add RESET_TYPE_SNAPSHOT_LOAD 2024-04-25 10:21:59 +01:00
resetcontainer.c hw/core: Add ResetContainer which holds objects implementing Resettable 2024-02-27 13:01:42 +00:00
resettable.c reset: Add RESET_TYPE_SNAPSHOT_LOAD 2024-04-25 10:21:59 +01:00
split-irq.c
stream.c
sysbus-fdt.c hw/core: Tidy up unnecessary casting away of const 2022-10-22 22:50:27 +02:00
sysbus.c hw/sysbus: Remove now unused sysbus_address_space() 2024-02-26 18:40:21 +01:00
trace-events trace-events: remove the remaining vcpu trace events 2023-06-01 11:05:05 -04:00
trace.h
uboot_image.h hw/core: Sync uboot_image.h from U-Boot v2022.01 2022-05-24 10:38:50 +10:00
vm-change-state-handler.c qdev: Add qdev_add_vm_change_state_handler_full() 2023-09-11 08:34:05 +02:00
vmstate-if.c