Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Nov 2012 13:34:44 +0000 (UTC)
From:      Neel Natu <neel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r243651 - in projects/bhyve: sys/amd64/include sys/amd64/vmm/intel usr.sbin/bhyve
Message-ID:  <201211281334.qASDYioA038373@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: neel
Date: Wed Nov 28 13:34:44 2012
New Revision: 243651
URL: http://svnweb.freebsd.org/changeset/base/243651

Log:
  Cleanup the user-space paging exit handler now that the unified instruction
  emulation is in place.
  
  Obtained from:	NetApp

Modified:
  projects/bhyve/sys/amd64/include/vmm.h
  projects/bhyve/sys/amd64/vmm/intel/vmx.c
  projects/bhyve/usr.sbin/bhyve/fbsdrun.c
  projects/bhyve/usr.sbin/bhyve/mem.c
  projects/bhyve/usr.sbin/bhyve/mem.h

Modified: projects/bhyve/sys/amd64/include/vmm.h
==============================================================================
--- projects/bhyve/sys/amd64/include/vmm.h	Wed Nov 28 13:10:18 2012	(r243650)
+++ projects/bhyve/sys/amd64/include/vmm.h	Wed Nov 28 13:34:44 2012	(r243651)
@@ -267,9 +267,7 @@ struct vm_exit {
 			uint32_t	eax;		/* valid for out */
 		} inout;
 		struct {
-			uint64_t	cr3;
 			uint64_t	gpa;
-			int		rwx;
 			struct vie	vie;
 		} paging;
 		/*

Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c
==============================================================================
--- projects/bhyve/sys/amd64/vmm/intel/vmx.c	Wed Nov 28 13:10:18 2012	(r243650)
+++ projects/bhyve/sys/amd64/vmm/intel/vmx.c	Wed Nov 28 13:34:44 2012	(r243651)
@@ -1303,9 +1303,7 @@ vmx_exit_process(struct vmx *vmx, int vc
 					cr3, qual, &vmexit->u.paging.vie);
 		if (!handled) {
 			vmexit->exitcode = VM_EXITCODE_PAGING;
-			vmexit->u.paging.cr3 = cr3;
 			vmexit->u.paging.gpa = gpa;
-			vmexit->u.paging.rwx = qual & 0x7;
 		}
 		break;
 	default:

Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c
==============================================================================
--- projects/bhyve/usr.sbin/bhyve/fbsdrun.c	Wed Nov 28 13:10:18 2012	(r243650)
+++ projects/bhyve/usr.sbin/bhyve/fbsdrun.c	Wed Nov 28 13:34:44 2012	(r243651)
@@ -453,8 +453,7 @@ vmexit_paging(struct vmctx *ctx, struct 
 	int err;
 	stats.vmexit_paging++;
 
-	err = emulate_mem(ctx, *pvcpu, vmexit->u.paging.gpa, vmexit->rip,
-			  vmexit->u.paging.cr3, vmexit->u.paging.rwx,
+	err = emulate_mem(ctx, *pvcpu, vmexit->u.paging.gpa,
 			  &vmexit->u.paging.vie);
 
 	if (err) {

Modified: projects/bhyve/usr.sbin/bhyve/mem.c
==============================================================================
--- projects/bhyve/usr.sbin/bhyve/mem.c	Wed Nov 28 13:10:18 2012	(r243650)
+++ projects/bhyve/usr.sbin/bhyve/mem.c	Wed Nov 28 13:34:44 2012	(r243651)
@@ -156,8 +156,7 @@ mem_write(void *ctx, int vcpu, uint64_t 
 }
 
 int
-emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, uint64_t rip,
-	    uint64_t cr3, int mode, struct vie *vie)
+emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, struct vie *vie)
 {
 	struct mmio_rb_range *entry;
 	int err;

Modified: projects/bhyve/usr.sbin/bhyve/mem.h
==============================================================================
--- projects/bhyve/usr.sbin/bhyve/mem.h	Wed Nov 28 13:10:18 2012	(r243650)
+++ projects/bhyve/usr.sbin/bhyve/mem.h	Wed Nov 28 13:34:44 2012	(r243651)
@@ -50,8 +50,7 @@ struct mem_range {
 #define	MEM_F_RW		0x3
 
 void	init_mem(void);
-int     emulate_mem(struct vmctx *, int vcpu, uint64_t paddr, uint64_t rip,
-		    uint64_t cr3, int mode, struct vie *vie);
+int     emulate_mem(struct vmctx *, int vcpu, uint64_t paddr, struct vie *vie);
 		    
 int	register_mem(struct mem_range *memp);
 



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