svn commit: r265114 - in head: sys/amd64/vmm/intel usr.sbin/bhyve

Neel Natu neel at FreeBSD.org
Wed Apr 30 02:08:28 UTC 2014


Author: neel
Date: Wed Apr 30 02:08:27 2014
New Revision: 265114
URL: http://svnweb.freebsd.org/changeset/base/265114

Log:
  Ignore writes to microcode update MSR. This MSR is accessed by RHEL7 guest.
  Add KTR tracepoints to annotate wrmsr and rdmsr VM exits.

Modified:
  head/sys/amd64/vmm/intel/vmx.c
  head/usr.sbin/bhyve/xmsr.c

Modified: head/sys/amd64/vmm/intel/vmx.c
==============================================================================
--- head/sys/amd64/vmm/intel/vmx.c	Wed Apr 30 02:03:47 2014	(r265113)
+++ head/sys/amd64/vmm/intel/vmx.c	Wed Apr 30 02:08:27 2014	(r265114)
@@ -1797,6 +1797,7 @@ vmx_exit_process(struct vmx *vmx, int vc
 		vmm_stat_incr(vmx->vm, vcpu, VMEXIT_RDMSR, 1);
 		retu = false;
 		ecx = vmxctx->guest_rcx;
+		VCPU_CTR1(vmx->vm, vcpu, "rdmsr 0x%08x", ecx);
 		error = emulate_rdmsr(vmx->vm, vcpu, ecx, &retu);
 		if (error) {
 			vmexit->exitcode = VM_EXITCODE_RDMSR;
@@ -1815,6 +1816,8 @@ vmx_exit_process(struct vmx *vmx, int vc
 		eax = vmxctx->guest_rax;
 		ecx = vmxctx->guest_rcx;
 		edx = vmxctx->guest_rdx;
+		VCPU_CTR2(vmx->vm, vcpu, "wrmsr 0x%08x value 0x%016lx",
+		    ecx, (uint64_t)edx << 32 | eax);
 		error = emulate_wrmsr(vmx->vm, vcpu, ecx,
 		    (uint64_t)edx << 32 | eax, &retu);
 		if (error) {

Modified: head/usr.sbin/bhyve/xmsr.c
==============================================================================
--- head/usr.sbin/bhyve/xmsr.c	Wed Apr 30 02:03:47 2014	(r265113)
+++ head/usr.sbin/bhyve/xmsr.c	Wed Apr 30 02:08:27 2014	(r265114)
@@ -47,6 +47,8 @@ emulate_wrmsr(struct vmctx *ctx, int vcp
 	case 0xd04:			/* Sandy Bridge uncore PMC MSRs */
 	case 0xc24:
 		return (0);
+	case 0x79:
+		return (0);		/* IA32_BIOS_UPDT_TRIG MSR */
 	default:
 		break;
 	}


More information about the svn-src-head mailing list