svn commit: r297334 - head/sys/dev/vt/hw/vga

Sepherosa Ziehau sephe at FreeBSD.org
Mon Mar 28 07:36:55 UTC 2016


Author: sephe
Date: Mon Mar 28 07:36:54 2016
New Revision: 297334
URL: https://svnweb.freebsd.org/changeset/base/297334

Log:
  vt: Use textmode when we're running on hypervisors
  
  The graphic mode is noticeably slow on hypervisors, especially
  on Hyper-V (1 second to each line).
  
  Submitted by:	Dexuan Cui <decui microsoft com>
  Reviewed by:	kib, sephe, royger (early loader version)
  MFC after:	1 week
  Sponsored by:	Microsoft OSTC
  Differential Revision:	https://reviews.freebsd.org/D5739

Modified:
  head/sys/dev/vt/hw/vga/vt_vga.c

Modified: head/sys/dev/vt/hw/vga/vt_vga.c
==============================================================================
--- head/sys/dev/vt/hw/vga/vt_vga.c	Mon Mar 28 05:42:15 2016	(r297333)
+++ head/sys/dev/vt/hw/vga/vt_vga.c	Mon Mar 28 07:36:54 2016	(r297334)
@@ -1214,7 +1214,6 @@ vga_init(struct vt_device *vd)
 	if (vd->vd_softc == NULL)
 		vd->vd_softc = (void *)&vga_conssoftc;
 	sc = vd->vd_softc;
-	textmode = 0;
 
 	if (vd->vd_flags & VDF_DOWNGRADE && vd->vd_video_dev != NULL)
 		vga_pci_repost(vd->vd_video_dev);
@@ -1229,6 +1228,13 @@ vga_init(struct vt_device *vd)
 	bus_space_map(sc->vga_reg_tag, VGA_REG_BASE, VGA_REG_SIZE, 0,
 	    &sc->vga_reg_handle);
 
+	/*
+	 * If "hw.vga.textmode" is not set and we're running on hypervisor,
+	 * we use text mode by default, this is because when we're on
+	 * hypervisor, vt(4) is usually much slower in graphics mode than
+	 * in text mode, especially when we're on Hyper-V.
+	 */
+	textmode = vm_guest != VM_GUEST_NO;
 	TUNABLE_INT_FETCH("hw.vga.textmode", &textmode);
 	if (textmode) {
 		vd->vd_flags |= VDF_TEXTMODE;


More information about the svn-src-all mailing list