From: Ira Weiny <ira.we...@intel.com> 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/20220813053243.757363-1-ira.we...@intel.com/ 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