Module Name: src Committed By: rin Date: Sat May 7 06:53:16 UTC 2022
Modified Files: src/sys/uvm/pmap: pmap.c pmap.h pmap_pvt.c Log Message: Introduce PMAP_PV_TRACK_ONLY_STUBS option, by which only empty stubs for global functions in pmap_pvt.h are provided, instead of real support for PV tracking. Necessary for powerpc: Only one sub-arch (oea) has PV tracking support. Others (booke/ibm4xx) do not at the moment (probably never for ibm4xx), but __HAVE_PMAP_PV_TRACK is necessary, so that modules can be shared by all of sub-archs. To generate a diff of this commit: cvs rdiff -u -r1.64 -r1.65 src/sys/uvm/pmap/pmap.c cvs rdiff -u -r1.20 -r1.21 src/sys/uvm/pmap/pmap.h cvs rdiff -u -r1.11 -r1.12 src/sys/uvm/pmap/pmap_pvt.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/uvm/pmap/pmap.c diff -u src/sys/uvm/pmap/pmap.c:1.64 src/sys/uvm/pmap/pmap.c:1.65 --- src/sys/uvm/pmap/pmap.c:1.64 Sat Apr 9 23:38:33 2022 +++ src/sys/uvm/pmap/pmap.c Sat May 7 06:53:16 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.64 2022/04/09 23:38:33 riastradh Exp $ */ +/* $NetBSD: pmap.c,v 1.65 2022/05/07 06:53:16 rin Exp $ */ /*- * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.64 2022/04/09 23:38:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.65 2022/05/07 06:53:16 rin Exp $"); /* * Manages physical address maps. @@ -120,6 +120,10 @@ __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.6 PMAP_NO_PV_UNCACHED to be defined #endif +#if defined(PMAP_PV_TRACK_ONLY_STUBS) +#undef __HAVE_PMAP_PV_TRACK +#endif + PMAP_COUNTER(remove_kernel_calls, "remove kernel calls"); PMAP_COUNTER(remove_kernel_pages, "kernel pages unmapped"); PMAP_COUNTER(remove_user_calls, "remove user calls"); Index: src/sys/uvm/pmap/pmap.h diff -u src/sys/uvm/pmap/pmap.h:1.20 src/sys/uvm/pmap/pmap.h:1.21 --- src/sys/uvm/pmap/pmap.h:1.20 Fri Mar 19 07:51:33 2021 +++ src/sys/uvm/pmap/pmap.h Sat May 7 06:53:16 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.20 2021/03/19 07:51:33 skrll Exp $ */ +/* $NetBSD: pmap.h,v 1.21 2022/05/07 06:53:16 rin Exp $ */ /* * Copyright (c) 1992, 1993 @@ -203,7 +203,7 @@ void pmap_pvlist_lock_init(size_t); void pmap_page_cache(struct vm_page_md *, bool); #endif -#ifdef __HAVE_PMAP_PV_TRACK +#if defined(__HAVE_PMAP_PV_TRACK) && !defined(PMAP_PV_TRACK_ONLY_STUBS) void pmap_pv_protect(paddr_t, vm_prot_t); #endif Index: src/sys/uvm/pmap/pmap_pvt.c diff -u src/sys/uvm/pmap/pmap_pvt.c:1.11 src/sys/uvm/pmap/pmap_pvt.c:1.12 --- src/sys/uvm/pmap/pmap_pvt.c:1.11 Wed Jul 21 06:35:45 2021 +++ src/sys/uvm/pmap/pmap_pvt.c Sat May 7 06:53:16 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_pvt.c,v 1.11 2021/07/21 06:35:45 skrll Exp $ */ +/* $NetBSD: pmap_pvt.c,v 1.12 2022/05/07 06:53:16 rin Exp $ */ /*- * Copyright (c) 2014, 2020 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pmap_pvt.c,v 1.11 2021/07/21 06:35:45 skrll Exp $"); +__RCSID("$NetBSD: pmap_pvt.c,v 1.12 2022/05/07 06:53:16 rin Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -40,6 +40,7 @@ __RCSID("$NetBSD: pmap_pvt.c,v 1.11 2021 #include <uvm/uvm.h> #include <uvm/pmap/pmap_pvt.h> +#if !defined(PMAP_PV_TRACK_ONLY_STUBS) /* * unmanaged pv-tracked ranges * @@ -177,3 +178,33 @@ pmap_pv_tracked(paddr_t pa) return &pvt->pvt_pages[pgno]; } +#else /* PMAP_PV_TRACK_ONLY_STUBS */ +/* + * Provide empty stubs just for MODULAR kernels. + */ + +void +pmap_pv_init(void) +{ + +} + +void +pmap_pv_track(paddr_t start, psize_t size) +{ + +} + +void +pmap_pv_untrack(paddr_t start, psize_t size) +{ + +} + +struct pmap_page * +pmap_pv_tracked(paddr_t pa) +{ + + return NULL; +} +#endif