summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2013-09-10 03:48:18 +0000
committergrehan <grehan@FreeBSD.org>2013-09-10 03:48:18 +0000
commit3d2b366a366c56edb8a86a84ee95f0de06fa61a4 (patch)
tree9b365b6d634cf76760a5d9a14f8709441d660814
parenta23043347caa65ac4c8e91f806ab2319dbbd657c (diff)
downloadFreeBSD-src-3d2b366a366c56edb8a86a84ee95f0de06fa61a4.zip
FreeBSD-src-3d2b366a366c56edb8a86a84ee95f0de06fa61a4.tar.gz
Go way past 11 and bump bhyve's max vCPUs to 16.
This should be sufficient for 10.0 and will do until forthcoming work to avoid limitations in this area is complete. Thanks to Bela Lubkin at tidalscale for the headsup on the apic/cpu id/io apic ASL parameters that are actually hex values and broke when written as decimal when 11 vCPUs were configured. Approved by: re@
-rw-r--r--sys/amd64/include/vmm.h2
-rw-r--r--usr.sbin/bhyve/acpi.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h
index 617c682..b741247 100644
--- a/sys/amd64/include/vmm.h
+++ b/sys/amd64/include/vmm.h
@@ -150,7 +150,7 @@ void vm_interrupt_hostcpu(struct vm *vm, int vcpu);
#include <machine/vmm_instruction_emul.h>
-#define VM_MAXCPU 8 /* maximum virtual cpus */
+#define VM_MAXCPU 16 /* maximum virtual cpus */
/*
* Identifiers for events that can be injected into the VM
diff --git a/usr.sbin/bhyve/acpi.c b/usr.sbin/bhyve/acpi.c
index ed0c545..89c11bc 100644
--- a/usr.sbin/bhyve/acpi.c
+++ b/usr.sbin/bhyve/acpi.c
@@ -241,8 +241,9 @@ basl_fwrite_madt(FILE *fp)
for (i = 0; i < basl_ncpu; i++) {
EFPRINTF(fp, "[0001]\t\tSubtable Type : 00\n");
EFPRINTF(fp, "[0001]\t\tLength : 08\n");
- EFPRINTF(fp, "[0001]\t\tProcessor ID : %02d\n", i);
- EFPRINTF(fp, "[0001]\t\tLocal Apic ID : %02d\n", i);
+ /* iasl expects hex values for the proc and apic id's */
+ EFPRINTF(fp, "[0001]\t\tProcessor ID : %02x\n", i);
+ EFPRINTF(fp, "[0001]\t\tLocal Apic ID : %02x\n", i);
EFPRINTF(fp, "[0004]\t\tFlags (decoded below) : 00000001\n");
EFPRINTF(fp, "\t\t\tProcessor Enabled : 1\n");
EFPRINTF(fp, "\n");
@@ -251,7 +252,8 @@ basl_fwrite_madt(FILE *fp)
/* Always a single IOAPIC entry, with ID ncpu+1 */
EFPRINTF(fp, "[0001]\t\tSubtable Type : 01\n");
EFPRINTF(fp, "[0001]\t\tLength : 0C\n");
- EFPRINTF(fp, "[0001]\t\tI/O Apic ID : %02d\n", basl_ncpu);
+ /* iasl expects a hex value for the i/o apic id */
+ EFPRINTF(fp, "[0001]\t\tI/O Apic ID : %02x\n", basl_ncpu);
EFPRINTF(fp, "[0001]\t\tReserved : 00\n");
EFPRINTF(fp, "[0004]\t\tAddress : fec00000\n");
EFPRINTF(fp, "[0004]\t\tInterrupt : 00000000\n");
OpenPOWER on IntegriCloud