From: fan <nifan.cxl@gmail.com>
To: "Zhijian Li (Fujitsu)" <lizhijian@fujitsu.com>
Cc: "nifan.cxl@gmail.com" <nifan.cxl@gmail.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"jonathan.cameron@huawei.com" <jonathan.cameron@huawei.com>,
"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>,
"gregory.price@memverge.com" <gregory.price@memverge.com>,
"ira.weiny@intel.com" <ira.weiny@intel.com>,
"dan.j.williams@intel.com" <dan.j.williams@intel.com>,
"a.manzanares@samsung.com" <a.manzanares@samsung.com>,
"dave@stgolabs.net" <dave@stgolabs.net>,
"nmtadam.samsung@gmail.com" <nmtadam.samsung@gmail.com>,
"jim.harris@samsung.com" <jim.harris@samsung.com>,
"Jorgen.Hansen@wdc.com" <Jorgen.Hansen@wdc.com>,
"wj28.lee@gmail.com" <wj28.lee@gmail.com>,
"fan.ni@samsung.com" <fan.ni@samsung.com>
Subject: Re: [PATCH v7 00/12] Enabling DCD emulation support in Qemu
Date: Thu, 16 May 2024 10:12:19 -0700 [thread overview]
Message-ID: <ZkY-c1V-o4100onE@debian> (raw)
In-Reply-To: <d708f7c8-2598-4a17-9cbb-935c6ae2a2be@fujitsu.com>
On Tue, May 14, 2024 at 02:16:51AM +0000, Zhijian Li (Fujitsu) wrote:
> Hi Fan
>
>
> Do you have a newer instruction to play with the DCD. It seems that
> the instruction in RFC[0] doesn't work for current code.
>
> [0] https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
>
For the testing, the only thing that has been changed for this series is
the QMP interface for add/release DC extents.
https://lore.kernel.org/linux-cxl/d708f7c8-2598-4a17-9cbb-935c6ae2a2be@fujitsu.com/T/#m05066f0098e976fb1c4b05db5e7ff7ca1bf27b1e
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",
"hid": 0,
"selection-policy": 2,
"region-id": 0,
"tag": "",
"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",
"hid": 0,
"flags": 1,
"region-id": 0,
"tag": "",
"extents": [
{
"offset": 134217728,
"len": 134217728
}
]
}
}
btw, I have a wiki page to explain how to test CXL DCD with a tool I
wrote.
https://github.com/moking/moking.github.io/wiki/cxl%E2%80%90test%E2%80%90tool:-A-tool-to-ease-CXL-test-with-QEMU-setup%E2%80%90%E2%80%90Using-DCD-test-as-an-example
Let me know if you need more info for testing.
Fan
>
>
> On 19/04/2024 07:10, nifan.cxl@gmail.com wrote:
> > A git tree of this series can be found here (with one extra commit on top
> > for printing out accepted/pending extent list):
> > https://github.com/moking/qemu/tree/dcd-v7
> >
> > v6->v7:
> >
> > 1. Fixed the dvsec range register issue mentioned in the the cover letter in v6.
> > Only relevant bits are set to mark the device ready (Patch 6). (Jonathan)
> > 2. Moved the if statement in cxl_setup_memory from Patch 6 to Patch 4. (Jonathan)
> > 3. Used MIN instead of if statement to get record_count in Patch 7. (Jonathan)
> > 4. Added "Reviewed-by" tag to Patch 7.
> > 5. Modified cxl_dc_extent_release_dry_run so the updated extent list can be
> > reused in cmd_dcd_release_dyn_cap to simplify the process in Patch 8. (Jørgen)
> > 6. Added comments to indicate further "TODO" items in cmd_dcd_add_dyn_cap_rsp.
> > (Jonathan)
> > 7. Avoided irrelevant code reformat in Patch 8. (Jonathan)
> > 8. Modified QMP interfaces for adding/releasing DC extents to allow passing
> > tags, selection policy, flags in the interface. (Jonathan, Gregory)
> > 9. Redesigned the pending list so extents in the same requests are grouped
> > together. A new data structure is introduced to represent "extent group"
> > in pending list. (Jonathan)
> > 10. Added support in QMP interface for "More" flag.
> > 11. Check "Forced removal" flag for release request and not let it pass through.
> > 12. Removed the dynamic capacity log type from CxlEventLog definition in cxl.json
> > to avoid the side effect it may introduce to inject error to DC event log.
> > (Jonathan)
> > 13. Hard coded the event log type to dynamic capacity event log in QMP
> > interfaces. (Jonathan)
> > 14. Adding space in between "-1]". (Jonathan)
> > 15. Some minor comment fixes.
> >
> > The code is tested with similar setup and has passed similar tests as listed
> > in the cover letter of v5[1] and v6[2].
> > Also, the code is tested with the latest DCD kernel patchset[3].
> >
> > [1] Qemu DCD patchset v5: https://lore.kernel.org/linux-cxl/20240304194331.1586191-1-nifan.cxl@gmail.com/T/#t
> > [2] Qemu DCD patchset v6: https://lore.kernel.org/linux-cxl/20240325190339.696686-1-nifan.cxl@gmail.com/T/#t
> > [3] DCD kernel patches: https://lore.kernel.org/linux-cxl/20240324-dcd-type2-upstream-v1-0-b7b00d623625@intel.com/T/#m11c571e21c4fe17c7d04ec5c2c7bc7cbf2cd07e3
> >
> >
> > Fan Ni (12):
> > hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
> > payload of identify memory device command
> > hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
> > and mailbox command support
> > include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
> > type3 memory devices
> > hw/mem/cxl_type3: Add support to create DC regions to type3 memory
> > devices
> > hw/mem/cxl-type3: Refactor ct3_build_cdat_entries_for_mr to take mr
> > size instead of mr as argument
> > hw/mem/cxl_type3: Add host backend and address space handling for DC
> > regions
> > hw/mem/cxl_type3: Add DC extent list representative and get DC extent
> > list mailbox support
> > hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
> > dynamic capacity response
> > hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
> > extents
> > hw/mem/cxl_type3: Add DPA range validation for accesses to DC regions
> > hw/cxl/cxl-mailbox-utils: Add superset extent release mailbox support
> > hw/mem/cxl_type3: Allow to release extent superset in QMP interface
> >
> > hw/cxl/cxl-mailbox-utils.c | 620 ++++++++++++++++++++++++++++++++++-
> > hw/mem/cxl_type3.c | 633 +++++++++++++++++++++++++++++++++---
> > hw/mem/cxl_type3_stubs.c | 20 ++
> > include/hw/cxl/cxl_device.h | 81 ++++-
> > include/hw/cxl/cxl_events.h | 18 +
> > qapi/cxl.json | 69 ++++
> > 6 files changed, 1396 insertions(+), 45 deletions(-)
> >
next prev parent reply other threads:[~2024-05-16 17:12 UTC|newest]
Thread overview: 67+ 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) via
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 via
2024-04-22 11:52 ` Jonathan Cameron via
2024-05-14 8:28 ` Zhijian Li (Fujitsu) via
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 via
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 via
2024-05-01 22:36 ` fan
2024-06-04 9:18 ` Markus Armbruster
2024-06-04 11:54 ` Jonathan Cameron via
2024-06-04 12:13 ` Jonathan Cameron via
2024-06-04 12:28 ` Markus Armbruster
2024-04-30 17:21 ` Jonathan Cameron via
2024-05-01 22:29 ` fan
2024-05-20 16:50 ` Jonathan Cameron via
2024-05-20 17:55 ` fan
2024-05-21 23:32 ` fan
2024-05-23 15:31 ` Jonathan Cameron via
2024-05-21 23:38 ` fan
2024-05-23 15:32 ` Jonathan Cameron via
2024-05-14 2:35 ` Zhijian Li (Fujitsu) via
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 via
2024-04-22 14:23 ` Jonathan Cameron via
2024-04-22 15:07 ` Jonathan Cameron via
2024-04-22 15:42 ` Gregory Price
2024-05-16 17:05 ` fan
2024-05-17 12:18 ` Jonathan Cameron via
2024-05-17 16:03 ` fan
2024-05-28 18:10 ` Gregory Price
2024-05-14 2:16 ` Zhijian Li (Fujitsu) via
2024-05-16 17:12 ` fan [this message]
2024-05-17 2:20 ` Zhijian Li (Fujitsu) via
-- strict thread matches above, loose matches on Subject: below --
2024-04-24 20:16 Svetly Todorov
2024-04-24 20:28 ` Svetly Todorov
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=ZkY-c1V-o4100onE@debian \
--to=nifan.cxl@gmail.com \
--cc=Jorgen.Hansen@wdc.com \
--cc=a.manzanares@samsung.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=jonathan.cameron@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=lizhijian@fujitsu.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;
as well as URLs for NNTP newsgroup(s).