From owner-freebsd-smp Sat Sep 6 19:44:13 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id TAA21039 for smp-outgoing; Sat, 6 Sep 1997 19:44:13 -0700 (PDT) Received: from Ilsa.StevesCafe.com (Ilsa.StevesCafe.com [205.168.119.129]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id TAA20996; Sat, 6 Sep 1997 19:44:01 -0700 (PDT) Received: from Ilsa.StevesCafe.com (localhost [127.0.0.1]) by Ilsa.StevesCafe.com (8.8.7/8.8.5) with ESMTP id UAA23614; Sat, 6 Sep 1997 20:43:59 -0600 (MDT) Message-Id: <199709070243.UAA23614@Ilsa.StevesCafe.com> X-Mailer: exmh version 2.0gamma 1/27/96 From: Steve Passe To: smp@freebsd.org cc: current@freebsd.org Subject: FIXED: Fatal trap 12 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 06 Sep 1997 20:43:59 -0600 Sender: owner-freebsd-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi, John found and fixed the "Fatal trap 12" bug in SMP. It fixes the problem for both his and my test cases. The fix has been committed to freefall. For the impatient behind slow mirrors, the patch: ------------------------------------ cut ------------------------------------ *** pmap.c.orig 1997/09/07 01:55:48 --- pmap.c 1997/09/07 01:55:57 *************** *** 1464,1470 **** pdir_pde(PTD, kernel_vm_end) = (pd_entry_t) (VM_PAGE_TO_PHYS(nkp g) | PG_V | PG_RW | pgeflag); #ifdef SMP ! for (i = 0; i < mp_naps; i++) { if (IdlePTDS[i]) pdir_pde(IdlePTDS[i], kernel_vm_end) = (pd_entry _t) (VM_PAGE_TO_PHYS(nkpg) | PG_V | PG_RW | pgeflag); } --- 1464,1470 ---- pdir_pde(PTD, kernel_vm_end) = (pd_entry_t) (VM_PAGE_TO_PHYS(nkp g) | PG_V | PG_RW | pgeflag); #ifdef SMP ! for (i = 0; i < mp_ncpus; i++) { if (IdlePTDS[i]) pdir_pde(IdlePTDS[i], kernel_vm_end) = (pd_entry _t) (VM_PAGE_TO_PHYS(nkpg) | PG_V | PG_RW | pgeflag); } ------------------------------------ cut ------------------------------------ -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD