From: Jonathan Cameron via <qemu-devel@nongnu.org>
To: <qemu-devel@nongnu.org>, Michael Tsirkin <mst@redhat.com>,
Fan Ni <fan.ni@samsung.com>
Cc: linux-cxl@vger.kernel.org, linuxarm@huawei.com,
"Ira Weiny" <ira.weiny@intel.com>,
"Michael Roth" <michael.roth@amd.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Dave Jiang" <dave.jiang@intel.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Mike Maslenkin" <mike.maslenkin@gmail.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Thomas Huth" <thuth@redhat.com>
Subject: [PATCH v8 0/7] QEMU CXL Provide mock CXL events and irq support
Date: Fri, 26 May 2023 18:12:57 +0100 [thread overview]
Message-ID: <20230526171304.1613-1-Jonathan.Cameron@huawei.com> (raw)
v8: QMP documentation formatting fixes from Markus.
Gathered tags.
Based on:
[PATCH v8 0/4] hw/cxl: Poison get, inject, clear
Based on: Message-ID: 20230526170010.574-1-Jonathan.Cameron@huawei.com
Updated cover letter from earlier versions:
One challenge here is striking the right balance between lots of constraints
in the injection code to enforce particular reserved bits etc by breaking
out all the flags as individual parameters vs having a reasonably concise
API. I think this set strikes the right balance but others may well
disagree :) Note that Ira raised the question of whether we should be
automatically establishing the volatile flag based on the Device Physical
Address of the injected error. My proposal is to not do so for now, but
to possibly revisit tightening the checking of injected errors in future.
Whilst the volatile flag is straight forwards, some of the other flags that
could be automatically set (or perhaps checked for validiaty) are much more
complex. Adding verification at this stage would greatly increase the
complexity of the patch + we are missing other elements that would interact
with this. I'm not concerned about potential breaking of backwards compatibility
if it only related to the injection of errors that make no sense for a real
device.
CXL Event records inform the OS of various CXL device events. Thus far CXL
memory devices are emulated and therefore don't naturally generate events.
Add an event infrastructure and mock event injection. Previous versions
included a bulk insertion of lots of events. However, this series focuses on
providing the ability to inject individual events through QMP. Only the
General Media Event is included in this series as an example. Other events can
be added pretty easily once the infrastructure is acceptable.
In addition, this version updates the code to be in line with the
specification based on discussions around the kernel patches.
Injection examples;
{ "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"
}}
{ "execute": "cxl-inject-dram-event",
"arguments": {
"path": "/machine/peripheral/cxl-mem0",
"log": "informational",
"flags": 1,
"dpa": 1000,
"descriptor": 3,
"type": 3,
"transaction-type": 192,
"channel": 3,
"rank": 17,
"nibble-mask": 37421234,
"bank-group": 7,
"bank": 11,
"row": 2,
"column": 77,
"correction-mask": [33, 44, 55, 66]
}}
{ "execute": "cxl-inject-memory-module-event",
"arguments": {
"path": "/machine/peripheral/cxl-mem0",
"log": "informational",
"flags": 1,
"type": 3,
"health-status": 3,
"media-status": 7,
"additional-status": 33,
"life-used": 30,
"temperature": -15,
"dirty-shutdown-count": 4,
"corrected-volatile-error-count": 3233,
"corrected-persistent-error-count": 1300
}}
Ira Weiny (4):
hw/cxl/events: Add event status register
hw/cxl/events: Wire up get/clear event mailbox commands
hw/cxl/events: Add event interrupt support
hw/cxl/events: Add injection of General Media Events
Jonathan Cameron (3):
hw/cxl: Move CXLRetCode definition to cxl_device.h
hw/cxl/events: Add injection of DRAM events
hw/cxl/events: Add injection of Memory Module Events
qapi/cxl.json | 188 +++++++++++++++++++++++
include/hw/cxl/cxl_device.h | 80 +++++++++-
include/hw/cxl/cxl_events.h | 168 +++++++++++++++++++++
hw/cxl/cxl-device-utils.c | 43 +++++-
hw/cxl/cxl-events.c | 248 ++++++++++++++++++++++++++++++
hw/cxl/cxl-mailbox-utils.c | 166 ++++++++++++++------
hw/mem/cxl_type3.c | 292 +++++++++++++++++++++++++++++++++++-
hw/mem/cxl_type3_stubs.c | 35 +++++
hw/cxl/meson.build | 1 +
9 files changed, 1165 insertions(+), 56 deletions(-)
create mode 100644 include/hw/cxl/cxl_events.h
create mode 100644 hw/cxl/cxl-events.c
--
2.39.2
next reply other threads:[~2023-05-26 17:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-26 17:12 Jonathan Cameron via [this message]
2023-05-26 17:12 ` [PATCH v8 1/7] hw/cxl/events: Add event status register Jonathan Cameron via
2023-05-26 17:12 ` [PATCH v8 2/7] hw/cxl: Move CXLRetCode definition to cxl_device.h Jonathan Cameron via
2023-05-26 17:13 ` [PATCH v8 3/7] hw/cxl/events: Wire up get/clear event mailbox commands Jonathan Cameron via
2023-05-26 17:13 ` [PATCH v8 4/7] hw/cxl/events: Add event interrupt support Jonathan Cameron via
2023-05-26 17:13 ` [PATCH v8 5/7] hw/cxl/events: Add injection of General Media Events Jonathan Cameron via
2023-05-27 5:47 ` Markus Armbruster
2023-05-26 17:13 ` [PATCH v8 6/7] hw/cxl/events: Add injection of DRAM events Jonathan Cameron via
2023-05-26 17:13 ` [PATCH v8 7/7] hw/cxl/events: Add injection of Memory Module Events Jonathan Cameron via
2023-05-27 5:48 ` Markus Armbruster
2023-05-30 13:33 ` Jonathan Cameron via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230526171304.1613-1-Jonathan.Cameron@huawei.com \
--to=qemu-devel@nongnu.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dave.jiang@intel.com \
--cc=eblake@redhat.com \
--cc=fan.ni@samsung.com \
--cc=ira.weiny@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=marcandre.lureau@redhat.com \
--cc=michael.roth@amd.com \
--cc=mike.maslenkin@gmail.com \
--cc=mst@redhat.com \
--cc=philmd@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).