Linux CXL
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: fan <nifan.cxl@gmail.com>, <qemu-devel@nongnu.org>,
	<linux-cxl@vger.kernel.org>, <gregory.price@memverge.com>,
	<ira.weiny@intel.com>, <dan.j.williams@intel.com>,
	<a.manzanares@samsung.com>, <dave@stgolabs.net>,
	<nmtadam.samsung@gmail.com>, <jim.harris@samsung.com>,
	<Jorgen.Hansen@wdc.com>, <wj28.lee@gmail.com>,
	Fan Ni <fan.ni@samsung.com>
Subject: Re: [PATCH v7 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents
Date: Tue, 4 Jun 2024 12:54:28 +0100	[thread overview]
Message-ID: <20240604125428.00003a1d@Huawei.com> (raw)
In-Reply-To: <87cyox9icl.fsf@pond.sub.org>

On Tue, 04 Jun 2024 11:18:18 +0200
Markus Armbruster <armbru@redhat.com> wrote:

> I finally got around to read this slowly.  Thank you, Fan and Jonathan!
> 
> I'm getting some "incomplete" vibes: "if we ever implement", "patches
> for this on list", "we aren't emulating this yet at all", and ...

Absolutely.  There is a bunch of stuff that we reject today but
the interfaces allow you to specify it and align with the CXL specification
Fabric Management API definition which is the spec used to control this
stuff from a BMC etc.  If that doesn't work we have a hardware errata
problem, so hopefully that is fairly stable.

I think I can publicly confirm there are some related errata in flight,
seeing as we said we'd raise questions on some aspects in the kernel and
QEMU series preceding this one (so no IP secrecy issues). These are as a
result of this work from Fan, but we have carefully avoided implementing
anything that 'may' change.


> 
> Jonathan Cameron <Jonathan.Cameron@Huawei.com> writes:
> 
> [...]
> 
> > Only thing I'd add is that for now (because we don't need it for testing
> > the kernel flows) is that this does not provide any way for external
> > agents (e.g. our 'fabric manager' to find out what the state is - i.e.
> > if the extents have been accepted by the host etc). That stuff is all
> > defined by the spec, but not yet in the QMP interface.  At somepoint
> > we may want to add that as a state query type interface.  
> 
> ... this, too.
> 
> In review of v5, I asked whether this interface needs to be stable.
> 
> "Not stable" doesn't mean we change an interface without thought.  It
> merely means we can change it much, much faster, and with much less
> overhead.
> 
> I understand you want it chiefly for CXL development.  Development aids
> commonly don't need to be stable.

Ok. If it makes sense to make this unstable for now I'm fine with that.
I don't see why it would change beyond in backwards compatible fashion
with new optional fields to cover future specification updates allowing
for more information. However I've been wrong on such things before.

So I'm fine adding a patch on top of v8 marking them unstable for now.

> 
> If you're aiming for stable, you need to convince us the interface can
> support the foreseeable purposes without incompatible changes.  In
> particular, I'd like to see how you intend to support "finding out what
> the state is".  I suspect that's related to my question in review of v8:
> how to detect completion, and maybe track progress.

There is a need for completion information but given it's completely
asynchronous to the commands defined here (Can be out of order, lots of
ongoing capacity add / remove flows in flight etc) and for the hardware
definition the feedback occurs via an event record log I'm not expecting it
to affect the interfaces added so far.

> 
> There's infrastructure for background jobs: job.json.  We might be
> better off using it, unless completion is trivial and progress tracking
> unnecessary.

I'll take a look, but these are not conventional background commands
(We do have those as well, but that's a whole different set of future
problems!)

The actual command itself completes synchronously but not the flow
it kicked off which is not background as such because it may never
finish and involves lots of moving parts.  This is similar to any
form of error injection.  We inject the error synchronously and that
creates a bunch of records in various registers / firmware etc but
the actions the host OS takes are asynchronous and may only happen
when it decides to poll some register or a driver loads much later.

So I'm not sure if job.json approach fits.

