[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251103111840.22057-1-tomasz.wolski@fujitsu.com>
Date: Mon, 3 Nov 2025 12:18:37 +0100
From: Tomasz Wolski <tomasz.wolski@...itsu.com>
To: alison.schofield@...el.com
Cc: Smita.KoralahalliChannabasappa@....com,
ardb@...nel.org,
benjamin.cheatham@....com,
bp@...en8.de,
dan.j.williams@...el.com,
dave.jiang@...el.com,
dave@...olabs.net,
gregkh@...uxfoundation.org,
huang.ying.caritas@...il.com,
ira.weiny@...el.com,
jack@...e.cz,
jeff.johnson@....qualcomm.com,
jonathan.cameron@...wei.com,
len.brown@...el.com,
linux-cxl@...r.kernel.org,
linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org,
lizhijian@...itsu.com,
ming.li@...omail.com,
nathan.fontenot@....com,
nvdimm@...ts.linux.dev,
pavel@...nel.org,
peterz@...radead.org,
rafael@...nel.org,
rrichter@....com,
skoralah@....com,
terry.bowman@....com,
vishal.l.verma@...el.com,
willy@...radead.org,
yaoxt.fnst@...itsu.com
Subject: Re: [PATCH v3 0/5] dax/hmem, cxl: Coordinate Soft Reserved handling with CXL
Hi Alison and Smita,
I’ve been following your patch proposal and testing it on a few QEMU setups
> Will it work to search directly for the region above by using params
> IORESOURCE_MEM, IORES_DESC_NONE. This way we only get region conflicts,
> no empty windows to examine. I think that might replace cxl_region_exists()
> work below.
I see expected 'dropping CXL range' message (case when region covers full CXL window)
[ 31.783945] hmem_platform hmem_platform.0: deferring range to CXL: [mem 0xa90000000-0xb8fffffff flags 0x80000200]
[ 31.784609] deferring range to CXL: [mem 0xa90000000-0xb8fffffff flags 0x80000200]
[ 31.790588] hmem_platform hmem_platform.0: dropping CXL range: [mem 0xa90000000-0xb8fffffff flags 0x80000200]
[ 31.791102] dropping CXL range: [mem 0xa90000000-0xb8fffffff flags 0x80000200]
a90000000-b8fffffff : CXL Window 0
a90000000-b8fffffff : region0
a90000000-b8fffffff : dax0.0
a90000000-b8fffffff : System RAM (kmem)
[ 31.384899] hmem_platform hmem_platform.0: deferring range to CXL: [mem 0xa90000000-0xc8fffffff flags 0x80000200]
[ 31.385586] deferring range to CXL: [mem 0xa90000000-0xc8fffffff flags 0x80000200]
[ 31.391107] hmem_platform hmem_platform.0: dropping CXL range: [mem 0xa90000000-0xc8fffffff flags 0x80000200]
[ 31.391676] dropping CXL range: [mem 0xa90000000-0xc8fffffff flags 0x80000200]
a90000000-c8fffffff : CXL Window 0
a90000000-b8fffffff : region0
a90000000-b8fffffff : dax0.0
a90000000-b8fffffff : System RAM (kmem)
b90000000-c8fffffff : region1
b90000000-c8fffffff : dax1.0
b90000000-c8fffffff : System RAM (kmem)
a90000000-b8fffffff : CXL Window 0
a90000000-b8fffffff : region0
a90000000-b8fffffff : dax0.0
a90000000-b8fffffff : System RAM (kmem)
b90000000-c8fffffff : CXL Window 1
b90000000-c8fffffff : region1
b90000000-c8fffffff : dax1.0
b90000000-c8fffffff : System RAM (kmem)
However, when testing version with cxl_region_exists() I didn't see expected 'registering CXL range' message
when the CXL region does not fully occupy CXL window - please see below.
I should mention that I’m still getting familiar with CXL internals, so maybe I might be missing some context :)
a90000000-bcfffffff : CXL Window 0
a90000000-b8fffffff : region0
a90000000-b8fffffff : dax0.0
a90000000-b8fffffff : System RAM (kmem)
[ 30.434385] hmem_platform hmem_platform.0: deferring range to CXL: [mem 0xa90000000-0xbcfffffff flags 0x80000200]
[ 30.435116] deferring range to CXL: [mem 0xa90000000-0xbcfffffff flags 0x80000200]
[ 30.436530] hmem_platform hmem_platform.0: dropping CXL range: [mem 0xa90000000-0xbcfffffff flags 0x80000200]
[ 30.437070] hmem_platform hmem_platform.0: dropping CXL range: [mem 0xa90000000-0xbcfffffff flags 0x80000200]
[ 30.437599] dropping CXL range: [mem 0xa90000000-0xbcfffffff flags 0x80000200]
Thanks,
Tomasz
Powered by blists - more mailing lists