Module Name: src Committed By: maxv Date: Mon May 27 17:32:36 UTC 2019
Modified Files: src/sys/arch/amd64/amd64: genassym.cf src/sys/arch/x86/include: cpu.h src/sys/arch/x86/x86: cpu.c pmap.c svs.c x86_tlb.c Log Message: Remove 'ci_svs_kpdirpa', unused. While here fix a few comments here and there, reduces a future diff. To generate a diff of this commit: cvs rdiff -u -r1.74 -r1.75 src/sys/arch/amd64/amd64/genassym.cf cvs rdiff -u -r1.105 -r1.106 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.168 -r1.169 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.331 -r1.332 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.26 -r1.27 src/sys/arch/x86/x86/svs.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/x86/x86/x86_tlb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/amd64/genassym.cf diff -u src/sys/arch/amd64/amd64/genassym.cf:1.74 src/sys/arch/amd64/amd64/genassym.cf:1.75 --- src/sys/arch/amd64/amd64/genassym.cf:1.74 Fri Feb 15 08:54:01 2019 +++ src/sys/arch/amd64/amd64/genassym.cf Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.74 2019/02/15 08:54:01 nonaka Exp $ +# $NetBSD: genassym.cf,v 1.75 2019/05/27 17:32:36 maxv Exp $ # # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -236,7 +236,6 @@ define CPU_INFO_PMAP offsetof(struct cp define CPU_INFO_TSS offsetof(struct cpu_info, ci_tss) ifdef SVS define CPU_INFO_UPDIRPA offsetof(struct cpu_info, ci_svs_updirpa) -define CPU_INFO_KPDIRPA offsetof(struct cpu_info, ci_svs_kpdirpa) define CPU_INFO_RSP0 offsetof(struct cpu_info, ci_svs_rsp0) define CPU_INFO_URSP0 offsetof(struct cpu_info, ci_svs_ursp0) define CPU_INFO_KRSP0 offsetof(struct cpu_info, ci_svs_krsp0) Index: src/sys/arch/x86/include/cpu.h diff -u src/sys/arch/x86/include/cpu.h:1.105 src/sys/arch/x86/include/cpu.h:1.106 --- src/sys/arch/x86/include/cpu.h:1.105 Fri Feb 15 08:54:01 2019 +++ src/sys/arch/x86/include/cpu.h Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.105 2019/02/15 08:54:01 nonaka Exp $ */ +/* $NetBSD: cpu.h,v 1.106 2019/05/27 17:32:36 maxv Exp $ */ /* * Copyright (c) 1990 The Regents of the University of California. @@ -245,7 +245,7 @@ struct cpu_info { #ifdef SVS pd_entry_t * ci_svs_updir; paddr_t ci_svs_updirpa; - paddr_t ci_svs_kpdirpa; + paddr_t ci_unused; kmutex_t ci_svs_mtx; pd_entry_t * ci_svs_rsp0_pte; vaddr_t ci_svs_rsp0; Index: src/sys/arch/x86/x86/cpu.c diff -u src/sys/arch/x86/x86/cpu.c:1.168 src/sys/arch/x86/x86/cpu.c:1.169 --- src/sys/arch/x86/x86/cpu.c:1.168 Sat Mar 9 08:42:26 2019 +++ src/sys/arch/x86/x86/cpu.c Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.168 2019/03/09 08:42:26 maxv Exp $ */ +/* $NetBSD: cpu.c,v 1.169 2019/05/27 17:32:36 maxv Exp $ */ /* * Copyright (c) 2000-2012 NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.168 2019/03/09 08:42:26 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.169 2019/05/27 17:32:36 maxv Exp $"); #include "opt_ddb.h" #include "opt_mpbios.h" /* for MPDEBUG */ @@ -584,15 +584,12 @@ cpu_init(struct cpu_info *ci) lcr0(rcr0() | CR0_WP); - /* - * On a P6 or above, enable global TLB caching if the - * hardware supports it. - */ + /* If global TLB caching is supported, enable it */ if (cpu_feature[0] & CPUID_PGE) #ifdef SVS if (!svs_enabled) #endif - cr4 |= CR4_PGE; /* enable global TLB caching */ + cr4 |= CR4_PGE; /* * If we have FXSAVE/FXRESTOR, use them. Index: src/sys/arch/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.331 src/sys/arch/x86/x86/pmap.c:1.332 --- src/sys/arch/x86/x86/pmap.c:1.331 Tue Mar 12 08:29:52 2019 +++ src/sys/arch/x86/x86/pmap.c Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.331 2019/03/12 08:29:52 gson Exp $ */ +/* $NetBSD: pmap.c,v 1.332 2019/05/27 17:32:36 maxv Exp $ */ /* * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc. @@ -130,7 +130,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.331 2019/03/12 08:29:52 gson Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.332 2019/05/27 17:32:36 maxv Exp $"); #include "opt_user_ldt.h" #include "opt_lockdebug.h" @@ -1116,15 +1116,14 @@ pmap_bootstrap(vaddr_t kva_start) #if !defined(XENPV) /* - * Begin to enable global TLB entries if they are supported. - * The G bit has no effect until the CR4_PGE bit is set in CR4, - * which happens in cpu_init(), which is run on each cpu - * (and happens later) + * Begin to enable global TLB entries if they are supported: add PTE_G + * attribute to already mapped kernel pages. + * + * The G bit has no effect until the CR4_PGE bit is set in CR4, which + * happens later in cpu_init(). */ if (cpu_feature[0] & CPUID_PGE) { - pmap_pg_g = PTE_G; /* enable software */ - - /* add PTE_G attribute to already mapped kernel pages */ + pmap_pg_g = PTE_G; pmap_remap_global(); } #endif Index: src/sys/arch/x86/x86/svs.c diff -u src/sys/arch/x86/x86/svs.c:1.26 src/sys/arch/x86/x86/svs.c:1.27 --- src/sys/arch/x86/x86/svs.c:1.26 Wed May 15 17:31:41 2019 +++ src/sys/arch/x86/x86/svs.c Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: svs.c,v 1.26 2019/05/15 17:31:41 maxv Exp $ */ +/* $NetBSD: svs.c,v 1.27 2019/05/27 17:32:36 maxv Exp $ */ /* * Copyright (c) 2018-2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svs.c,v 1.26 2019/05/15 17:31:41 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svs.c,v 1.27 2019/05/27 17:32:36 maxv Exp $"); #include "opt_svs.h" @@ -432,8 +432,6 @@ cpu_svs_init(struct cpu_info *ci) pmap_update(pmap_kernel()); - ci->ci_svs_kpdirpa = pmap_pdirpa(pmap_kernel(), 0); - mutex_init(&ci->ci_svs_mtx, MUTEX_DEFAULT, IPL_VM); svs_page_add(ci, (vaddr_t)&pcpuarea->idt); @@ -547,11 +545,9 @@ svs_pdir_switch(struct pmap *pmap) KASSERT(kpreempt_disabled()); KASSERT(pmap != pmap_kernel()); - ci->ci_svs_kpdirpa = pmap_pdirpa(pmap, 0); - /* Update the info in the UTLS page */ utls = (struct svs_utls *)ci->ci_svs_utls; - utls->kpdirpa = ci->ci_svs_kpdirpa; + utls->kpdirpa = pmap_pdirpa(pmap, 0); mutex_enter(&ci->ci_svs_mtx); Index: src/sys/arch/x86/x86/x86_tlb.c diff -u src/sys/arch/x86/x86/x86_tlb.c:1.7 src/sys/arch/x86/x86/x86_tlb.c:1.8 --- src/sys/arch/x86/x86/x86_tlb.c:1.7 Sun Apr 21 06:37:21 2019 +++ src/sys/arch/x86/x86/x86_tlb.c Mon May 27 17:32:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: x86_tlb.c,v 1.7 2019/04/21 06:37:21 maxv Exp $ */ +/* $NetBSD: x86_tlb.c,v 1.8 2019/05/27 17:32:36 maxv Exp $ */ /*- * Copyright (c) 2008-2012 The NetBSD Foundation, Inc. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: x86_tlb.c,v 1.7 2019/04/21 06:37:21 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: x86_tlb.c,v 1.8 2019/05/27 17:32:36 maxv Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -200,10 +200,10 @@ pmap_tlb_invalidate(const pmap_tlb_packe /* Find out what we need to invalidate. */ if (tp->tp_count == (uint16_t)-1) { if (tp->tp_pte & PTE_G) { - /* Invalidating user and kernel TLB entries. */ + /* Invalidating all TLB entries. */ tlbflushg(); } else { - /* Invalidating user TLB entries only. */ + /* Invalidating non-global TLB entries only. */ tlbflush(); } } else {