Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/vax/vax Call uvm_pageidlezero() in idle loop.
details: https://anonhg.NetBSD.org/src/rev/943c819c476c
branches: trunk
changeset: 485579:943c819c476c
user: ragge <ragge%NetBSD.org@localhost>
date: Mon May 01 12:11:50 2000 +0000
description:
Call uvm_pageidlezero() in idle loop.
diffstat:
sys/arch/vax/vax/genassym.cf | 8 +++++++-
sys/arch/vax/vax/subr.s | 21 ++++++++++++++++-----
2 files changed, 23 insertions(+), 6 deletions(-)
diffs (80 lines):
diff -r d8817ab725af -r 943c819c476c sys/arch/vax/vax/genassym.cf
--- a/sys/arch/vax/vax/genassym.cf Mon May 01 12:09:32 2000 +0000
+++ b/sys/arch/vax/vax/genassym.cf Mon May 01 12:11:50 2000 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.12 2000/04/22 17:05:07 ragge Exp $
+# $NetBSD: genassym.cf,v 1.13 2000/05/01 12:11:50 ragge Exp $
#
# Copyright (c) 1997 Ludd, University of Lule}, Sweden.
# All rights reserved.
@@ -38,6 +38,10 @@
include <net/netisr.h>
+include <vm/vm.h>
+include <uvm/uvm.h>
+include <uvm/uvm_extern.h>
+
include <machine/mtpr.h>
include <machine/pcb.h>
include <machine/sid.h>
@@ -59,6 +63,8 @@
define KERNBASE KERNBASE
+define UVM_PAGE_IDLE_ZERO offsetof(struct uvm, page_idle_zero)
+
ifdef MULTIPROCESSOR
# Multiprocessor struct members
define CI_CURPROC offsetof(struct cpu_info, ci_curproc)
diff -r d8817ab725af -r 943c819c476c sys/arch/vax/vax/subr.s
--- a/sys/arch/vax/vax/subr.s Mon May 01 12:09:32 2000 +0000
+++ b/sys/arch/vax/vax/subr.s Mon May 01 12:11:50 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: subr.s,v 1.35 2000/03/19 14:56:54 ragge Exp $ */
+/* $NetBSD: subr.s,v 1.36 2000/05/01 12:11:50 ragge Exp $ */
/*
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -211,7 +211,7 @@
movl 4(r1), fp
movl 12(r1), sp
jmp *8(r1)
-#endif
+#endif
#
# setrunqueue/remrunqueue fast variants.
@@ -250,7 +250,11 @@
# pi or something.
#
idle: mtpr $0,$PR_IPL # Enable all types of interrupts
-1: tstl _whichqs # Anything ready to run?
+1: movab _uvm,r0
+ tstl UVM_PAGE_IDLE_ZERO(r0)
+ beql 2f
+ calls $0,_uvm_pageidlezero
+2: tstl _whichqs # Anything ready to run?
beql 1b # no, continue to loop
brb Swtch # Yes, goto switch again.
@@ -364,10 +368,17 @@
.word 0
movl 4(ap),r4 # from
movl 8(ap),r5 # to
+ movl 16(ap),r3 # copied
movl 12(ap),r2 # len
- movl 16(ap),r3 # copied
- movab 2f,*pcbtrap
+ bneq 0f # zero length?
+ tstl r3
+ beql 1f # Save zero length?
+ clrl (r3)
+1: clrl r0
+ ret
+
+0: movab 2f,*pcbtrap
/*
* This routine consists of two parts: One is for MV2 that doesn't have
Home |
Main Index |
Thread Index |
Old Index