Message ID | 20230530133603.16934-1-Jonathan.Cameron@huawei.com |
---|---|
Headers | show |
Series | QEMU CXL Provide mock CXL events and irq support | expand |
Hello, Jonathan When during the test of qmps of CXL events like "cxl-inject-general-media-event", I am confuesd about the argument "flags". According to "qapi/cxl.json" in qemu, this argument represents "Event Record Flags" in Common Event Record Format. However, it seems like the specific 'Event Record Severity' in this field can be different from the value of 'Event Status' in "Event Status Register". For instance (take an injection example in the coverlatter): { "execute": "cxl-inject-general-media-event", "arguments": { "path": "/machine/peripheral/cxl-mem0", "log": "informational", "flags": 1, "dpa": 1000, "descriptor": 3, "type": 3, "transaction-type": 192, "channel": 3, "device": 5, "component-id": "iras mem" }} In my understanding, the 'Event Status' is informational and the 'Event Record Severity' is Warning event, which means these two arguments are independent of each other. Is my understanding correct? Many thanks Yuquan
On Fri, 15 Mar 2024 09:52:28 +0800 Yuquan Wang <wangyuquan1236@phytium.com.cn> wrote: > Hello, Jonathan > > When during the test of qmps of CXL events like "cxl-inject-general-media-event", > I am confuesd about the argument "flags". According to "qapi/cxl.json" in qemu, > this argument represents "Event Record Flags" in Common Event Record Format. > However, it seems like the specific 'Event Record Severity' in this field can be > different from the value of 'Event Status' in "Event Status Register". > > For instance (take an injection example in the coverlatter): > > { "execute": "cxl-inject-general-media-event", > "arguments": { > "path": "/machine/peripheral/cxl-mem0", > "log": "informational", > "flags": 1, > "dpa": 1000, > "descriptor": 3, > "type": 3, > "transaction-type": 192, > "channel": 3, > "device": 5, > "component-id": "iras mem" > }} > > In my understanding, the 'Event Status' is informational and the > 'Event Record Severity' is Warning event, which means these two arguments are > independent of each other. Is my understanding correct? The event status registers dictates the notification path (which log). So I think that's "informational" here. Whereas flags is about the specific error. One case where they might be different is where the Related Event Record Handle is set. An error might be reported as 1) Several things that were non fatal (each with their own record) 2) In combination they result in a fatal situation (also has it's own record). The QEMU injection shouldn't restrict these combinations more than the spec does (which is not at all!). This same disconnect in error severity is seen in UEFI CPER records for example where there is a containing record with one severity field, but more specific parts of record can have lower (or in theory higher) severity. Jonathan > > Many thanks > Yuquan >