From owner-freebsd-current Sun Jun 9 14:36: 5 2002 Delivered-To: freebsd-current@freebsd.org Received: from sharmas.dhs.org (cpe-66-1-147-119.ca.sprintbbd.net [66.1.147.119]) by hub.freebsd.org (Postfix) with ESMTP id 6A20437B401; Sun, 9 Jun 2002 14:35:54 -0700 (PDT) Received: by sharmas.dhs.org (Postfix, from userid 500) id 939965E003; Sun, 9 Jun 2002 14:36:51 -0700 (PDT) Date: Sun, 9 Jun 2002 14:36:51 -0700 From: Arun Sharma To: freebsd-current@freebsd.org Cc: freebsd-smp@freebsd.org Subject: Page faults in kernel mode Message-ID: <20020609213651.GA5956@sharma-home.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.27i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Running on a dual celeron box. CPU: Pentium II/Pentium II Xeon/Celeron (367.50-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x665 Stepping = 5 Features=0x183fbff real memory = 201326592 (196608K bytes) avail memory = 191365120 (186880K bytes) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): apic id: 0, version: 0x00040011, at 0xfee00000 cpu1 (AP): apic id: 1, version: 0x00040011, at 0xfee00000 io0 (APIC): apic id: 2, version: 0x00170011, at 0xfec00000 1. While running background fsck alone: fatal trap 12: page fault while in kernel mode cpuid = 1; lapic.id = 01000000 fault virtual address = 0xc9d65e90 fault code = supervisor write, page not present instruction pointer = 0x8:0xc01aee6c stack pointer = 0x10:0xcaafe9a4 frame pointer = 0x10:0xcaafe9b0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 155 (syslogd) kernel: type 12 trap, code=0 Stopped at _mtx_lock_flags+0x3e: lock cmpxchgl %edx,0x1c(%ebx) db> trace _mtx_lock_flags(c9d65e74,0,c02f31e0,6da,cabb5034) at _mtx_lock_flags+0x3e vref(c9d65e00,cabb5034,0,c02f2f40,98) at vref+0x1d namei(caafec10) at namei+0x17d vn_open_cred(caafec10,caafeb64,1a4,c98fe100,caafecec) at vn_open_cred+0x238 vn_open(caafec10,caafeb64,1a4,c01aeef3,cac6dac8) at vn_open+0x1b open(caadea54,caafed14,3,59,296) at open+0x155 syscall(2f,bfbf002f,bfbf002f,4,2811afa0) at syscall+0x1db syscall_with_err_pushed() at syscall_with_err_pushed+0x1b --- syscall (5, FreeBSD ELF, open), eip = 0x280a8c73, esp = 0xbfbfe78c, ebp = 0- 2. background fsck + two processes running find / panic: blockable sleep lock (sleep mutex) process lock @ /usr.current/src/sys/i1 cpuid = 0; lapic.id = 00000000 Debugger("panic") Couldn't get any more information on the exact filename from ddb. 3. Running two copies of find / alone: Debugger(c02ea41a) at Debugger+0x46 panic(c02edc20,c02e9380,c02e7400,c030e420,2c7) at panic+0xd1 witness_lock(cb081818,8,c030e420,2c7,1) at witness_lock+0x7f _mtx_lock_flags(cb081818,0,c030e420,2c7,cb081738) at _mtx_lock_flags+0x6a trap_pfault(cb0bb8fc,0,64) at trap_pfault+0x92 trap(c02e0018,cb0b0010,c01a0010,c9d65b74,6a9) at trap+0x32b calltrap() at calltrap+0x5 --- trap 0xc, eip = 0xc01af1bf, esp = 0xcb0bb93c, ebp = 0xcb0bb950 --- _mtx_lock_sleep(c9d65b74,0,c02f31e0,6a9) at _mtx_lock_sleep+0x121 _mtx_lock_flags(c9d65b74,0,c02f31e0,6a9) at _mtx_lock_flags+0x58 vget(c9d65b00,2,cb081738,0,cb081738) at vget+0x28 vfs_cache_lookup(cb0bba74,cb0bbaa0,c01efc94,cb0bba74,cb081738) at vfs_cache_loo9 ufs_vnoperate(cb0bba74) at ufs_vnoperate+0x13 lookup(cb0bbc90,cb081738,cada5400,0,cb081738) at lookup+0x2b2 namei(cb0bbc90,0,cb0bbb20,c01af023,c0327ea0) at namei+0x1df execve(cb081738,cb0bbd14,3,1,297) at execve+0x19a syscall(2f,2f,2f,812e0b6,812e050) at syscall+0x1db syscall_with_err_pushed() at syscall_with_err_pushed+0x1b --- syscall (59, FreeBSD ELF, execve), eip = 0x80a6e80, esp = 0xbfbff9c8, ebp =- This sounds like a variant of (1). 4. More page faults in kernel mode: Fatal trap 12: page fault while in kernel mode cpuid = 1; lapic.id = 01000000 fault virtual address = 0xc9d65014 fault code = supervisor read, page not present instruction pointer = 0x8:0xc01f32d3 stack pointer = 0x10:0xc9d54c68 frame pointer = 0x10:0xc9d54c9c code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 7 (syncer) Also, in ddb, show map /f prints a never ending list of map objects. Is that normal or is my list corrupted somehow ? -Arun To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message