From: Ira Weiny <ira.weiny@intel.com>
To: Fan Ni <fan.ni@gmx.us>, Ira Weiny <ira.weiny@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>,
Navneet Singh <navneet.singh@intel.com>,
Fan Ni <fan.ni@samsung.com>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Davidlohr Bueso <dave@stgolabs.net>,
"Dave Jiang" <dave.jiang@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
<linux-cxl@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<a.manzanares@samsung.com>, <nmtadam.samsung@gmail.com>,
<nifan@outlook.com>
Subject: Re: [PATCH RFC v2 00/18] DCD: Add support for Dynamic Capacity Devices (DCD)
Date: Mon, 11 Sep 2023 18:44:56 -0700 [thread overview]
Message-ID: <64ffc298707ae_2f5aa3294df@iweiny-mobl.notmuch> (raw)
In-Reply-To: <ZPo6J3OsmD7YbYJs@debian>
Fan Ni wrote:
> On Mon, Aug 28, 2023 at 10:20:51PM -0700, Ira Weiny wrote:
Sorry for the delay, I've been walking through the responses and just saw
this.
>
> Hi Ira,
>
> I tried to test the patch series with the qemu dcd patches, however, I
> hit some issues, and would like to check the following with you.
>
> 1. After we create a region for DC before any extents are added, a dax
> device will show under /dev. Is that what we want?
Yes, see
cxl/region: Add Dynamic Capacity CXL region support
"Special case DC capable CXL regions to create a 0 sized seed DAX
device until others can be created on dynamic space later."
The seed device is required but is left empty. It can be resized when
extents are added later.
> If I remember it
> correctly, the dax device used to show up after a dc extent is added.
>
>
> 2. add/release extent does not work correctly for me. The code path is
> not called, and I made the following changes to make it pass.
:-(
This is the problem with cxl_test... I've just realized this after seeing
Jorgen's email regarding the interrupt configuration code. I've added it
back in. I'm not sure where it got lost along the way but it was
completely gone from this RFC v2. Sorry about that.
> ---
> drivers/cxl/cxl.h | 3 ++-
> drivers/cxl/cxlmem.h | 1 +
> drivers/cxl/pci.c | 7 +++++++
> 3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/cxl/cxl.h b/drivers/cxl/cxl.h
> index 2c73a30980b6..0d132c1739ce 100644
> --- a/drivers/cxl/cxl.h
> +++ b/drivers/cxl/cxl.h
> @@ -168,7 +168,8 @@ static inline int ways_to_eiw(unsigned int ways, u8 *eiw)
> #define CXLDEV_EVENT_STATUS_ALL (CXLDEV_EVENT_STATUS_INFO | \
> CXLDEV_EVENT_STATUS_WARN | \
> CXLDEV_EVENT_STATUS_FAIL | \
> - CXLDEV_EVENT_STATUS_FATAL)
> + CXLDEV_EVENT_STATUS_FATAL| \
> + CXLDEV_EVENT_STATUS_DCD)
>
> /* CXL rev 3.0 section 8.2.9.2.4; Table 8-52 */
> #define CXLDEV_EVENT_INT_MODE_MASK GENMASK(1, 0)
> diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h
> index 8ca81fd067c2..ae9dcb291c75 100644
> --- a/drivers/cxl/cxlmem.h
> +++ b/drivers/cxl/cxlmem.h
> @@ -235,6 +235,7 @@ struct cxl_event_interrupt_policy {
> u8 warn_settings;
> u8 failure_settings;
> u8 fatal_settings;
> + u8 dyncap_settings;
> } __packed;
>
> /**
> diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c
> index 10c1a583113c..e30fe0304514 100644
> --- a/drivers/cxl/pci.c
> +++ b/drivers/cxl/pci.c
> @@ -686,6 +686,7 @@ static int cxl_event_config_msgnums(struct cxl_memdev_state *mds,
> .warn_settings = CXL_INT_MSI_MSIX,
> .failure_settings = CXL_INT_MSI_MSIX,
> .fatal_settings = CXL_INT_MSI_MSIX,
> + .dyncap_settings = CXL_INT_MSI_MSIX,
> };
>
> mbox_cmd = (struct cxl_mbox_cmd) {
> @@ -739,6 +740,12 @@ static int cxl_event_irqsetup(struct cxl_memdev_state *mds)
> return rc;
> }
>
> + rc = cxl_event_req_irq(cxlds, policy.dyncap_settings);
> + if (rc) {
> + dev_err(cxlds->dev, "Failed to get interrupt for event dyncap log\n");
> + return rc;
> + }
> +
> return 0;
> }
>
> --
>
> 3. With changes made in 2, the code for add/release dc extent can be called,
> however, the system behaviour seems different from before. Previously, after a
> dc extent is added, it will show up with lsmem command and listed as offline.
> Now, nothing is showing. Is it expected? What should we do to make it usable
> as system ram?
Yes this behavior was not correct before. DAX devices should be flexible
to be created throughout the region. Either within extents or across
extents. Dave Jiang mentioned to me internally it might help to add some
ASCII art documentation regarding how this works. Generally, the dax
region available size will increase when extents are added and new dax
devices can be created to utilize that space.
Check out the dcd-test.sh in ndctl at this link for the commands to create
a dax device in the new architecture.
https://github.com/weiny2/ndctl/tree/dcd-region2
Hope this helps.
>
> Please let me know if I miss something or did something wrong. Thanks.
You did not. I thought the new dax code would explain this new dax device
operation.
Some new documentation is in order.
Ira
prev parent reply other threads:[~2023-09-12 2:21 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 5:20 [PATCH RFC v2 00/18] DCD: Add support for Dynamic Capacity Devices (DCD) Ira Weiny
2023-08-29 5:20 ` [PATCH RFC v2 01/18] cxl/hdm: Debug, use decoder name function Ira Weiny
2023-08-29 14:03 ` Jonathan Cameron
2023-08-29 21:48 ` Fan Ni
2023-09-03 2:55 ` Ira Weiny
2023-08-30 20:32 ` Dave Jiang
2023-08-29 5:20 ` [PATCH RFC v2 02/18] cxl/mbox: Flag support for Dynamic Capacity Devices (DCD) Ira Weiny
2023-08-29 14:07 ` Jonathan Cameron
2023-09-03 3:38 ` Ira Weiny
2023-08-29 21:49 ` Fan Ni
2023-08-30 20:33 ` Dave Jiang
2023-10-24 16:16 ` Jonathan Cameron
2023-08-29 5:20 ` [PATCH RFC v2 03/18] cxl/mem: Read Dynamic capacity configuration from the device ira.weiny
2023-08-29 14:37 ` Jonathan Cameron
2023-09-03 23:36 ` Ira Weiny
2023-08-30 21:01 ` Dave Jiang
2023-09-05 0:14 ` Ira Weiny
2023-09-08 20:23 ` Ira Weiny
2023-08-30 21:44 ` Fan Ni
2023-09-08 22:52 ` Ira Weiny
2023-09-12 21:32 ` Fan Ni
2023-09-07 15:46 ` Alison Schofield
2023-09-12 1:18 ` Ira Weiny
2023-09-08 12:46 ` Jørgen Hansen
2023-09-11 20:26 ` Ira Weiny
2023-08-29 5:20 ` [PATCH RFC v2 04/18] cxl/region: Add Dynamic Capacity decoder and region modes Ira Weiny
2023-08-29 14:39 ` Jonathan Cameron
2023-08-30 21:13 ` Dave Jiang
2023-08-31 17:00 ` Fan Ni
2023-08-29 5:20 ` [PATCH RFC v2 05/18] cxl/port: Add Dynamic Capacity mode support to endpoint decoders Ira Weiny
2023-08-29 14:49 ` Jonathan Cameron
2023-09-05 0:05 ` Ira Weiny
2023-08-31 17:25 ` Fan Ni
2023-09-08 23:26 ` Ira Weiny
2023-08-29 5:20 ` [PATCH RFC v2 06/18] cxl/port: Add Dynamic Capacity size " Ira Weiny
2023-08-29 15:09 ` Jonathan Cameron
2023-09-05 4:32 ` Ira Weiny
2023-08-29 5:20 ` [PATCH RFC v2 07/18] cxl/mem: Expose device dynamic capacity configuration ira.weiny
2023-08-29 15:14 ` Jonathan Cameron
2023-09-05 17:55 ` Fan Ni
2023-09-05 20:45 ` Ira Weiny
2023-08-30 22:46 ` Dave Jiang
2023-09-08 23:22 ` Ira Weiny
2023-08-29 5:20 ` [PATCH RFC v2 08/18] cxl/region: Add Dynamic Capacity CXL region support Ira Weiny
2023-08-29 15:19 ` Jonathan Cameron
2023-08-30 23:27 ` Dave Jiang
2023-09-06 4:36 ` Ira Weiny
2023-09-05 21:09 ` Fan Ni
2023-08-29 5:21 ` [PATCH RFC v2 09/18] cxl/mem: Read extents on memory device discovery Ira Weiny
2023-08-29 15:26 ` Jonathan Cameron
2023-08-30 0:16 ` Ira Weiny
2023-09-05 21:41 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 10/18] cxl/mem: Handle DCD add and release capacity events Ira Weiny
2023-08-29 15:59 ` Jonathan Cameron
2023-09-05 23:49 ` Ira Weiny
2023-08-31 17:28 ` Dave Jiang
2023-09-08 15:35 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 11/18] cxl/region: Expose DC extents on region driver load Ira Weiny
2023-08-29 16:20 ` Jonathan Cameron
2023-09-06 3:36 ` Ira Weiny
2023-08-31 18:38 ` Dave Jiang
2023-09-08 23:57 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 12/18] cxl/region: Notify regions of DC changes Ira Weiny
2023-08-29 16:40 ` Jonathan Cameron
2023-09-06 4:00 ` Ira Weiny
2023-09-18 13:56 ` Jørgen Hansen
2023-09-18 17:45 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 13/18] dax/bus: Factor out dev dax resize logic Ira Weiny
2023-08-30 11:27 ` Jonathan Cameron
2023-09-06 4:12 ` Ira Weiny
2023-08-31 21:48 ` Dave Jiang
2023-08-29 5:21 ` [PATCH RFC v2 14/18] dax/region: Support DAX device creation on dynamic DAX regions Ira Weiny
2023-08-30 11:50 ` Jonathan Cameron
2023-09-06 4:35 ` Ira Weiny
2023-09-12 16:49 ` Jonathan Cameron
2023-09-12 22:08 ` Ira Weiny
2023-09-12 22:35 ` Dan Williams
2023-09-13 17:30 ` Ira Weiny
2023-09-13 17:59 ` Dan Williams
2023-09-13 19:26 ` Ira Weiny
2023-09-14 10:32 ` Jonathan Cameron
2023-08-29 5:21 ` [PATCH RFC v2 15/18] cxl/mem: Trace Dynamic capacity Event Record ira.weiny
2023-08-29 16:46 ` Jonathan Cameron
2023-09-06 4:07 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 16/18] tools/testing/cxl: Make event logs dynamic Ira Weiny
2023-08-30 12:11 ` Jonathan Cameron
2023-09-06 21:15 ` Ira Weiny
2023-08-29 5:21 ` [PATCH RFC v2 17/18] tools/testing/cxl: Add DC Regions to mock mem data Ira Weiny
2023-08-30 12:20 ` Jonathan Cameron
2023-09-06 21:18 ` Ira Weiny
2023-08-31 23:19 ` Dave Jiang
2023-08-29 5:21 ` [PATCH RFC v2 18/18] tools/testing/cxl: Add Dynamic Capacity events Ira Weiny
2023-08-30 12:23 ` Jonathan Cameron
2023-09-06 21:39 ` Ira Weiny
2023-08-31 23:20 ` Dave Jiang
2023-09-07 21:01 ` [PATCH RFC v2 00/18] DCD: Add support for Dynamic Capacity Devices (DCD) Fan Ni
2023-09-12 1:44 ` Ira Weiny [this message]
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=64ffc298707ae_2f5aa3294df@iweiny-mobl.notmuch \
--to=ira.weiny@intel.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=a.manzanares@samsung.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=fan.ni@gmx.us \
--cc=fan.ni@samsung.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=navneet.singh@intel.com \
--cc=nifan@outlook.com \
--cc=nmtadam.samsung@gmail.com \
--cc=vishal.l.verma@intel.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