Hi, Dave
On the basis of this patch, I conducted some tests and encountered
unexpected errors. I would like to inquire whether the design here is
reasonable? Below are the steps of my testing:
Link:
https://lore.kernel.org/linux-cxl/170138109724.2882696.123294980050048623.stgit@djiang5-mobl3/
Problem description: after creating a region, directly forcing
'disable-memdev' and then consuming memory leads to a kernel panic.
Test environment:
KERNEL 6.8.0-rc1
QEMU 8.2.0-rc4
Test steps:
step1: set memory auto_online to movable zones.
echo online_movable >
/sys/devices/system/memory/auto_online_blocks
step2: create region
cxl create-region -t ram -d decoder0.0 -m mem0
step3: disable memdev
cxl disable-memdev mem0 -f
step4: consum CXL memory
./consumemem <------kernel panic
numactl node status:
step1: numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1
node 0 size: 968 MB
node 0 free: 664 MB
node 1 cpus: 2 3
node 1 size: 683 MB
node 1 free: 333 MB
node distances:
node 0 1
0: 10 20
step2: numactl -H
available: 3 nodes (0-2)
node 0 cpus: 0 1
node 0 size: 968 MB
node 0 free: 677 MB
node 1 cpus: 2 3
node 1 size: 683 MB
node 1 free: 333 MB
node 2 cpus:
node 2 size: 256 MB
node 2 free: 256 MB
node distances:
node 0 1 2
0: 10 20 20
1: 20 10 20
2: 20 20 10
step3: numactl -H
available: 3 nodes (0-2)
node 0 cpus: 0 1
node 0 size: 968 MB
node 0 free: 686 MB
node 1 cpus: 2 3
node 1 size: 683 MB
node 1 free: 336 MB
node 2 cpus:
node 2 size: 256 MB
node 2 free: 256 MB
node distances:
node 0 1 2
0: 10 20 20
1: 20 10 20
2: 20 20 10