xemu/hw
Emilio G. Cota 7264961934 hw: add .min_cpus and .default_cpus fields to machine_class
max_cpus needs to be an upper bound on the number of vCPUs
initialized; otherwise TCG region initialization breaks.

Some boards initialize a hard-coded number of vCPUs, which is not
captured by the global max_cpus and therefore breaks TCG initialization.
Fix it by adding the .min_cpus field to machine_class.

This commit also changes some user-facing behaviour: we now die if
-smp is below this hard-coded vCPU minimum instead of silently
ignoring the passed -smp value (sometimes announcing this by printing
a warning). However, the introduction of .default_cpus lessens the
likelihood that users will notice this: if -smp isn't set, we now
assign the value in .default_cpus to both smp_cpus and max_cpus. IOW,
if a user does not set -smp, they always get a correct number of vCPUs.

This change fixes 3468b59 ("tcg: enable multiple TCG contexts in
softmmu", 2017-10-24), which broke TCG initialization for some
ARM boards.

Fixes: 3468b59e18
Reported-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Message-id: 1510343626-25861-6-git-send-email-cota@braap.org
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-13 13:55:27 +00:00
..
9pfs 9pfs: fix v9fs_mark_fids_unreclaim() return value 2017-11-06 18:05:35 +01:00
acpi * TCG 8-byte atomic accesses bugfix (Andrew) 2017-10-19 15:38:07 +01:00
adc STM32F2xx: Add the ADC device 2016-10-04 13:28:07 +01:00
alpha alpha: use generic cpu_model parsing 2017-10-27 16:03:53 +02:00
arm hw: add .min_cpus and .default_cpus fields to machine_class 2017-11-13 13:55:27 +00:00
audio pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
block xen: dont try setting max grants multiple times 2017-10-26 14:23:08 -07:00
bt bt: stop the sdp memory allocation craziness 2017-08-01 17:27:33 +02:00
char pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
core * TCG 8-byte atomic accesses bugfix (Andrew) 2017-10-19 15:38:07 +01:00
cpu cpu: don't allow negative core id 2017-08-02 18:30:13 -03:00
cris cris: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
display hw/display/sm501: Fix comment in sm501_sysbus_class_init() 2017-11-08 13:21:37 +11:00
dma sun4m_iommu: remove legacy sparc_iommu_memory_rw() function 2017-10-31 17:25:37 +00:00
gpio hw/gpio/omap_gpio.c: Don't use old_mmio 2017-09-21 16:34:27 +01:00
i2c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
i386 pci-assign: Remove 2017-11-05 14:52:10 +01:00
ide ide: avoid referencing NULL dev in rotational rate setting 2017-10-31 18:00:03 -04:00
input ps2: fix scancodes sent for Ctrl+Pause key combination 2017-10-23 10:50:02 +02:00
intc hw/intc/arm_gicv3_its: Don't abort on table save failure 2017-11-07 13:03:52 +00:00
ipack pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
ipmi qom: enforce readonly nature of link's check callback 2017-07-14 12:04:42 +02:00
isa pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
lm32 lm32: lm32_boards: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
m68k m68k: mcf5208: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
mem qmp: introduce query-memory-size-summary command 2017-09-14 15:52:10 +01:00
microblaze hw: Use new memory_region_init_{ram, rom, rom_device}() functions 2017-07-14 17:59:42 +01:00
mips mips: r4k: replace cpu_model with cpu_type 2017-10-27 16:04:28 +02:00
misc pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
moxie moxie: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
net lance: move TYPE_LANCE and SysBusPCNetState from lance.c to lance.h 2017-10-31 17:25:36 +00:00
nios2 nios2: replace cpu_nios2_init() with cpu_generic_init() 2017-09-01 11:54:24 -03:00
nvram fw_cfg: add write callback 2017-10-15 05:54:40 +03:00
openrisc openrisc: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
pci pci: Validate interfaces on base_class_init 2017-10-15 05:54:43 +03:00
pci-bridge hw/gen_pcie_root_port: make IO RO 0 on IO disabled 2017-10-15 05:54:43 +03:00
pci-host hw/pci-host/gpex: Improve INTX to gsi routing error checking 2017-10-31 11:50:52 +00:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc e500: ppce500_init_mpic() return device instead of IRQ array 2017-11-08 13:21:37 +11:00
s390x s390x/pci: let pci devices start in configured mode 2017-11-08 12:00:08 +01:00
scsi esp: move TYPE_ESP and SysBusESPState from esp.c to esp.h 2017-10-31 17:25:36 +00:00
sd pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
sh4 sh4: shix: use generic cpu_model parsing 2017-10-27 16:03:54 +02:00
smbios stubs: move smbios stubs to hw/smbios 2017-01-16 17:52:35 +01:00
sparc sparc32_dma: introduce new SPARC32_DMA type container object 2017-10-31 17:25:36 +00:00
sparc64 sparc: sun4u/sun4v/niagara: use generic cpu_model parsing 2017-10-27 16:04:27 +02:00
ssi msf2: Remove dead code reported by Coverity 2017-10-31 11:50:51 +00:00
timer migration: pre_save return int 2017-09-27 11:35:59 +01:00
tpm tpm: print buffers received from TPM when debugging 2017-10-25 01:05:53 -04:00
tricore tricore: use generic cpu_model parsing 2017-10-27 16:04:27 +02:00
unicore32 unicore32: use generic cpu_model parsing 2017-10-27 16:04:27 +02:00
usb usb-ccid: remove needless migration state code 2017-10-23 10:05:28 +02:00
vfio s390x: improve error handling for SSCH and RSCH 2017-10-20 13:32:10 +02:00
virtio virtio-pci: Replace modern_as with direct access to modern_bar 2017-10-15 05:54:44 +03:00
watchdog pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
xen pci-assign: Remove 2017-11-05 14:52:10 +01:00
xenpv xenfb: remove xen_init_display "temporary" hack 2017-07-07 11:10:03 -07:00
xtensa xtensa: lx60/lx200/ml605/kc705: use generic cpu_model parsing 2017-10-27 16:04:27 +02:00
Makefile.objs 9pfs: fix dependencies 2017-08-30 18:23:25 +02:00