svn commit: r257423 - in head: share/examples/bhyve usr.sbin/bhyve

Neel Natu neel at FreeBSD.org
Thu Oct 31 05:44:47 UTC 2013


Author: neel
Date: Thu Oct 31 05:44:45 2013
New Revision: 257423
URL: http://svnweb.freebsd.org/changeset/base/257423

Log:
  Make the virtual ioapic available unconditionally in a bhyve virtual machine.
  
  This is in preparation for moving the ioapic device model from userspace to
  vmm.ko.
  
  Reviewed by:	grehan

Modified:
  head/share/examples/bhyve/vmrun.sh
  head/usr.sbin/bhyve/acpi.c
  head/usr.sbin/bhyve/acpi.h
  head/usr.sbin/bhyve/bhyverun.c
  head/usr.sbin/bhyve/mptbl.c
  head/usr.sbin/bhyve/mptbl.h

Modified: head/share/examples/bhyve/vmrun.sh
==============================================================================
--- head/share/examples/bhyve/vmrun.sh	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/share/examples/bhyve/vmrun.sh	Thu Oct 31 05:44:45 2013	(r257423)
@@ -173,7 +173,7 @@ while [ 1 ]; do
 		break
 	fi
 
-	${FBSDRUN} -c ${cpus} -m ${memsize} ${apic_opt} -AI -H -P	\
+	${FBSDRUN} -c ${cpus} -m ${memsize} ${apic_opt} -A -H -P	\
 		-g ${gdbport}						\
 		-s 0:0,hostbridge					\
 		-s 1:0,lpc						\

Modified: head/usr.sbin/bhyve/acpi.c
==============================================================================
--- head/usr.sbin/bhyve/acpi.c	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/usr.sbin/bhyve/acpi.c	Thu Oct 31 05:44:45 2013	(r257423)
@@ -806,7 +806,7 @@ static struct {
 };
 
 int
