On 2/27/2024 8:40 AM, Dave Jiang wrote:


On 2/26/24 10:32 PM, Cao, Quanquan/曹 全全 wrote:
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.
If you are forcing memory disable when the memory cannot be offlined, then this 
behavior is expected. You are ripping the memory away from underneath kernel 
mm. The reason the check was added is to prevent the users from doing exactly 
that.

Since user is doing the illegal thing, shouldn't that lead to SIGBUS or SIGKILL ?

thanks,

-jane



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

Reply via email to