From owner-freebsd-stable@FreeBSD.ORG Tue Apr 12 03:59:58 2005 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DBC7D16A4CE for ; Tue, 12 Apr 2005 03:59:57 +0000 (GMT) Received: from mail.distrust.net (mail.distrust.net [69.93.230.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95AB943D5F for ; Tue, 12 Apr 2005 03:59:57 +0000 (GMT) (envelope-from dsze@alumni.uwaterloo.ca) Received: from eeyore.distrust.net (CPE00a0c978120d-CM00122570472e.cpe.net.cable.rogers.com [70.24.0.197]) (authenticated bits=0) by mail.distrust.net (8.13.1/8.12.11) with ESMTP id j3C3xqfC044905 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 11 Apr 2005 22:59:56 -0500 (CDT) (envelope-from dsze@alumni.uwaterloo.ca) Message-Id: <6.2.1.2.2.20050411234713.069afb28@mail.distrust.net> X-Mailer: QUALCOMM Windows Eudora Version 6.2.1.2 Date: Tue, 12 Apr 2005 00:00:04 -0400 To: Scott Long From: David Sze In-Reply-To: <425A0BB2.10704@samsco.org> References: <4257F20C.70004@samsco.org> <6.2.1.2.2.20050411005214.065dc018@mail.distrust.net> <425A0BB2.10704@samsco.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: ClamAV 0.83/820/Mon Apr 11 14:46:51 2005 on mail.distrust.net X-Virus-Status: Clean cc: Anthony Downer cc: stable@freebsd.org cc: mb@imp.ch Subject: Re: [PATCH] Stability fixes for IPS driver for 4.x X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Apr 2005 03:59:58 -0000 At 11:31 PM 10/04/2005 -0600, Scott Long wrote this to All: >Making a driver PAE-ified means either teaching it to do 64-bit >scatter-gather (assuming that the peripheral hardware can do this >and that it's documented), or teaching the driver to correctly handle >EINPROGRESS from bus_dmamap_load() along with using the proper busdma >tag limits. The strategy I took with 6.x/5.x was the second one since >I didn't have good IPS docs in front of me and I wanted it follow the >APIs correctly. I did test it with 8GB of memory and it performed >correctly under load. I haven't taken a close enough look at your >MFC patch to say for sure if it's correct or not. I'm not sure if >I'll have time to take another look in the next few days, unfortunately. >Is there any chance you could test 5.x/6.0 under load with PAE just to >validate the assertion that it works correctly there? I had a chance to test 5.4-RC1 (i386) today with GENERIC, SMP, PAE, and SMP-PAE kernels (the last one is just PAE with "options SMP"). To recap, the hardware is an IBM xSeries 346, Dual Xeon 3GHz (non-E64MT), ServeRAID-7K. GENERIC and SMP survived "make buildkernel", but PAE and SMP-PAE paniced reproducibly doing the same. The DDB stack trace doesn't appear to be anywhere near the IPS driver though, so I'm way out of my league. ========== PAE panic kernel trap 12 with interrupts disabled Fatal trap 12: page fault while in kernel mode fault virtual address = 0x24 fault code = supervisor read, page not present instruction pointer = 0x8:0xc03d48eb stack pointer = 0x10:0xeb133b28 frame pointer = 0x10:0xeb133b3c code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = resume, IOPL = 0 current process = 146 (syncer) [thread pid 146 tid 100157 ] Stopped at propagate_priority+0x7f: movl 0x24(%eax),%eax db> trace Tracing pid 146 tid 100157 td 0xc68cba80 propagate_priority turnstile_wait _mtx_lock_sleep vfs_clean_pages bdwrite ffs_blkfree handle_workitem_freefrag process_worklist_item softdep_process_worklist sched_sync fork_exit fork_trampoline --- trap 0x1, eip = 0, esp = 0xeb133d7c, ebp = 0 --- ========== End PAE panic ========== SMP-PAE panic kernel trap 12 with interrupts disabled Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x24 fault code = supervisor read, page not present instruction pointer = 0x8:0xc03d7cd3 stack pointer = 0x10:0xeb0d0b7c frame pointer = 0x10:0xeb0d0b90 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = resume, IOPL = 0 current process = 149 (syncer) [thread pid 149 tid 100160 ] Stopped at propagate_priority+0x7f: movl 0x24(%eax),%eax db> trace Tracing pid 149 tid 100160 td 0xc68b2000 propagate_priority turnstile_wait _mtx_lock_sleep vfs_busy_pages ibwrite bwrite vfs_bio_awrite vop_stdfsync spec_fsync spec_vnoperate sched_sync fork_exit fork_trampoline --- trap 0x1, eip = 0, esp = 0xeb0d0d7c, ebp = 0 --- ========== End PAE panic