[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Questions about CXL RAS injection test in qemu
From: |
Yuquan Wang |
Subject: |
Questions about CXL RAS injection test in qemu |
Date: |
Wed, 6 Mar 2024 19:27:07 +0800 |
Hello, Jonathan
Recently I met some problems on CXL RAS tests.
I tried to use "cxl-inject-uncorrectable-errors" and
"cxl-inject-correctable-error"
qmp to inject CXL errors, however, there was no any kernel printing information
in
my qemu machine. And the qmp connection was unstable that made the machine
always "terminating on signal 2".
In addition, I successfully used the hmp "pcie_aer_inject_error" in the same
conditions.
The kernel showed relevant print information.
Question:
1) Is my CXL RAS test operations standard?
2) The error injected by "pcie_aer_inject_error" is "protocol & link errors" of
cxl.io?
The error injected by "cxl-inject-uncorrectable-errors" or
"cxl-inject-correctable-error" is "protocol & link errors" of cxl.cachemem?
Hope I can get some helps here, any help will be greatly appreciated.
My qemu command line:
qemu-system-x86_64 \
-M q35,nvdimm=on,cxl=on \
-m 4G \
-smp 4 \
-object memory-backend-ram,size=2G,id=mem0 \
-numa node,nodeid=0,cpus=0-1,memdev=mem0 \
-object memory-backend-ram,size=2G,id=mem1 \
-numa node,nodeid=1,cpus=2-3,memdev=mem1 \
-object memory-backend-ram,size=256M,id=cxl-mem0 \
-device pxb-cxl,bus_nr=12,bus=pcie.0,id=cxl.1 \
-device cxl-rp,port=0,bus=cxl.1,id=root_port0,chassis=0,slot=0 \
-device cxl-type3,bus=root_port0,volatile-memdev=cxl-mem0,id=cxl-mem0 \
-M
cxl-fmw.0.targets.0=cxl.1,cxl-fmw.0.size=4G,cxl-fmw.0.interleave-granularity=4k
\
-hda ../disk/ubuntu_x86_test_new.qcow2 \
-nographic \
-qmp tcp:127.0.0.1:4444,server,nowait \
Qemu version: 8.2.50, the lastest commit of branch cxl-2024-03-05 in
"https://gitlab.com/jic23/qemu"
Kernel version: 6.8.0-rc6
My steps in the Qemu qmp:
1) telnet 127.0.0.1 4444
result:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
{"QMP": {"version": {"qemu": {"micro": 50, "minor": 2, "major": 8}, "package":
"v6.2.0-19482-gccfb4fe221"}, "capabilities": ["oob"]}}
2) { "execute": "qmp_capabilities" }
result:
{"return": {}}
3) If inject correctable error:
{ "execute": "cxl-inject-correctable-error",
"arguments": {
"path": "/machine/peripheral/cxl-mem0",
"type": "physical"
} }
result:
{"return": {}}
3) If inject uncorrectable error:
{ "execute": "cxl-inject-uncorrectable-errors",
"arguments": {
"path": "/machine/peripheral/cxl-mem0",
"errors": [
{
"type": "cache-address-parity",
"header": [ 3, 4]
},
{
"type": "cache-data-parity",
"header":
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
},
{
"type": "internal",
"header": [ 1, 2, 4]
}
]
}}
result:
{"return": {}}
{"timestamp": {"seconds": 1709721640, "microseconds": 275345}, "event":
"SHUTDOWN", "data": {"guest": false, "reason": "host-signal"}}
Many thanks
Yuquan
- Questions about CXL RAS injection test in qemu,
Yuquan Wang <=