From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: qemu-devel@nongnu.org, "Fan Ni" <fan.ni@samsung.com>,
linux-cxl@vger.kernel.org, linuxarm@huawei.com,
"Ira Weiny" <ira.weiny@intel.com>,
"Alison Schofield" <alison.schofield@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: Re: [PATCH v4 0/7] QEMU CXL Provide mock CXL events and irq support
Date: Fri, 21 Apr 2023 03:25:45 -0400 [thread overview]
Message-ID: <20230421032504-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230303152903.28103-1-Jonathan.Cameron@huawei.com>
On Fri, Mar 03, 2023 at 03:28:56PM +0000, Jonathan Cameron wrote:
> Whilst I'm an optimist, I suspect this is now 8.1 material because we have
> 5 CXL patch sets outstanding before it. Current bottleneck being QAPI review
> for the RAS error series.
RAS thing is in, right?
could you rebase this one? no longer applies cleanly. thanks!
> v4 changes: Thanks to Ira and to some feedback I received off list.
> - More endian fixes for a future big endian architecture using it.
> - Comment typo
>
> 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.
>
> Based on following series (in order)
> 1. [PATCH v4 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream
> (in staging currently so fingers crossed that one is fine)
> 2. [PATCH v6 0/8] hw/cxl: RAS error emulation and injection
> 3. [PATCH v2 0/2] hw/cxl: Passthrough HDM decoder emulation
> 4. [PATCH v4 0/2] hw/mem: CXL Type-3 Volatile Memory Support
> 5. [PATCH v4 0/6] hw/cxl: Poison get, inject, clear
>
> Based on: Message-Id: 20230206172816.8201-1-Jonathan.Cameron@huawei.com
> Based-on: Message-id: 20230227112751.6101-1-Jonathan.Cameron@huawei.com
> Based-on: Message-id: 20230227153128.8164-1-Jonathan.Cameron@huawei.com
> Based-on: Message-id: 20230227163157.6621-1-Jonathan.Cameron@huawei.com
> Based-on: Message-id: 20230303150908.27889-1-Jonathan.Cameron@huawei.com
>
> v2 cover letter.
>
> 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-gen-media-event",
> "arguments": {
> "path": "/machine/peripheral/cxl-mem0",
> "log": "informational",
> "flags": 1,
> "physaddr": 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,
> "physaddr": 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
>
> hw/cxl/cxl-device-utils.c | 43 +++++-
> hw/cxl/cxl-events.c | 248 ++++++++++++++++++++++++++++++
> hw/cxl/cxl-mailbox-utils.c | 166 ++++++++++++++------
> hw/cxl/meson.build | 1 +
> hw/mem/cxl_type3.c | 292 +++++++++++++++++++++++++++++++++++-
> hw/mem/cxl_type3_stubs.c | 35 +++++
> include/hw/cxl/cxl_device.h | 80 +++++++++-
> include/hw/cxl/cxl_events.h | 168 +++++++++++++++++++++
> qapi/cxl.json | 120 +++++++++++++++
> 9 files changed, 1097 insertions(+), 56 deletions(-)
> create mode 100644 hw/cxl/cxl-events.c
> create mode 100644 include/hw/cxl/cxl_events.h
>
> --
> 2.37.2
next prev parent reply other threads:[~2023-04-21 7:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-03 15:28 [PATCH v4 0/7] QEMU CXL Provide mock CXL events and irq support Jonathan Cameron
2023-03-03 15:28 ` Jonathan Cameron via
2023-03-03 15:28 ` [PATCH v4 1/7] hw/cxl/events: Add event status register Jonathan Cameron
2023-03-03 15:28 ` Jonathan Cameron via
2023-03-03 15:28 ` [PATCH v4 2/7] hw/cxl: Move CXLRetCode definition to cxl_device.h Jonathan Cameron
2023-03-03 15:28 ` Jonathan Cameron via
2023-03-03 15:28 ` [PATCH v4 3/7] hw/cxl/events: Wire up get/clear event mailbox commands Jonathan Cameron
2023-03-03 15:28 ` Jonathan Cameron via
2023-03-03 15:29 ` [PATCH v4 4/7] hw/cxl/events: Add event interrupt support Jonathan Cameron
2023-03-03 15:29 ` Jonathan Cameron via
2023-03-03 15:29 ` [PATCH v4 5/7] hw/cxl/events: Add injection of General Media Events Jonathan Cameron
2023-03-03 15:29 ` Jonathan Cameron via
2023-03-03 15:29 ` [PATCH v4 6/7] hw/cxl/events: Add injection of DRAM events Jonathan Cameron
2023-03-03 15:29 ` Jonathan Cameron via
2023-03-03 15:29 ` [PATCH v4 7/7] hw/cxl/events: Add injection of Memory Module Events Jonathan Cameron
2023-03-03 15:29 ` Jonathan Cameron via
2023-03-07 17:37 ` [PATCH v4 0/7] QEMU CXL Provide mock CXL events and irq support Michael S. Tsirkin
2023-04-21 7:25 ` Michael S. Tsirkin [this message]
2023-04-21 14:06 ` Jonathan Cameron
2023-04-21 14:06 ` 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=20230421032504-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=alison.schofield@intel.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=philmd@linaro.org \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.