From: Ira Weiny <[email protected]>
CXL Event records inform the OS of various CXL device events. Thus far CXL
memory devices are emulated and therefore don't naturally have events which
will occur.
Add mock events and a HMP trigger mechanism to facilitate guest OS testing of
event support.
This support requires a follow on version of the event patch set. The RFC was
submitted and discussed here:
https://lore.kernel.org/linux-cxl/[email protected]/
I'll post the lore link to the new version shortly.
Instructions for running this test.
Add qmp option to qemu:
<host> $ qemu-system-x86_64 ... -qmp
unix:/tmp/run_qemu_qmp_0,server,nowait ...
OR
<host> $ run_qemu.sh ... --qmp ...
Enable tracing of events within the guest:
<guest> $ echo "" > /sys/kernel/tracing/trace
<guest> $ echo 1 > /sys/kernel/tracing/events/cxl/enable
<guest> $ echo 1 > /sys/kernel/tracing/tracing_on
Trigger event generation and interrupts in the host:
<host> $ echo "cxl_event_inject cxl-devX" | qmp-shell -H
/tmp/run_qemu_qmp_0
Where X == one of the memory devices; cxl-dev0 should work.
View events on the guest:
<guest> $ cat /sys/kernel/tracing/trace
Ira Weiny (6):
qemu/bswap: Add const_le64()
qemu/uuid: Add UUID static initializer
hw/cxl/cxl-events: Add CXL mock events
hw/cxl/mailbox: Wire up get/clear event mailbox commands
hw/cxl/cxl-events: Add event interrupt support
hw/cxl/mailbox: Wire up Get/Set Event Interrupt policy
hmp-commands.hx | 14 ++
hw/cxl/cxl-device-utils.c | 1 +
hw/cxl/cxl-events.c | 330 ++++++++++++++++++++++++++++++++++++
hw/cxl/cxl-host-stubs.c | 5 +
hw/cxl/cxl-mailbox-utils.c | 224 +++++++++++++++++++++---
hw/cxl/meson.build | 1 +
hw/mem/cxl_type3.c | 7 +-
include/hw/cxl/cxl_device.h | 22 +++
include/hw/cxl/cxl_events.h | 194 +++++++++++++++++++++
include/qemu/bswap.h | 10 ++
include/qemu/uuid.h | 12 ++
include/sysemu/sysemu.h | 3 +
12 files changed, 802 insertions(+), 21 deletions(-)
create mode 100644 hw/cxl/cxl-events.c
create mode 100644 include/hw/cxl/cxl_events.h
base-commit: 6f7f81898e4437ea544ee4ca24bef7ec543b1f06
--
2.37.2