qemu-irix/hw
Igor Mammedov fb43b73b92 pc: fix default VCPU to NUMA node mapping
Since commit
   dd0247e0 pc: acpi: mark all possible CPUs as enabled in SRAT
Linux kernel actually tries to use CPU to Node mapping from
QEMU provided SRAT table instead of discarding it, and that
in some cases breaks build_sched_domains() which expects
sane mapping where cores/threads belonging to the same socket
are on the same NUMA node.

With current default round-robin mapping of VCPUs to nodes
guest ends-up with cores/threads belonging to the same socket
being on different NUMA nodes.

For example with following CLI:

   qemu-system-x86_64 -m 4G \
         -cpu Opteron_G3,vendor=AuthenticAMD \
         -smp 5,sockets=1,cores=4,threads=1,maxcpus=8 \
         -numa node,nodeid=0 -numa node,nodeid=1

2.6.32 based kernels will hang on boot due to incorrectly built
sched_group-s list in update_sd_lb_stats()

Replacing default mapping with a manual, where VCPUs belonging to
the same socket are on the same NUMA node, fixes the issue for
guests which can't handle nonsense topology i.e. changing CLI to:
  -numa node,nodeid=0,cpus=0-3 -numa node,nodeid=1,cpus=4-7

So instead of simply scattering VCPUs around nodes, provide
callback to map the same socket VCPUs to the same NUMA node,
which is what guests would expect from a sane hardware/BIOS.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2015-03-19 16:12:09 -03:00
..
9pfs 9pfs: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
acpi
alpha
arm error: Replace error_report() & error_free() with error_report_err() 2015-03-19 11:11:55 +03:00
audio
block
bt
char virtio-serial api: guest_writable callback for users 2015-03-19 16:46:32 +00:00
core elf-loader: Fix truncation warning from coverity 2015-03-19 11:36:52 +03:00
cpu
cris
display Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
dma omap: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
gpio omap: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
i2c
i386 pc: fix default VCPU to NUMA node mapping 2015-03-19 16:12:09 -03:00
ide
input
intc Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
ipack
isa
lm32
m68k
mem pc-dimm: Add description for device list. 2015-03-19 11:17:36 +03:00
microblaze
mips
misc omap: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
moxie
net
nvram Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
openrisc
pci pcie_aer: fix comment to match pcie spec 2015-03-18 12:48:21 +01:00
pci-bridge
pci-host
pcmcia
ppc
s390x s390x/pci: fix length in sei_nt2 event 2015-03-16 10:20:17 +01:00
scsi virtio-scsi-dataplane: fix memory leak in virtio_scsi_vring_init 2015-03-18 12:08:52 +01:00
sd omap: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
sh4
sparc
sparc64
ssi omap: Fix warnings from Sparse 2015-03-19 11:11:55 +03:00
timer Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
tpm Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
tricore
unicore32
usb Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
vfio
virtio virtio: validate the existence of handle_output before calling it 2015-03-16 15:29:51 +01:00
watchdog
xen
xenpv
xtensa
Makefile.objs