Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Mar 2000 22:10:26 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Kenneth Wayne Culver <culverk@wam.umd.edu>
Cc:        Geoff Rehmet <geoffr@is.co.za>, Gary Jennejohn <garyj@muc.de>, freebsd-current@FreeBSD.ORG
Subject:   Re: UP kernel performance and Matt Dillon's patches
Message-ID:  <200003290610.WAA57338@apollo.backplane.com>
References:   <Pine.GSO.4.21.0003290038260.27361-100000@rac5.wam.umd.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:Yeah, I was wrong before.. I just had to really hit the system hard before
:I noticed this behavior... it get's pretty bad... the mouse get's jumpy,
:and the keyboard input is really slow... 
:
:=================================================================
:| Kenneth Culver              | FreeBSD: The best OS around.    |

   I definitely blew the need_resched stuff.

   I found it.  I was clearing the 'astpending' variable in doreti, which
   used to be just fine, but now that we have two flags in it instead of
   one it was clearing the need-resched flag bit as well as the astpending
   flag bit.

   If you don't want to wait, here it is (it's really the last bit that
   fixes the problem.  The first two bits are incidental).

   I've committed the fix.  I would appreciate others testing it as well. 
   It seems to solve the problem I was able to reproduce on my systems.

Index: isa/ipl.s
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/ipl.s,v
retrieving revision 1.33
diff -u -r1.33 ipl.s
--- isa/ipl.s	2000/03/28 07:16:23	1.33
+++ isa/ipl.s	2000/03/29 06:00:29
@@ -123,10 +123,10 @@
 	andl	_ipending,%ecx		/* set bit = unmasked pending INT */
 	jne	doreti_unpend
 	movl	%eax,_cpl
-	MPLOCKED decb _intr_nesting_level
+	decb	_intr_nesting_level
 
 	/* Check for ASTs that can be handled now. */
-	cmpb	$0,_astpending
+	cmpl	$0,_astpending
 	je	doreti_exit
 	testb	$SEL_RPL_MASK,TF_CS(%esp)
 	jne	doreti_ast
@@ -271,7 +271,7 @@
 
 	ALIGN_TEXT
 doreti_ast:
-	movl	$0,_astpending
+	andl	$~AST_PENDING,_astpending
 	sti
 	movl	$T_ASTFLT,TF_TRAPNO(%esp)
 	call	_trap


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003290610.WAA57338>