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@
This commit is contained in:
Peter Grehan 2013-09-10 03:48:18 +00:00
parent e8de677c74
commit 8d39ed16c2
2 changed files with 6 additions and 4 deletions

View File

@ -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

View File

@ -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");