On 03/30/2011 02:14 PM, Sasha Levin wrote:
It is possible to create CPU-less NUMA nodes, node amount shouldn't be
limited by amount of CPUs.
Signed-off-by: Sasha Levin<levinsasha...@gmail.com>
---
vl.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/vl.c b/vl.c
index 8bcf2ae..8cc1aa8 100644
--- a/vl.c
+++ b/vl.c
@@ -3002,8 +3002,8 @@ int main(int argc, char **argv, char **envp)
if (nb_numa_nodes> 0) {
int i;
- if (nb_numa_nodes> smp_cpus) {
- nb_numa_nodes = smp_cpus;
+ if (nb_numa_nodes> MAX_NODES) {
+ nb_numa_nodes = MAX_NODES;
}
/* If no memory size if given for any node, assume the default
case
Did a quick test myself and it seems to work from what I can tell:
RHEL6 64-bit guest, QEMU master:
/home/mdroth/dev/kvm/qemu.git/x86_64-softmmu/qemu-system-x86_64 -smp 2
-numa node,nodeid=1 -numa node,nodeid=2 -numa node,nodeid=3 -drive
file=/home/mdroth/vm/rhel6_64_base.raw,snapshot=off,if=virtio -bios
/home/mdroth/dev/kvm/qemu.git/pc-bios/bios.bin -vnc :1 -m 1024 --enable-kvm
...
[mdroth@vm0 ~]$ cat /sys/devices/system/node/node{0,1,2}/cpulist
0
1
[mdroth@vm0 ~]$ cat /sys/devices/system/node/node{0,1,2}/distance
10 20 20
20 10 20
20 20 10
[mdroth@vm0 ~]$ cat /sys/devices/system/node/node{0,1,2}/meminfo
Node 0 MemTotal: 343664 kB
Node 0 MemFree: 181384 kB
Node 0 MemUsed: 162280 kB
Node 0 Active: 26640 kB
Node 0 Inactive: 52752 kB
Node 0 Active(anon): 12272 kB
Node 0 Inactive(anon): 0 kB
Node 0 Active(file): 14368 kB
Node 0 Inactive(file): 52752 kB
Node 0 Unevictable: 0 kB
Node 0 Mlocked: 0 kB
Node 0 Dirty: 116 kB
Node 0 Writeback: 0 kB
Node 0 FilePages: 67220 kB
Node 0 Mapped: 12980 kB
Node 0 AnonPages: 12168 kB
Node 0 Shmem: 104 kB
Node 0 KernelStack: 736 kB
Node 0 PageTables: 2988 kB
Node 0 NFS_Unstable: 0 kB
Node 0 Bounce: 0 kB
Node 0 WritebackTmp: 0 kB
Node 0 Slab: 53356 kB
Node 0 SReclaimable: 8896 kB
Node 0 SUnreclaim: 44460 kB
Node 0 HugePages_Total: 0
Node 0 HugePages_Free: 0
Node 0 HugePages_Surp: 0
Node 1 MemTotal: 344064 kB
Node 1 MemFree: 292756 kB
Node 1 MemUsed: 51308 kB
Node 1 Active: 12548 kB
Node 1 Inactive: 11296 kB
Node 1 Active(anon): 8120 kB
Node 1 Inactive(anon): 4 kB
Node 1 Active(file): 4428 kB
Node 1 Inactive(file): 11292 kB
Node 1 Unevictable: 0 kB
Node 1 Mlocked: 0 kB
Node 1 Dirty: 4 kB
Node 1 Writeback: 0 kB
Node 1 FilePages: 15776 kB
Node 1 Mapped: 3548 kB
Node 1 AnonPages: 6044 kB
Node 1 Shmem: 56 kB
Node 1 KernelStack: 264 kB
Node 1 PageTables: 1904 kB
Node 1 NFS_Unstable: 0 kB
Node 1 Bounce: 0 kB
Node 1 WritebackTmp: 0 kB
Node 1 Slab: 14696 kB
Node 1 SReclaimable: 1584 kB
Node 1 SUnreclaim: 13112 kB
Node 1 HugePages_Total: 0
Node 1 HugePages_Free: 0
Node 1 HugePages_Surp: 0
Node 2 MemTotal: 360436 kB
Node 2 MemFree: 345112 kB
Node 2 MemUsed: 15324 kB
Node 2 Active: 0 kB
Node 2 Inactive: 0 kB
Node 2 Active(anon): 0 kB
Node 2 Inactive(anon): 0 kB
Node 2 Active(file): 0 kB
Node 2 Inactive(file): 0 kB
Node 2 Unevictable: 0 kB
Node 2 Mlocked: 0 kB
Node 2 Dirty: 0 kB
Node 2 Writeback: 0 kB
Node 2 FilePages: 0 kB
Node 2 Mapped: 4 kB
Node 2 AnonPages: 0 kB
Node 2 Shmem: 0 kB
Node 2 KernelStack: 8 kB
Node 2 PageTables: 0 kB
Node 2 NFS_Unstable: 0 kB
Node 2 Bounce: 0 kB
Node 2 WritebackTmp: 0 kB
Node 2 Slab: 10920 kB
Node 2 SReclaimable: 1200 kB
Node 2 SUnreclaim: 9720 kB
Node 2 HugePages_Total: 0
Node 2 HugePages_Free: 0
Node 2 HugePages_Surp: 0
[mdroth@vm0 ~]$