[PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()

Tomasz Wolski posted 1 patch 4 weeks, 1 day ago
There is a newer version of this series
drivers/dax/bus.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()
Posted by Tomasz Wolski 4 weeks, 1 day ago
The dax_region resource conflict in alloc_dax_region() indicates a
serious configuration problem — two subsystems (e.g. dax_hmem and
dax_cxl) are attempting to register overlapping address ranges. This is
not a transient or debug-level condition; it represents a genuine
resource conflict that an administrator needs to be aware of.

Promote the log level from dev_dbg() to dev_err() so that the conflict
is visible by default without requiring dynamic debug to be enabled.

Suggested-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
---
 drivers/dax/bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
index 68437c05e21d..cd963eeeef7b 100644
--- a/drivers/dax/bus.c
+++ b/drivers/dax/bus.c
@@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 
 	rc = request_resource(&dax_regions, &dax_region->res);
 	if (rc) {
-		dev_dbg(parent, "dax_region resource conflict for %pR\n",
+		dev_err(parent, "dax_region resource conflict for %pR\n",
 			&dax_region->res);
 		goto err_res;
 	}
-- 
2.47.3

Re: [PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()
Posted by Alison Schofield 4 weeks ago
On Thu, May 14, 2026 at 11:32:08AM +0200, Tomasz Wolski wrote:
> The dax_region resource conflict in alloc_dax_region() indicates a
> serious configuration problem — two subsystems (e.g. dax_hmem and
> dax_cxl) are attempting to register overlapping address ranges. This is
> not a transient or debug-level condition; it represents a genuine
> resource conflict that an administrator needs to be aware of.
> 
> Promote the log level from dev_dbg() to dev_err() so that the conflict
> is visible by default without requiring dynamic debug to be enabled.
> 
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
> Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
> Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
> ---
>  drivers/dax/bus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
> index 68437c05e21d..cd963eeeef7b 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
>  
>  	rc = request_resource(&dax_regions, &dax_region->res);
>  	if (rc) {
> -		dev_dbg(parent, "dax_region resource conflict for %pR\n",
> +		dev_err(parent, "dax_region resource conflict for %pR\n",
>  			&dax_region->res);
>  		goto err_res;

Hi Tomasz,

How about using request_resource_conflict() so that we can offer
more description in the error message?

-- Alison


>  	}
> -- 
> 2.47.3
> 
Re: [PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()
Posted by Tomasz Wolski 3 weeks, 3 days ago
Hello Alison,

>> How about using request_resource_conflict() so that we can offer
>> more description in the error message?

Thanks for the hint - I will add that in v2.

Best regards,
Tomasz
Re: [PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()
Posted by Richard Cheng 4 weeks, 1 day ago
On Thu, May 14, 2026 at 11:32:08AM +0800, Tomasz Wolski wrote:
> The dax_region resource conflict in alloc_dax_region() indicates a
> serious configuration problem — two subsystems (e.g. dax_hmem and
> dax_cxl) are attempting to register overlapping address ranges. This is
> not a transient or debug-level condition; it represents a genuine
> resource conflict that an administrator needs to be aware of.
> 
> Promote the log level from dev_dbg() to dev_err() so that the conflict
> is visible by default without requiring dynamic debug to be enabled.
> 
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Link: https://lore.kernel.org/linux-cxl/69c1a8d1c0fa9_7ee3100a1@dwillia2-mobl4.notmuch/
> Fixes: 34f80bb969cc ("dax: Track all dax_region allocations under a global resource tree")
> Signed-off-by: Tomasz Wolski <tomasz.wolski@fujitsu.com>
> ---
>  drivers/dax/bus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
> index 68437c05e21d..cd963eeeef7b 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -672,7 +672,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
>  
>  	rc = request_resource(&dax_regions, &dax_region->res);
>  	if (rc) {
> -		dev_dbg(parent, "dax_region resource conflict for %pR\n",
> +		dev_err(parent, "dax_region resource conflict for %pR\n",
>  			&dax_region->res);
>  		goto err_res;
>  	}
> -- 
> 2.47.3
> 
>

Hi Tomasz,

Did you run into any kind of error or even machine crashing from this ?
btw, though I am not against the change, I don't think this is a fix, maybe you can consider to remove the Fixes tag.

Best regards,
Richard Cheng.
Re: [PATCH] dax/bus: Upgrade resource conflict message to dev_err() in alloc_dax_region()
Posted by Tomasz Wolski 3 weeks, 3 days ago
Hello Richard,

Thanks for your feedback

>> Did you run into any kind of error or even machine crashing from this ?
No, I haven't hit this error path in practice. On systems I've tested, the deferral logic 
in hmem_register_cxl_device() correctly drops ranges that CXL claims

>> btw, though I am not against the change, I don't think this is a fix, maybe you can consider to remove the Fixes tag.
Agreed, I'll drop the tag in v2.

Best regards,
Tomasz