From: Ira Weiny <ira.weiny@intel.com>
To: Alireza Sanaee <alireza.sanaee@huawei.com>, <nifan.cxl@gmail.com>
Cc: <qemu-devel@nongnu.org>, <jonathan.cameron@huawei.com>,
<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>,
<armbru@redhat.com>, <mst@redhat.com>,
Fan Ni <fan.ni@samsung.com>,
"Svetly Todorov" <svetly.todorov@memverge.com>
Subject: Re: [PATCH v8 11/14] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents
Date: Tue, 2 Sep 2025 10:59:35 -0500 [thread overview]
Message-ID: <68b71467b850a_4bae529418@iweiny-mobl.notmuch> (raw)
In-Reply-To: <20250902113915.00001fbd.alireza.sanaee@huawei.com>
Alireza Sanaee wrote:
> On Thu, 23 May 2024 10:44:51 -0700
> nifan.cxl@gmail.com wrote:
>
> > From: Fan Ni <fan.ni@samsung.com>
> >
> > To simulate FM functionalities for initiating Dynamic Capacity Add
> > (Opcode 5604h) and Dynamic Capacity Release (Opcode 5605h) as in CXL
> > spec r3.1 7.6.7.6.5 and 7.6.7.6.6, we implemented two QMP interfaces
> > to issue add/release dynamic capacity extents requests.
> >
> > With the change, we allow to release an extent only when its DPA range
> > is contained by a single accepted extent in the device. That is to
> > say, extent superset release is not supported yet.
> >
> > 1. Add dynamic capacity extents:
> >
> > For example, the command to add two continuous extents (each 128MiB
> > long) to region 0 (starting at DPA offset 0) looks like below:
> >
> > { "execute": "qmp_capabilities" }
> >
> > { "execute": "cxl-add-dynamic-capacity",
> > "arguments": {
> > "path": "/machine/peripheral/cxl-dcd0",
> > "host-id": 0,
> > "selection-policy": "prescriptive",
> > "region": 0,
> > "extents": [
> > {
> > "offset": 0,
> > "len": 134217728
> > },
> > {
> > "offset": 134217728,
> > "len": 134217728
> > }
> > ]
> > }
> > }
> >
> > 2. Release dynamic capacity extents:
> >
> > For example, the command to release an extent of size 128MiB from
> > region 0 (DPA offset 128MiB) looks like below:
> >
> > { "execute": "cxl-release-dynamic-capacity",
> > "arguments": {
> > "path": "/machine/peripheral/cxl-dcd0",
> > "host-id": 0,
> > "removal-policy":"prescriptive",
> > "region": 0,
> > "extents": [
> > {
> > "offset": 134217728,
> > "len": 134217728
> > }
> > ]
> > }
> > }
> >
> > Tested-by: Svetly Todorov <svetly.todorov@memverge.com>
> > Reviewed-by: Gregory Price <gregory.price@memverge.com>
> > Signed-off-by: Fan Ni <fan.ni@samsung.com>
[snip]
> > +##
> > +# @cxl-release-dynamic-capacity:
> > +#
> > +# Command to initiate to release dynamic capacity extents from a
> > +# host. It simulates operations defined in cxl spec r3.1 7.6.7.6.6.
> > +#
> > +# @path: CXL DCD canonical QOM path.
> > +#
> > +# @host-id: The "Host ID" field as defined in cxl spec r3.1
> > +# Table 7-71.
> > +#
> > +# @removal-policy: Bit[3:0] of the "Flags" field as defined in cxl
> > +# spec r3.1 Table 7-71.
> > +#
> > +# @forced-removal: Bit[4] of the "Flags" field in cxl spec r3.1
> > +# Table 7-71. When set, device does not wait for a Release
> > +# Dynamic Capacity command from the host. Host immediately
> > +# loses access to released capacity.
> > +#
> > +# @sanitize-on-release: Bit[5] of the "Flags" field in cxl spec r3.1
> > +# Table 7-71. When set, device should sanitize all released
> > +# capacity as a result of this request.
> > +#
> > +# @region: The "Region Number" field as defined in cxl spec r3.1
> > +# Table 7-71. The dynamic capacity region where the capacity
> > +# is being added. Valid range is from 0-7.
> > +#
> > +# @tag: The "Tag" field as defined in cxl spec r3.1 Table 7-71.
> > +#
> > +# @extents: The "Extent List" field as defined in cxl spec r3.1
> > +# Table 7-71.
> > +#
> > +# Since : 9.1
> > +##
> > +{ 'command': 'cxl-release-dynamic-capacity',
> > + 'data': { 'path': 'str',
> > + 'host-id': 'uint16',
> > + 'removal-policy': 'CXLExtRemovalPolicy',
> > + '*forced-removal': 'bool',
> > + '*sanitize-on-release': 'bool',
> > + 'region': 'uint8',
> > + '*tag': 'str',
> > + 'extents': [ 'CXLDynamicCapacityExtent' ]
> > + }
> > +}
>
> Although tag-based removal is not implemented yet, but still just wanted
> to leave a comment here that exact extents are not needed for tag-based
> removal and `extents` should be an optional parameter here; this is my
> understanding reading the spec, so I still might be wrong, shout if you
> think it does not make sense.
It's been a while but I think this allows the removal of non-tagged
extents as well(?) If so the tag would be NULL (or empty-string) and one
can remove a regular extent.
But I could be miss-remembering something,
Ira
next prev parent reply other threads:[~2025-09-02 15:58 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 17:44 [PATCH v8 00/14] Enabling DCD emulation support in Qemu nifan.cxl
2024-05-23 17:44 ` [PATCH v8 01/14] hw/cxl/mailbox: change CCI cmd set structure to be a member, not a reference nifan.cxl
2024-05-23 17:44 ` [PATCH v8 02/14] hw/cxl/mailbox: interface to add CCI commands to an existing CCI nifan.cxl
2024-05-23 17:44 ` [PATCH v8 03/14] hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output payload of identify memory device command nifan.cxl
2024-05-23 17:44 ` [PATCH v8 04/14] hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative and mailbox command support nifan.cxl
2024-05-23 17:44 ` [PATCH v8 05/14] include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for type3 memory devices nifan.cxl
2024-05-23 17:44 ` [PATCH v8 06/14] hw/mem/cxl_type3: Add support to create DC regions to " nifan.cxl
2024-05-27 7:42 ` Zhijian Li (Fujitsu) via
2024-05-23 17:44 ` [PATCH v8 07/14] hw/mem/cxl-type3: Refactor ct3_build_cdat_entries_for_mr to take mr size instead of mr as argument nifan.cxl
2024-05-23 17:44 ` [PATCH v8 08/14] hw/mem/cxl_type3: Add host backend and address space handling for DC regions nifan.cxl
2024-06-03 12:27 ` Jonathan Cameron via
2024-06-03 15:04 ` Michael S. Tsirkin
2024-06-03 17:27 ` Jonathan Cameron via
2024-05-23 17:44 ` [PATCH v8 09/14] hw/mem/cxl_type3: Add DC extent list representative and get DC extent list mailbox support nifan.cxl
2024-05-23 17:44 ` [PATCH v8 10/14] hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release dynamic capacity response nifan.cxl
2024-05-23 17:44 ` [PATCH v8 11/14] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents nifan.cxl
2024-06-04 7:12 ` Markus Armbruster
2024-06-04 11:55 ` Jonathan Cameron via
2024-06-04 14:49 ` Markus Armbruster
2025-09-02 10:39 ` Alireza Sanaee via
2025-09-02 15:59 ` Ira Weiny [this message]
2025-09-04 8:44 ` Alireza Sanaee via
2024-05-23 17:44 ` [PATCH v8 12/14] hw/mem/cxl_type3: Add DPA range validation for accesses to DC regions nifan.cxl
2024-05-23 17:44 ` [PATCH v8 13/14] hw/cxl/cxl-mailbox-utils: Add superset extent release mailbox support nifan.cxl
2024-05-23 17:44 ` [PATCH v8 14/14] hw/mem/cxl_type3: Allow to release extent superset in QMP interface nifan.cxl
2024-06-03 13:51 ` [PATCH v8 00/14] Enabling DCD emulation support in Qemu Jonathan Cameron via
2025-06-25 14:22 ` Alireza Sanaee via
2025-06-26 16:39 ` Fan Ni
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=68b71467b850a_4bae529418@iweiny-mobl.notmuch \
--to=ira.weiny@intel.com \
--cc=Jorgen.Hansen@wdc.com \
--cc=a.manzanares@samsung.com \
--cc=alireza.sanaee@huawei.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=jim.harris@samsung.com \
--cc=jonathan.cameron@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=mst@redhat.com \
--cc=nifan.cxl@gmail.com \
--cc=nmtadam.samsung@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=svetly.todorov@memverge.com \
--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;
as well as URLs for NNTP newsgroup(s).