Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/alpha The only remaining consumer of curpcb was the...



details:   https://anonhg.NetBSD.org/src/rev/f07c360ebf19
branches:  trunk
changeset: 943423:f07c360ebf19
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Thu Sep 03 04:18:30 2020 +0000

description:
The only remaining consumer of curpcb was the PROM mapping code, for if
PROM console routines are being used (only on KN8AE).  We have access to
the sam information via curlwp, so use that, and eliminate the need to set
cpu_info::ci_curpcb when context switching, which saves an extra all into
PALcode.

diffstat:

 sys/arch/alpha/alpha/genassym.cf |   3 +--
 sys/arch/alpha/alpha/locore.s    |   8 ++------
 sys/arch/alpha/alpha/prom.c      |  11 ++++++-----
 sys/arch/alpha/include/asm.h     |   8 +-------
 4 files changed, 10 insertions(+), 20 deletions(-)

diffs (120 lines):

diff -r 18b193844dd3 -r f07c360ebf19 sys/arch/alpha/alpha/genassym.cf
--- a/sys/arch/alpha/alpha/genassym.cf  Thu Sep 03 02:09:09 2020 +0000
+++ b/sys/arch/alpha/alpha/genassym.cf  Thu Sep 03 04:18:30 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.22 2020/02/20 08:27:38 skrll Exp $
+# $NetBSD: genassym.cf,v 1.23 2020/09/03 04:18:30 thorpej Exp $
 
 #
 # Copyright (c) 1982, 1990, 1993
@@ -187,6 +187,5 @@
 
 # CPU info
 define CPU_INFO_CURLWP         offsetof(struct cpu_info, ci_curlwp)
-define CPU_INFO_CURPCB         offsetof(struct cpu_info, ci_curpcb)
 define CPU_INFO_IDLE_LWP       offsetof(struct cpu_info, ci_data.cpu_idlelwp)
 define CPU_INFO_SIZEOF         sizeof(struct cpu_info)
diff -r 18b193844dd3 -r f07c360ebf19 sys/arch/alpha/alpha/locore.s
--- a/sys/arch/alpha/alpha/locore.s     Thu Sep 03 02:09:09 2020 +0000
+++ b/sys/arch/alpha/alpha/locore.s     Thu Sep 03 04:18:30 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.126 2020/09/03 02:09:09 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.127 2020/09/03 04:18:30 thorpej Exp $ */
 
 /*-
  * Copyright (c) 1999, 2000, 2019 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 
 #include <machine/asm.h>
 
-__KERNEL_RCSID(0, "$NetBSD: locore.s,v 1.126 2020/09/03 02:09:09 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.s,v 1.127 2020/09/03 04:18:30 thorpej Exp $");
 
 #include "assym.h"
 
@@ -78,10 +78,6 @@
  * hwpcb should be in a0.  Clobbers v0, t0, t8..t11, a0.
  */
 #define        SWITCH_CONTEXT                                                  \
-       /* Make a note of the context we're running on. */              \
-       GET_CURPCB                                              ;       \
-       stq     a0, 0(v0)                                       ;       \
-                                                                       \
        /* Swap in the new context. */                                  \
        call_pal PAL_OSF1_swpctx
 
diff -r 18b193844dd3 -r f07c360ebf19 sys/arch/alpha/alpha/prom.c
--- a/sys/arch/alpha/alpha/prom.c       Thu Sep 03 02:09:09 2020 +0000
+++ b/sys/arch/alpha/alpha/prom.c       Thu Sep 03 04:18:30 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: prom.c,v 1.54 2020/09/03 02:09:09 thorpej Exp $ */
+/* $NetBSD: prom.c,v 1.55 2020/09/03 04:18:30 thorpej Exp $ */
 
 /*
  * Copyright (c) 1992, 1994, 1995, 1996 Carnegie Mellon University
@@ -27,7 +27,7 @@
 
 #include <sys/cdefs.h>                 /* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: prom.c,v 1.54 2020/09/03 02:09:09 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: prom.c,v 1.55 2020/09/03 04:18:30 thorpej Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -77,7 +77,8 @@
        /*
         * Find the level 1 map that we're currently running on.
         */
-       apcb = (struct alpha_pcb *)ALPHA_PHYS_TO_K0SEG(curpcb);
+       apcb = (struct alpha_pcb *))
+           ALPHA_PHYS_TO_K0SEG((paddr_t)curlwp->l_md.md_pcbpaddr);
 
        return ((pt_entry_t *)ALPHA_PHYS_TO_K0SEG(apcb->apcb_ptbr << PGSHIFT));
 }
@@ -186,7 +187,7 @@
         * (i.e. the first one after alpha_init()), then the PROM
         * is still mapped, regardless of the `prom_mapped' setting.
         */
-       if (prom_mapped == 0 && curpcb != 0) {
+       if (! prom_mapped) {
                if (!prom_uses_prom_console())
                        panic("prom_enter");
                {
@@ -209,7 +210,7 @@
        /*
         * See comment above.
         */
-       if (prom_mapped == 0 && curpcb != 0) {
+       if (! prom_mapped) {
                if (!prom_uses_prom_console())
                        panic("prom_leave");
                {
diff -r 18b193844dd3 -r f07c360ebf19 sys/arch/alpha/include/asm.h
--- a/sys/arch/alpha/include/asm.h      Thu Sep 03 02:09:09 2020 +0000
+++ b/sys/arch/alpha/include/asm.h      Thu Sep 03 04:18:30 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: asm.h,v 1.39 2020/08/29 22:50:27 thorpej Exp $ */
+/* $NetBSD: asm.h,v 1.40 2020/09/03 04:18:30 thorpej Exp $ */
 
 /*
  * Copyright (c) 1991,1990,1989,1994,1995,1996 Carnegie Mellon University
@@ -675,10 +675,6 @@
        call_pal PAL_OSF1_rdval                                 ;       \
        addq    v0, CPU_INFO_FPCURLWP, v0
 
-#define        GET_CURPCB                                                      \
-       call_pal PAL_OSF1_rdval                                 ;       \
-       addq    v0, CPU_INFO_CURPCB, v0
-
 #else  /* if not MULTIPROCESSOR... */
 
 IMPORT(cpu_info_primary, CPU_INFO_SIZEOF)
@@ -688,8 +684,6 @@
 #define        GET_CURLWP              lda v0, cpu_info_primary + CPU_INFO_CURLWP
 
 #define        GET_FPCURLWP            lda v0, cpu_info_primary + CPU_INFO_FPCURLWP
-
-#define        GET_CURPCB              lda v0, cpu_info_primary + CPU_INFO_CURPCB
 #endif /* MULTIPROCESSOR */
 #else
 #define        RCSID(_s)               __SECTIONSTRING(.ident, _s)



Home | Main Index | Thread Index | Old Index