From owner-FreeBSD-tech-jp@jp.freebsd.org  Mon Apr 20 12:17:40 1998
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) id MAA07834
	Mon, 20 Apr 1998 12:17:40 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) with ESMTP id MAA07824
	for <FreeBSD-tech-jp@jp.freebsd.org>; Mon, 20 Apr 1998 12:17:39 +0900 (JST)
Received: from localhost (localhost [127.0.0.1])
	by gneiss.eps.nagoya-u.ac.jp (8.8.8/3.6Wbeta7) with ESMTP id MAA01219
	for <FreeBSD-tech-jp@jp.freebsd.org>; Mon, 20 Apr 1998 12:17:38 +0900 (JST)
To: FreeBSD-tech-jp@jp.freebsd.org
From: KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp>
X-Mailer: Mew version 1.92.4 on Emacs 19.28 / Mule 2.3 (SUETSUMUHANA)
X-PGP-Fingerprint: 03 72 85 36 62 46 23 03  52 B1 10 22 44 10 0D 9E
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19980420121738A.kato@gneiss.eps.nagoya-u.ac.jp>
Date: Mon, 20 Apr 1998 12:17:38 +0900
X-Dispatcher: imput version 971024
Lines: 110
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-tech-jp 1412
Subject: [FreeBSD-tech-jp 1412] PC-9821 Ra20 signal 11 problem
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

$B2CF#!wL>Bg4d9[$G$9!%$H$j$"$($:(Btech$B$@$1!%(B


$B$:$$$V$sA0$K(BPC-9821 Ra20$B$G(B2.2$B0J9_$N%+!<%M%k$r%$%s%9%H!<%k$9$k$H(Bsignal
11$BLdBj$G$R$I$$L\$K$"$&OC$,$"$j$^$7$?$,!$$H$j$"$($:$N%Q%C%A$r:n$j$^$7$?!%(B

PC-9821 Ra20$B$N(BITF(BIOS$B$H8@$C$?$[$&$,(BIBM-PC$B$N?M$K$O$o$+$j$d$9$$(B)$B$,8E$$(B
$B>e$K%P!<%8%g%s%"%C%W$G$-$J$$$?$a!$=P2Y8e$K(BIntel$B$,(Bspecification update
$B$H$7$F8x3+$7$?(Berrat$B$H$=$N(Bfix$B$"$k$$$O(Bworkaround$B$,H?1G$5$l$F$$$J$$$h$&$G(B
$B$9!%(B

signal 11$B$,IQH/$9$k$N$O!$$I$&$b(Binvlpg$B$N%P%0$N$h$&$G!$(BsB1$B%9%F%C%T%s%00J(B
$B>e$N(BP6$B$G$OH/@8$7$J$$$N$G$O$J$$$G$7$g$&$+!)(B

$B$=$l$G!$(Bcurrent$BMQ$N%Q%C%A$r:n$j$^$7$?!%$?$@$7!$$3$l$O$H$j$"$($:$N%Q%C(B
$B%A$G!$K\Ev$O(BMTRR$B$N(Bmask$B%l%8%9%?$r$$$8$k$h$&$K$7$J$1$l$P$J$i$J$$$N$G$9$,!$(B
$B$=$NJ}K!$,$o$+$j$^$;$s!%(BMSR$B$r;H$&$i$7$$$H8@$&$H$3$m$^$G$O$o$+$C$?$N$G(B
$B$9$,!$$I$J$?$+>pJs$,$"$l$P65$($F$/$@$5$$!%(B


---------- BEGIN ----------
*** pmap.c.orig	Mon Apr 20 12:05:28 1998
--- pmap.c	Mon Apr 20 12:05:38 1998
***************
*** 359,365 ****
  
  
  	pgeflag = 0;
! #if !defined(SMP)
  	if (cpu_feature & CPUID_PGE) {
  		pgeflag = PG_G;
  	}
--- 359,365 ----
  
  
  	pgeflag = 0;
! #if !defined(SMP) && !defined(CPU_BROKEN_INVLPG)
  	if (cpu_feature & CPUID_PGE) {
  		pgeflag = PG_G;
  	}
***************
*** 619,625 ****
--- 619,629 ----
  	} else
  #endif
  	{
+ #ifdef CPU_BROKEN_INVLPG
+ 		invltlb();
+ #else
  		invlpg(va);
+ #endif
  	}
  }
  
***************
*** 631,638 ****
--- 635,646 ----
  	} else
  #endif
  	{
+ #ifdef CPU_BROKEN_INVLPG
+ 		invltlb();
+ #else
  		invlpg(va1);
  		invlpg(va2);
+ #endif
  	}
  }
  
***************
*** 891,897 ****
--- 899,907 ----
  		*(ptek + i) = VM_PAGE_TO_PHYS(m) | PG_RW | PG_V | pgeflag;
  		if (oldpte) {
  			if ((oldpte & PG_G) || (cpu_class > CPUCLASS_386)) {
+ #ifndef CPU_BROKEN_INVLPG
  				invlpg((vm_offset_t) up + i * PAGE_SIZE);
+ #endif
  			} else {
  				updateneeded = 1;
  			}
***************
*** 931,944 ****
--- 941,959 ----
  
  		oldpte = *(ptek + i);
  		*(ptek + i) = 0;
+ #ifndef CPU_BROKEN_INVLPG
  		if ((oldpte & PG_G) || (cpu_class > CPUCLASS_386))
  			invlpg((vm_offset_t) p->p_addr + i * PAGE_SIZE);
+ #endif
  		vm_page_unwire(m);
  		vm_page_free(m);
  	}
  
  	if (cpu_class <= CPUCLASS_386)
  		invltlb();
+ #ifdef CPU_BROKEN_INVLPG
+ 	invltlb();
+ #endif
  }
  
  /*
---------- END ----------

-----------------------------------------------+--------------------------+
Kato Takenori <kato@ganko.eps.nagoya-u.ac.jp>  |        FreeBSD           |
Dept. Earth Planet. Sci, Nagoya Univ.          |   The powere to serve!   |
Nagoya, 464-8602, Japan                        |  http://www.FreeBSD.org/ |
++++ FreeBSD(98) 2.2.6: Rev. 1 available!      +==========================+
