QEMU With E2K User Support
Go to file
Eduardo Habkost 549fc54b8c numa: Print warning if no node is assigned to a CPU
We need all possible CPUs (including hotplug ones) to be present in the
SRAT when QEMU starts. QEMU already does that correctly today, the only
problem is that when a CPU is omitted from the NUMA configuration, it is
silently assigned to node 0.

Check if all CPUs up to max_cpus are present in the NUMA configuration
and warn about missing CPUs.

Make it just a warning, to allow management software to be updated if
necessary. In the future we may make it a fatal error instead.

Command-line examples:

* Correct, no warning:

  $ qemu-system-x86_64 -smp 2,maxcpus=4
  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-3

* Incomplete, with warnings:

  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0
  qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 1 2 3
  qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config

  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-2
  qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 3
  qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in NUMA config

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
v1 -> v2: (no changes)

v2 -> v3:
 * Use enumerate_cpus() and error_report() for error message
 * Simplify logic using bitmap_full()

v3 -> v4:
 * Clarify error message, mention that all CPUs up to
   maxcpus need to be described in NUMA config

v4 -> v5:
 * Commit log update, to make problem description clearer
2015-03-19 16:20:15 -03:00
audio audio: Don't free hw resources until after hw backend is stopped 2014-12-22 23:12:25 +00:00
backends backends: Fix warning from Sparse 2015-03-19 11:11:55 +03:00
block Block patches for 2.3.0-rc1 2015-03-19 17:47:08 +00:00
bsd-user cpu: Make cpu_init() return QOM CPUState object 2015-03-10 17:33:51 +01:00
default-configs s390x/config: Do not include full pci.mak 2015-03-16 10:20:17 +01:00
disas cris: remove unused cris_cond15 declarations 2015-03-19 11:11:55 +03:00
docs docs: add memory-hotplug.txt 2015-03-04 13:00:36 -05:00
dtc@bc895d6d09
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
fsdev Fix typos in comments 2015-03-19 11:30:37 +03:00
gdb-xml
hw pc: fix default VCPU to NUMA node mapping 2015-03-19 16:12:09 -03:00
include numa: introduce machine callback for VCPU to node mapping 2015-03-19 16:12:09 -03:00
libcacard libcacard: stop linking against every single 3rd party library 2015-02-10 09:27:20 +03:00
libdecnumber
linux-headers synchronize Linux headers to 4.0-rc3 2015-03-10 09:26:22 +01:00
linux-user linux-user: Access correct register for get/set_tls syscalls on ARM TZ CPUs 2015-03-16 12:30:47 +00:00
migration migration: Expose 'cancelling' status to user 2015-03-17 15:20:37 +01:00
net net: synchronize net_host_device_remove with host_net_remove_completion 2015-03-12 19:59:39 +00:00
pc-bios seabios: update to 1.8.1 stable release 2015-03-16 09:07:15 +01:00
pixman@87eea99e44
po
qapi block: Fix blockdev-backup not to use funky error class 2015-03-19 16:02:59 +01:00
qga qga/commands-posix: Fix resource leak 2015-03-19 11:39:18 +03:00
qobject
qom qom: Fix warning from Sparse 2015-03-19 11:11:55 +03:00
roms seabios: update to 1.8.1 stable release 2015-03-16 09:07:15 +01:00
scripts build: pass .d file name to scripts/make_device_config.sh, fix makefile target 2015-03-18 12:07:25 +01:00
slirp
stubs pci, pc, virtio fixes and cleanups 2015-03-09 09:14:28 +00:00
sysconfigs/target
target-alpha tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-arm target-arm: Ignore low bit of PC in M-profile exception return 2015-03-16 12:30:47 +00:00
target-cris cris: remove unused cris_cond15 declarations 2015-03-19 11:11:55 +03:00
target-i386 target-i386: Remove icc_bridge parameter from cpu_x86_create() 2015-03-17 14:51:49 +01:00
target-lm32 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-m68k tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-microblaze tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-mips trivial patches for 2015-03-19 2015-03-19 14:10:20 +00:00
target-moxie target-moxie: Fix warnings from Sparse (one-bit signed bitfield) 2015-03-19 11:11:55 +03:00
target-openrisc tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-ppc tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-s390x Final batch of s390x enhancements/fixes for 2.3: 2015-03-16 11:44:55 +00:00
target-sh4 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-sparc tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-tricore Fix typos in comments 2015-03-19 11:30:37 +03:00
target-unicore32 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-xtensa tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
tcg tcg/optimize: Handle or r,a,a with constant a 2015-03-16 08:46:13 -07:00
tests Block patches for 2.3.0-rc1 2015-03-19 17:47:08 +00:00
trace Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
ui ui: ensure VNC websockets server checks the ACL if requested 2015-03-18 09:25:14 +01:00
util util/uri: Add overflow check to rfc3986_parse_port 2015-03-18 12:05:31 +01:00
.exrc
.gitignore gitignore: Track common.env in iotests gitignore 2015-03-10 08:15:34 +03:00
.gitmodules
.mailmap
.travis.yml .travis.yml: Add "--enable-modules" 2015-01-26 12:27:05 +01:00
accel.c
aio-posix.c
aio-win32.c
arch_init.c arch_init: Count the total number of pages by using helper function 2015-03-17 15:20:37 +01:00
async.c block: replace g_new0 with g_new for bottom half allocation. 2015-01-13 11:47:56 +00:00
balloon.c balloon: Fix typo 2015-02-23 10:56:09 -05:00
block.c block: Drop bdrv_find 2015-03-16 12:10:30 -04:00
blockdev-nbd.c nbd: Handle blk_getlength() failure 2015-03-18 12:06:50 +01:00
blockdev.c block: Fix blockdev-backup not to use funky error class 2015-03-19 16:02:59 +01:00
blockjob.c
bootdevice.c bootdevice: bug fixes 2015-03-08 06:43:32 +00:00
bt-host.c
bt-vhci.c
Changelog
CODING_STYLE
configure configure: enable kvm on x32 2015-03-19 11:17:27 +03:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c coroutine-ucontext: use __thread 2015-01-13 13:43:28 +00:00
coroutine-win32.c
cpu-exec.c - vhost-scsi: add bootindex property 2015-02-24 13:58:18 +00:00
cpus.c profiler: Reenable built-in profiler 2015-03-18 12:07:34 +01:00
cputlb.c exec: RCUify AddressSpaceDispatch 2015-02-16 17:30:19 +01:00
device_tree.c machine: query phandle-start machine property 2015-03-11 18:17:11 +01:00
device-hotplug.c pci-hotplug-old: Has been dead for five major releases, bury 2015-03-01 12:37:54 +01:00
disas.c
dma-helpers.c
dump.c
exec.c exec: Respect as_tranlsate_internal length clamp 2015-03-18 12:09:42 +01:00
gdbstub.c gdbstub: avoid possible NULL pointer dereference 2015-03-10 08:15:34 +03:00
HACKING
hmp-commands.hx hmp: Fix texinfo documentation 2015-03-19 11:35:52 +03:00
hmp.c migration/next for 20150317 2015-03-17 17:11:33 +00:00
hmp.h qom: Implement qom-set HMP command 2015-03-17 14:31:15 +01:00
iohandler.c
ioport.c
iothread.c
kvm-all.c kvm: fix ioeventfd endianness on bi-endian architectures 2015-03-18 12:07:30 +01:00
kvm-stub.c
LICENSE vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
main-loop.c
MAINTAINERS misc fixes and cleanups 2015-03-12 09:13:07 +00:00
Makefile build: pass .d file name to scripts/make_device_config.sh, fix makefile target 2015-03-18 12:07:25 +01:00
Makefile.objs QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
Makefile.target Makefile.target: binary depends on config-devices 2015-03-01 19:41:50 +01:00
memory_mapping.c
memory.c memory: Move owner-less MemoryRegions to /machine/unattached 2015-03-17 14:31:26 +01:00
module-common.c
monitor.c trivial patches for 2015-03-19 2015-03-19 14:10:20 +00:00
nbd.c nbd: Drop unexpected data for NBD_OPT_LIST 2015-03-18 12:07:16 +01:00
numa.c numa: Print warning if no node is assigned to a CPU 2015-03-19 16:20:15 -03:00
os-posix.c
os-win32.c
page_cache.c xbzrle: rebuild the cache_is_cached function 2015-01-15 17:49:43 +05:30
qapi-schema.json migration: Convert 'status' of MigrationInfo to use an enum type 2015-03-17 15:20:37 +01:00
qdev-monitor.c qom: Implement info qom-tree HMP command 2015-03-17 14:31:21 +01:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qemu-img: Suppress unhelpful extra errors in convert, amend 2015-02-26 14:51:21 +01:00
qemu-coroutine-io.c coroutine-io: Return -errno in case of error 2015-03-18 12:07:21 +01:00
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: Clean up qemu_coroutine_enter() 2015-03-09 11:11:59 +01:00
qemu-doc.texi raw-posix: Deprecate host floppy passthrough 2015-03-19 11:43:02 +01:00
qemu-img-cmds.hx
qemu-img.c qemu-img: Avoid qerror_report_err() outside QMP handlers, again 2015-03-16 17:07:25 +01:00
qemu-img.texi
qemu-io-cmds.c qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qemu-io.c Clean up around error_get_pretty(), qerror_report_err() 2015-02-26 07:01:08 +00:00
qemu-log.c qemu-log: Correct help text of 'log cpu_reset' 2015-02-10 09:27:20 +03:00
qemu-nbd.c nbd: Set block size to BDRV_SECTOR_SIZE 2015-03-18 12:07:01 +01:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Block patches for 2.3.0-rc1 2015-03-19 17:47:08 +00:00
qemu-seccomp.c seccomp: add mlockall to whitelist 2015-01-23 14:07:08 +01:00
qemu-tech.texi
qemu-timer.c qemu-timer.c: Trim list of included headers 2015-01-26 18:15:54 +00:00
qemu.nsi
qemu.sasl
qjson.c QJSON: fix typo in author's email address 2015-02-10 09:27:20 +03:00
qmp-commands.hx Block patches for 2.3.0-rc1 2015-03-19 17:47:08 +00:00
qmp.c vnc: set id at parse time not init time 2015-03-10 11:33:35 +01:00
qtest.c qtest: Use qemu_opt_set() instead of qemu_opts_parse() 2015-02-26 14:52:13 +01:00
README
rules.mak rules.mak: Fix module build 2015-01-14 10:38:57 +01:00
savevm.c error: Replace error_report() & error_free() with error_report_err() 2015-03-19 11:11:55 +03:00
softmmu_template.h exec: make iotlb RCU-friendly 2015-02-16 17:30:19 +01:00
spice-qemu-char.c spice: Add missing 'static' attribute 2015-02-10 10:26:05 +03:00
tcg-runtime.c
tci.c tcg: Remove unused opcodes 2015-02-12 21:21:38 -08:00
thread-pool.c
thunk.c
tpm.c tpm: Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
trace-events s390x/kvm: trace all SIGP orders 2015-03-10 09:26:22 +01:00
translate-all.c translate-all: Use g_try_malloc() for dynamic translator buffer 2015-02-10 09:27:21 +03:00
translate-all.h
user-exec.c user-exec.c: fix build on NetBSD/sparc64 and NetBSD/arm 2015-03-13 15:57:00 +00:00
VERSION Update version for v2.3.0-rc0 release 2015-03-17 18:58:33 +00:00
version.rc
vl.c numa: introduce machine callback for VCPU to node mapping 2015-03-19 16:12:09 -03:00
xen-common-stub.c
xen-common.c
xen-hvm-stub.c xen: Remove xen_cmos_set_s3_resume() 2015-03-10 08:15:33 +03:00
xen-hvm.c Xen: Use the ioreq-server API when available 2015-01-20 14:24:10 +00:00
xen-mapcache.c xen: add a lock for the mapcache 2015-01-20 14:24:17 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team