Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jun 2016 04:32:11 +0000 (UTC)
From:      Sepherosa Ziehau <sephe@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r301950 - stable/10/sys/dev/vt/hw/vga
Message-ID:  <201606160432.u5G4WB31080497@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sephe
Date: Thu Jun 16 04:32:11 2016
New Revision: 301950
URL: https://svnweb.freebsd.org/changeset/base/301950

Log:
  MFC 297334
  
      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:
  stable/10/sys/dev/vt/hw/vga/vt_vga.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/vt/hw/vga/vt_vga.c
==============================================================================
--- stable/10/sys/dev/vt/hw/vga/vt_vga.c	Thu Jun 16 04:21:27 2016	(r301949)
+++ stable/10/sys/dev/vt/hw/vga/vt_vga.c	Thu Jun 16 04:32:11 2016	(r301950)
@@ -1200,7 +1200,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 defined(__amd64__) || defined(__i386__)
 	sc->vga_fb_tag = X86_BUS_SPACE_MEM;
@@ -1217,6 +1216,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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606160432.u5G4WB31080497>