diff mbox series

[v3] cxl/region: Add dev_dbg() detail on failure to allocate HPA space

Message ID 20231223004740.1401858-1-alison.schofield@intel.com
State Superseded
Commit 7984d22f1315bf30433e11e5010e4ce09ca22037
Headers show
Series [v3] cxl/region: Add dev_dbg() detail on failure to allocate HPA space | expand

Commit Message

Alison Schofield Dec. 23, 2023, 12:47 a.m. UTC
From: Alison Schofield <alison.schofield@intel.com>

When the region driver fails while allocating HPA space for a
new region it can be because the parent resource, the CXL Window,
has no more available space.

In that case, the debug user sees this message:
cxl_core:alloc_hpa:555: cxl region2: failed to allocate HPA: -34

Expand the message like this:
cxl_core:alloc_hpa:555: cxl region8: HPA allocation error (-34) for size:0x20000000 in CXL Window 0 [mem 0xf010000000-0xf04fffffff flags 0x200]

Now the debug user can examine /proc/iomem and consider actions
like removing other allocations in that space or reducing the
size of their region request.

Suggested-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
---

Changes in v3:
- Add parens around error number (Vishal, Dan)
- Link to v2: https://lore.kernel.org/linux-cxl/20231129003953.1252985-1-alison.schofield@intel.com/


 drivers/cxl/core/region.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)


base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86

Comments

fan Dec. 23, 2023, 7:30 p.m. UTC | #1
On Fri, Dec 22, 2023 at 04:47:40PM -0800, alison.schofield@intel.com wrote:
> From: Alison Schofield <alison.schofield@intel.com>
> 
> When the region driver fails while allocating HPA space for a
> new region it can be because the parent resource, the CXL Window,
> has no more available space.
> 
> In that case, the debug user sees this message:
> cxl_core:alloc_hpa:555: cxl region2: failed to allocate HPA: -34
> 
> Expand the message like this:
> cxl_core:alloc_hpa:555: cxl region8: HPA allocation error (-34) for size:0x20000000 in CXL Window 0 [mem 0xf010000000-0xf04fffffff flags 0x200]
> 
> Now the debug user can examine /proc/iomem and consider actions
> like removing other allocations in that space or reducing the
> size of their region request.
> 
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>
> Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
> ---

Reviewed-by: Fan Ni <fan.ni@samsung.com>

> 
> Changes in v3:
> - Add parens around error number (Vishal, Dan)
> - Link to v2: https://lore.kernel.org/linux-cxl/20231129003953.1252985-1-alison.schofield@intel.com/
> 
> 
>  drivers/cxl/core/region.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index 56e575c79bb4..a7b695db5dfc 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -552,8 +552,9 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
>  	res = alloc_free_mem_region(cxlrd->res, size, SZ_256M,
>  				    dev_name(&cxlr->dev));
>  	if (IS_ERR(res)) {
> -		dev_dbg(&cxlr->dev, "failed to allocate HPA: %ld\n",
> -			PTR_ERR(res));
> +		dev_dbg(&cxlr->dev,
> +			"HPA allocation error (%ld) for size:%#llx in %s %pr\n",
> +			PTR_ERR(res), size, cxlrd->res->name, cxlrd->res);
>  		return PTR_ERR(res);
>  	}
>  
> 
> base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86
> -- 
> 2.37.3
>
Davidlohr Bueso Jan. 1, 2024, 9:28 p.m. UTC | #2
On Fri, 22 Dec 2023, alison.schofield@intel.com wrote:

>From: Alison Schofield <alison.schofield@intel.com>
>
>When the region driver fails while allocating HPA space for a
>new region it can be because the parent resource, the CXL Window,
>has no more available space.
>
>In that case, the debug user sees this message:
>cxl_core:alloc_hpa:555: cxl region2: failed to allocate HPA: -34
>
>Expand the message like this:
>cxl_core:alloc_hpa:555: cxl region8: HPA allocation error (-34) for size:0x20000000 in CXL Window 0 [mem 0xf010000000-0xf04fffffff flags 0x200]

Nice.

>
>Now the debug user can examine /proc/iomem and consider actions
>like removing other allocations in that space or reducing the
>size of their region request.
>

Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>

>Suggested-by: Dan Williams <dan.j.williams@intel.com>
>Signed-off-by: Alison Schofield <alison.schofield@intel.com>
>Reviewed-by: Dave Jiang <dave.jiang@intel.com>
>Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
>---
>
>Changes in v3:
>- Add parens around error number (Vishal, Dan)
>- Link to v2: https://lore.kernel.org/linux-cxl/20231129003953.1252985-1-alison.schofield@intel.com/
>
>
> drivers/cxl/core/region.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>index 56e575c79bb4..a7b695db5dfc 100644
>--- a/drivers/cxl/core/region.c
>+++ b/drivers/cxl/core/region.c
>@@ -552,8 +552,9 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
> 	res = alloc_free_mem_region(cxlrd->res, size, SZ_256M,
> 				    dev_name(&cxlr->dev));
> 	if (IS_ERR(res)) {
>-		dev_dbg(&cxlr->dev, "failed to allocate HPA: %ld\n",
>-			PTR_ERR(res));
>+		dev_dbg(&cxlr->dev,
>+			"HPA allocation error (%ld) for size:%#llx in %s %pr\n",
>+			PTR_ERR(res), size, cxlrd->res->name, cxlrd->res);
> 		return PTR_ERR(res);
> 	}
>
>
>base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86
>-- 
>2.37.3
>
diff mbox series

Patch

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index 56e575c79bb4..a7b695db5dfc 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -552,8 +552,9 @@  static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
 	res = alloc_free_mem_region(cxlrd->res, size, SZ_256M,
 				    dev_name(&cxlr->dev));
 	if (IS_ERR(res)) {
-		dev_dbg(&cxlr->dev, "failed to allocate HPA: %ld\n",
-			PTR_ERR(res));
+		dev_dbg(&cxlr->dev,
+			"HPA allocation error (%ld) for size:%#llx in %s %pr\n",
+			PTR_ERR(res), size, cxlrd->res->name, cxlrd->res);
 		return PTR_ERR(res);
 	}