-acpi_build(struct vmctx *ctx, int ncpu, int ioapic)
+acpi_build(struct vmctx *ctx, int ncpu)
 {
 	int err;
 	int i;
@@ -814,11 +814,6 @@ acpi_build(struct vmctx *ctx, int ncpu, 
 	err = 0;
 	basl_ncpu = ncpu;
 
-	if (!ioapic) {
-		fprintf(stderr, "ACPI tables require an ioapic\n");
-		return (EINVAL);
-	}
-
 	/*
 	 * For debug, allow the user to have iasl compiler output sent
 	 * to stdout rather than /dev/null

Modified: head/usr.sbin/bhyve/acpi.h
==============================================================================
--- head/usr.sbin/bhyve/acpi.h	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/usr.sbin/bhyve/acpi.h	Thu Oct 31 05:44:45 2013	(r257423)
@@ -29,6 +29,6 @@
 #ifndef _ACPI_H_
 #define _ACPI_H_
 
-int	acpi_build(struct vmctx *ctx, int ncpu, int ioapic);
+int	acpi_build(struct vmctx *ctx, int ncpu);
 
 #endif /* _ACPI_H_ */

Modified: head/usr.sbin/bhyve/bhyverun.c
==============================================================================
--- head/usr.sbin/bhyve/bhyverun.c	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/usr.sbin/bhyve/bhyverun.c	Thu Oct 31 05:44:45 2013	(r257423)
@@ -132,7 +132,6 @@ usage(int code)
 		"       -c: # cpus (default 1)\n"
 		"       -p: pin vcpu 'n' to host cpu 'pincpu + n'\n"
 		"       -H: vmexit from the guest on hlt\n"
-		"       -I: present an ioapic to the guest\n"
 		"       -P: vmexit from the guest on pause\n"
 		"       -W: force virtio to use single-vector MSI\n"
 		"       -e: exit on unhandled I/O access\n"
@@ -543,7 +542,7 @@ fbsdrun_set_capabilities(struct vmctx *c
 int
 main(int argc, char *argv[])
 {
-	int c, error, gdb_port, err, ioapic, bvmcons;
+	int c, error, gdb_port, err, bvmcons;
 	int max_vcpus;
 	struct vmctx *ctx;
 	uint64_t rip;
@@ -553,7 +552,6 @@ main(int argc, char *argv[])
 	progname = basename(argv[0]);
 	gdb_port = 0;
 	guest_ncpus = 1;
-	ioapic = 0;
 	memsize = 256 * MB;
 
 	while ((c = getopt(argc, argv, "abehAHIPWp:g:c:s:S:m:l:")) != -1) {
@@ -601,7 +599,13 @@ main(int argc, char *argv[])
 			guest_vmexit_on_hlt = 1;
 			break;
 		case 'I':
-			ioapic = 1;
+			/*
+			 * The "-I" option was used to add an ioapic to the
+			 * virtual machine.
+			 *
+			 * An ioapic is now provided unconditionally for each
+			 * virtual machine and this option is now deprecated.
+			 */
 			break;
 		case 'P':
 			guest_vmexit_on_pause = 1;
@@ -659,8 +663,7 @@ main(int argc, char *argv[])
 	if (init_pci(ctx) != 0)
 		exit(1);
 
-	if (ioapic)
-		ioapic_init(0);
+	ioapic_init(0);
 
 	if (gdb_port != 0)
 		init_dbgport(gdb_port);
@@ -674,10 +677,10 @@ main(int argc, char *argv[])
 	/*
 	 * build the guest tables, MP etc.
 	 */
-	mptable_build(ctx, guest_ncpus, ioapic);
+	mptable_build(ctx, guest_ncpus);
 
 	if (acpi) {
-		error = acpi_build(ctx, guest_ncpus, ioapic);
+		error = acpi_build(ctx, guest_ncpus);
 		assert(error == 0);
 	}
 

Modified: head/usr.sbin/bhyve/mptbl.c
==============================================================================
--- head/usr.sbin/bhyve/mptbl.c	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/usr.sbin/bhyve/mptbl.c	Thu Oct 31 05:44:45 2013	(r257423)
@@ -242,7 +242,7 @@ mptable_add_oemtbl(void *tbl, int tblsz)
 }
 
 int
-mptable_build(struct vmctx *ctx, int ncpu, int ioapic)
+mptable_build(struct vmctx *ctx, int ncpu)
 {
 	mpcth_t			mpch;
 	bus_entry_ptr		mpeb;
@@ -278,12 +278,10 @@ mptable_build(struct vmctx *ctx, int ncp
 	curraddr += sizeof(*mpeb) * MPE_NUM_BUSES;
 	mpch->entry_count += MPE_NUM_BUSES;
 
-	if (ioapic) {
-		mpei = (io_apic_entry_ptr)curraddr;
-		mpt_build_ioapic_entries(mpei, ncpu + 1);
-		curraddr += sizeof(*mpei);
-		mpch->entry_count++;
-	}
+	mpei = (io_apic_entry_ptr)curraddr;
+	mpt_build_ioapic_entries(mpei, ncpu + 1);
+	curraddr += sizeof(*mpei);
+	mpch->entry_count++;
 
 	mpie = (int_entry_ptr) curraddr;
 	mpt_build_ioint_entries(mpie, MPEII_MAX_IRQ, ncpu + 1);

Modified: head/usr.sbin/bhyve/mptbl.h
==============================================================================
--- head/usr.sbin/bhyve/mptbl.h	Thu Oct 31 05:20:11 2013	(r257422)
+++ head/usr.sbin/bhyve/mptbl.h	Thu Oct 31 05:44:45 2013	(r257423)
@@ -29,7 +29,7 @@
 #ifndef _MPTBL_H_
 #define _MPTBL_H_
 
-int	mptable_build(struct vmctx *ctx, int ncpu, int ioapic);
+int	mptable_build(struct vmctx *ctx, int ncpu);
 void	mptable_add_oemtbl(void *tbl, int tblsz);
 
 #endif /* _MPTBL_H_ */


More information about the svn-src-head mailing list