public inbox for linux-cxl@vger.kernel.org
 help / color / mirror / Atom feed
From: Neeraj Kumar <s.neeraj@samsung.com>
To: Alejandro Lucero Palau <alucerop@amd.com>
Cc: linux-cxl@vger.kernel.org, nvdimm@lists.linux.dev,
	linux-kernel@vger.kernel.org, gost.dev@samsung.com,
	a.manzanares@samsung.com, vishak.g@samsung.com,
	neeraj.kernel@gmail.com, cpgs@samsung.com
Subject: Re: [PATCH V6 12/18] cxl/region: Add devm_cxl_pmem_add_region() for pmem region creation
Date: Fri, 6 Mar 2026 15:54:44 +0530	[thread overview]
Message-ID: <20260306102444.fkoqhyavd7cgorxy@test-PowerEdge-R740xd> (raw)
In-Reply-To: <a560c14c-410c-4ea8-9076-deeb9ba28fee@amd.com>

[-- Attachment #1: Type: text/plain, Size: 3929 bytes --]

On 24/02/26 06:13PM, Alejandro Lucero Palau wrote:
>Hi Neeraj,
>
>
>I could get some free time for reviewing this series. Dan pointed out 
>to potential conflicts with my Type2 series, so I'm focused on those 
>patches modifying the cxl region creation and how it is being used.
>
>
>I do not know if you are aware of the Type2 work, although I dare to 
>say you are not since some of the functionality is duplicated ... and 
>in your case skipping some steps.
>

Hi Alejandro,

Thanks for your review.
Yes I have not looked at Type2 work in detail. I will have a look
and specially the conflicting part with my changes.

>
>Below my comments.
>
>
>On 1/23/26 11:31, Neeraj Kumar wrote:
>>devm_cxl_pmem_add_region() is used to create cxl region based on region
>>information scanned from LSA.
>>
>>devm_cxl_add_region() is used to just allocate cxlr and its fields are
>>filled later by userspace tool using device attributes (*_store()).
>>
>>Inspiration for devm_cxl_pmem_add_region() is taken from these device
>>attributes (_store*) calls. It allocates cxlr and fills information
>>parsed from LSA and calls device_add(&cxlr->dev) to initiate further
>>region creation porbes
>>
>>Reviewed-by: Dave Jiang <dave.jiang@intel.com>
>>Signed-off-by: Neeraj Kumar <s.neeraj@samsung.com>
>>---
>>  drivers/cxl/core/region.c | 118 ++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 118 insertions(+)
>>
>>diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>>index 2e60e5e72551..e384eacc46ae 100644
>>--- a/drivers/cxl/core/region.c
>>+++ b/drivers/cxl/core/region.c
>>@@ -2621,6 +2621,121 @@ static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
>>  	return ERR_PTR(rc);
>>  }
>>+static ssize_t alloc_region_hpa(struct cxl_region *cxlr, u64 size)
>>+{
>>+	int rc;
>>+
>>+	if (!size)
>>+		return -EINVAL;
>>+
>>+	ACQUIRE(rwsem_write_kill, rwsem)(&cxl_rwsem.region);
>>+	if ((rc = ACQUIRE_ERR(rwsem_write_kill, &rwsem)))
>>+		return rc;
>>+
>>+	return alloc_hpa(cxlr, size);
>>+}
>
>
>Type2 has a more elaborated function preceding the final hpa 
>allocation.  First of all, the root decoder needs to match the 
>endpoint type or to have support for it. Then interleave ways taken 
>into account. I know you are only supporting 1 way, what I guess makes 
>the initial support easier, but although some check for not supporting 
>> 1 is fine (I guess this takes a lot of work for matching at least 
>LSA labels and maybe something harder), the core code should support 
>that, mainly because there is ongoing work adding it. In my case I did 
>not need interleaving and it is unlikely other Type2 devices will need 
>it in the near future, but the support is there:
>
>https://lore.kernel.org/linux-cxl/20260201155438.2664640-1-alejandro.lucero-palau@amd.com/T/#m56bf70b58bb995082680bf363fd3f6d6f2b074d2
>
>
>>+
>>+static ssize_t alloc_region_dpa(struct cxl_endpoint_decoder *cxled, u64 size)
>>+{
>>+	if (!size)
>>+		return -EINVAL;
>>+
>>+	if (!IS_ALIGNED(size, SZ_256M))
>>+		return -EINVAL;
>>+
>>+	return cxl_dpa_alloc(cxled, size);
>>+}
>
>
>I'm not sure if the same applies here as you are passing an endpoint 
>decoder already, but FWIW:
>
>
>https://lore.kernel.org/linux-cxl/20260201155438.2664640-1-alejandro.lucero-palau@amd.com/T/#m38ff266e931fd9c932bc54d000b7ea72186493be
>
>
>I'm sending type2 individual patches for facilitating the integration, 
>and I'll focus next on these two referenced ones so you could use them 
>asap.
>
>
>Thank you,
>
>Alejandro