> 
> [...]
> 
> 


  reply	other threads:[~2024-06-04 11:54 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-18 23:10 [PATCH v7 00/12] Enabling DCD emulation support in Qemu nifan.cxl
2024-04-18 23:10 ` [PATCH v7 01/12] hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output payload of identify memory device command nifan.cxl
2024-04-19 16:40   ` Gregory Price
2024-04-18 23:10 ` [PATCH v7 02/12] hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative and mailbox command support nifan.cxl
2024-04-19 16:44   ` Gregory Price
2024-04-18 23:10 ` [PATCH v7 03/12] include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for type3 memory devices nifan.cxl
2024-04-19 16:45   ` Gregory Price
2024-04-18 23:10 ` [PATCH v7 04/12] hw/mem/cxl_type3: Add support to create DC regions to " nifan.cxl
2024-04-19 16:47   ` Gregory Price
2024-05-14  8:14   ` Zhijian Li (Fujitsu)
2024-05-16 17:06     ` fan
2024-04-18 23:10 ` [PATCH v7 05/12] hw/mem/cxl-type3: Refactor ct3_build_cdat_entries_for_mr to take mr size instead of mr as argument nifan.cxl
2024-04-19 16:39   ` Gregory Price
2024-04-18 23:10 ` [PATCH v7 06/12] hw/mem/cxl_type3: Add host backend and address space handling for DC regions nifan.cxl
2024-04-19 17:27   ` Gregory Price
2024-04-22 11:55     ` Jonathan Cameron
2024-04-22 11:52   ` Jonathan Cameron
2024-05-14  8:28   ` Zhijian Li (Fujitsu)
2024-05-16 17:07     ` fan
2024-04-18 23:10 ` [PATCH v7 07/12] hw/mem/cxl_type3: Add DC extent list representative and get DC extent list mailbox support nifan.cxl
2024-04-19 16:52   ` Gregory Price
2024-04-18 23:10 ` [PATCH v7 08/12] hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release dynamic capacity response nifan.cxl
2024-04-19 18:12   ` Gregory Price
2024-04-18 23:11 ` [PATCH v7 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents nifan.cxl
2024-04-19 18:13   ` Gregory Price
2024-04-22 12:01   ` Jonathan Cameron
2024-04-26  9:12   ` Markus Armbruster
2024-04-26 17:31     ` fan
2024-04-29  7:58       ` Markus Armbruster
2024-04-30 17:17         ` fan
2024-05-01 14:58           ` Jonathan Cameron
2024-05-01 22:36             ` fan
2024-06-04  9:18             ` Markus Armbruster
2024-06-04 11:54               ` Jonathan Cameron [this message]
2024-06-04 12:13                 ` Jonathan Cameron
2024-06-04 12:28                 ` Markus Armbruster
2024-04-30 17:21         ` Jonathan Cameron
2024-05-01 22:29         ` fan
2024-05-20 16:50           ` Jonathan Cameron
2024-05-20 17:55             ` fan
2024-05-21 23:32             ` fan
2024-05-23 15:31               ` Jonathan Cameron
2024-05-21 23:38             ` fan
2024-05-23 15:32               ` Jonathan Cameron
2024-05-14  2:35   ` Zhijian Li (Fujitsu)
2024-04-18 23:11 ` [PATCH v7 10/12] hw/mem/cxl_type3: Add DPA range validation for accesses to DC regions nifan.cxl
2024-04-19 16:57   ` Gregory Price
2024-04-18 23:11 ` [PATCH v7 11/12] hw/cxl/cxl-mailbox-utils: Add superset extent release mailbox support nifan.cxl
2024-04-19 18:20   ` Gregory Price
2024-04-18 23:11 ` [PATCH v7 12/12] hw/mem/cxl_type3: Allow to release extent superset in QMP interface nifan.cxl
2024-04-19 18:20   ` Gregory Price
2024-04-19 18:24 ` [PATCH v7 00/12] Enabling DCD emulation support in Qemu Gregory Price
2024-04-19 18:43   ` fan
2024-04-20 20:35     ` Gregory Price
2024-04-22 12:04       ` Jonathan Cameron
2024-04-22 14:23         ` Jonathan Cameron
2024-04-22 15:07           ` Jonathan Cameron
2024-04-22 15:42         ` Gregory Price
2024-05-16 17:05   ` fan
2024-05-17 12:18     ` Jonathan Cameron
2024-05-17 16:03       ` fan
2024-05-28 18:10     ` Gregory Price
2024-05-14  2:16 ` Zhijian Li (Fujitsu)
2024-05-16 17:12   ` fan
2024-05-17  2:20     ` Zhijian Li (Fujitsu)

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=20240604125428.00003a1d@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=Jorgen.Hansen@wdc.com \
    --cc=a.manzanares@samsung.com \
    --cc=armbru@redhat.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave@stgolabs.net \
    --cc=fan.ni@samsung.com \
    --cc=gregory.price@memverge.com \
    --cc=ira.weiny@intel.com \
    --cc=jim.harris@samsung.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=nifan.cxl@gmail.com \
    --cc=nmtadam.samsung@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=wj28.lee@gmail.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