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

Reply via email to