Actually I have created alloc_region_hpa() and alloc_region_dpa() taking
inspiration from device attributes (_store*) calls used to create cxl
region using cxl userspace tool.

I am adding the support of multi interleave, there these routines will
not be required as I would be re-using the existing auto region assembly infra.

Even though I will re-check any conflicts with Type2 changes.



Regards,
Neeraj





[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2026-03-06 10:24 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20260123113121epcas5p125bc64b4714525d7bbd489cd9be9ba91@epcas5p1.samsung.com>
2026-01-23 11:30 ` [PATCH V6 00/18] Add CXL LSA 2.1 format support in nvdimm and cxl pmem Neeraj Kumar
2026-01-23 11:30   ` [PATCH V6 01/18] nvdimm/label: Introduce NDD_REGION_LABELING flag to set region label Neeraj Kumar
2026-01-23 11:30   ` [PATCH V6 02/18] nvdimm/label: CXL labels skip the need for 'interleave-set cookie' Neeraj Kumar
2026-01-23 11:30   ` [PATCH V6 03/18] nvdimm/label: Add namespace/region label support as per LSA 2.1 Neeraj Kumar
2026-01-23 11:30   ` [PATCH V6 04/18] nvdimm/label: Include region label in slot validation Neeraj Kumar
2026-01-23 11:30   ` [PATCH V6 05/18] nvdimm/label: Skip region label during ns label DPA reservation Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 06/18] nvdimm/label: Preserve region label during namespace creation Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 07/18] nvdimm/label: Add region label delete support Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 08/18] nvdimm/label: Preserve cxl region information from region label Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 09/18] nvdimm/label: Export routine to fetch region information Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 10/18] cxl/mem: Refactor cxl pmem region auto-assembling Neeraj Kumar
2026-01-26 22:48     ` Dave Jiang
2026-01-27 23:45       ` Dave Jiang
2026-03-06 10:22         ` Neeraj Kumar
2026-01-28  0:02     ` dan.j.williams
2026-03-06 10:18       ` Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 11/18] cxl/region: Rename __create_region() to cxl_create_region() Neeraj Kumar
2026-01-23 12:37     ` Jonathan Cameron
2026-01-23 11:31   ` [PATCH V6 12/18] cxl/region: Add devm_cxl_pmem_add_region() for pmem region creation Neeraj Kumar
2026-01-23 12:39     ` Jonathan Cameron
2026-02-24 18:13     ` Alejandro Lucero Palau
2026-03-06 10:24       ` Neeraj Kumar [this message]
2026-03-06 16:28         ` Alejandro Lucero Palau
2026-01-23 11:31   ` [PATCH V6 13/18] cxl/pmem: Preserve region information into nd_set Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 14/18] cxl/pmem_region: Prep patch to accommodate pmem_region attributes Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 15/18] cxl/pmem_region: Introduce CONFIG_CXL_PMEM_REGION for core/pmem_region.c Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 16/18] cxl/pmem_region: Add sysfs attribute cxl region label updation/deletion Neeraj Kumar
2026-01-23 11:31   ` [PATCH V6 17/18] cxl/pmem_region: Create pmem region using information parsed from LSA Neeraj Kumar
2026-01-23 12:49     ` Jonathan Cameron
2026-01-23 11:31   ` [PATCH V6 18/18] cxl/pmem: Add CXL LSA 2.1 support in cxl pmem Neeraj Kumar
2026-01-23 12:54   ` [PATCH V6 00/18] Add CXL LSA 2.1 format support in nvdimm and " Jonathan Cameron
2026-01-23 17:52   ` Dave Jiang
2026-03-06 10:26     ` Neeraj Kumar
2026-01-23 21:16   ` Alison Schofield
2026-03-06 10:27     ` Neeraj Kumar

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=20260306102444.fkoqhyavd7cgorxy@test-PowerEdge-R740xd \
    --to=s.neeraj@samsung.com \
    --cc=a.manzanares@samsung.com \
    --cc=alucerop@amd.com \
    --cc=cpgs@samsung.com \
    --cc=gost.dev@samsung.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neeraj.kernel@gmail.com \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishak.g@samsung.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