Re: [PATCH 5/5] cxl: Avoid to create dax regions for type2 accelerators

From: Alejandro Lucero Palau
Date: Tue Oct 15 2024 - 04:52:21 EST


I did comment on this some time ago and I'm doing it again.


This is originally part of the type2 patchset, and I'm keeping it in V4. I do not understand why you pick code changes (you explicitly said that in the first RFC) from there and use it here, and without previous discussion about this necessity in the list. I do not think this is usual, at least in other kernel subsystems I'm more familiar with, so I will raise this in today's cxl open source collaboration sync.


On 10/15/24 07:57, Huang Ying wrote:
The memory range of a type2 accelerator should be managed by the type2
accelerator specific driver instead of the common dax region drivers,
as discussed in [1].

[1] https://lore.kernel.org/linux-cxl/66469ff1b8fbc_2c2629427@xxxxxxxxxxxxxxxxxxxxxxxxx.notmuch/

So, the patch skips dax regions creation for type2 accelerator device
memory regions.

Based on: https://lore.kernel.org/linux-cxl/168592159835.1948938.1647215579839222774.stgit@xxxxxxxxxxxxxxxxxxxxxxxxx/

Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>
Co-developed-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Reviewed-by: Gregory Price <gourry@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>
Cc: Dave Jiang <dave.jiang@xxxxxxxxx>
Cc: Alison Schofield <alison.schofield@xxxxxxxxx>
Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Cc: Ira Weiny <ira.weiny@xxxxxxxxx>
Cc: Alejandro Lucero <alucerop@xxxxxxx>
Cc: Ben Cheatham <benjamin.cheatham@xxxxxxx>
---
drivers/cxl/core/region.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index d709738ada61..708be236c9a2 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -3473,6 +3473,14 @@ static int cxl_region_probe(struct device *dev)
p->res->start, p->res->end, cxlr,
is_system_ram) > 0)
return 0;
+ /*
+ * Accelerator regions have specific usage, skip
+ * device-dax registration.
+ */
+ if (cxlr->type == CXL_DECODER_ACCEL)
+ return 0;
+
+ /* Expander routes to device-dax */
return devm_cxl_add_dax_region(cxlr);
default:
dev_dbg(&cxlr->dev, "unsupported region mode: %d\n",