[Question] Format of memory node name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rob,

Currently, I'm looking into one QEMU bug which is related to FDT memory
nodes. The story is 4 NUMA nodes are specified by the command line, which
is used to start the VM. QEMU needs to create 4 FDT memory nodes for them
and their names are following the format (memory@unit-address) as stated
in the device-tree specification. The 'unit-address' is base address in
'reg' property. Unfortunately, one NUMA node's base address is exactly
same to another one. It means there are two conflicting two memory node
because of their names. It leads to the FDT can't be populated successfully.

For example, the last memory node can't be created because of its conflicting
name in the following scheme.

   NUMA ID       Base address       End address      Memory node name
   -------------------------------------------------------------------
   0             0x00000000         0x20000000       memory@00000000
   1             0x20000000         0x40000000       memory@20000000
   2             0x40000000         0x40000000       memory@40000000
   3             0x40000000         0x40000000       memory@40000000

I'm trying to resolve the issue. There are two options as below. However,
it's not certain the solution will beak the device-tree specification. So
I'm checking with you on this.

(1) Replace the 'unit-address' with NUMA ID
    memory@0
    memory@1
    memory@2
    memory@3

(2) Add suffix to the conflicting memory node names
    memory@00000000
    memory@20000000
    memory@40000000
    memory@40000000-0

Thanks,
Gavin

[link] https://patchwork.kernel.org/project/qemu-devel/patch/20210601073004.106490-1-gshan@xxxxxxxxxx/




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux