From owner-svn-soc-all@FreeBSD.ORG Tue Jun 3 13:36:20 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 99C6B199 for ; Tue, 3 Jun 2014 13:36:20 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 876CF2B13 for ; Tue, 3 Jun 2014 13:36:20 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.8/8.14.8) with ESMTP id s53DaKb8066789 for ; Tue, 3 Jun 2014 13:36:20 GMT (envelope-from mihai@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.8/8.14.8/Submit) id s53DaKl9066658 for svn-soc-all@FreeBSD.org; Tue, 3 Jun 2014 13:36:20 GMT (envelope-from mihai@FreeBSD.org) Date: Tue, 3 Jun 2014 13:36:20 GMT Message-Id: <201406031336.s53DaKl9066658@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to mihai@FreeBSD.org using -f From: mihai@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r269006 - soc2014/mihai/bhyve-icache-head/sys/amd64/vmm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jun 2014 13:36:20 -0000 Author: mihai Date: Tue Jun 3 13:36:19 2014 New Revision: 269006 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=269006 Log: sys: amd64: vmm: vmm_instruction_cache.c: fix cached page Modified: soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Modified: soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c ============================================================================== --- soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Tue Jun 3 13:22:02 2014 (r269005) +++ soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Tue Jun 3 13:36:19 2014 (r269006) @@ -195,8 +195,10 @@ if ((pte32 & PG_V) == 0) goto error; - if (pte32 & PG_PS) + if (pte32 & PG_PS) { + vie_cached->pages_count--; break; + } ptpphys = pte32; } @@ -262,8 +264,10 @@ if (pte & PG_PS) { if (pgsize > 1 * GB) goto error; - else + else { + vie_cached->pages_count--; break; + } } ptpphys = pte; @@ -273,11 +277,12 @@ pte >>= ptpshift; pte <<= (ptpshift + 12); pte >>= 12; vie_cached->pages_mask[vie_cached->pages_count] = (1 << ptpshift) - 1; - vie_cached->pages[vie_cached->pages_count++] = ptpphys; + vie_cached->pages[vie_cached->pages_count++] = pte; protect: i=0; for (i = 0; i < vie_cached->pages_count; i++) { +// printf("vm_map_protect %d, %lx -> %lx\n",i, vie_cached->pages[i], vie_cached->pages_mask[i]); vm_map_protect(&(vm_get_vmspace(vm)->vm_map), vie_cached->pages[i], vie_cached->pages[i] + vie_cached->pages_mask[i] + 1, VM_PROT_READ | VM_PROT_EXECUTE, 0);