From owner-cvs-all@FreeBSD.ORG Mon Apr 14 21:57:43 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84B66106564A; Mon, 14 Apr 2008 21:57:43 +0000 (UTC) (envelope-from niclas.zeising@gmail.com) Received: from mxf2.bahnhof.se (mxf2.bahnhof.se [213.80.101.26]) by mx1.freebsd.org (Postfix) with ESMTP id 299D68FC1D; Mon, 14 Apr 2008 21:57:42 +0000 (UTC) (envelope-from niclas.zeising@gmail.com) Received: from localhost (mxf2.local [127.0.0.1]) by mxf2-reinject (Postfix) with ESMTP id AE5C36BD066; Mon, 14 Apr 2008 23:57:41 +0200 (CEST) X-Virus-Scanned: by amavisd-new using ClamAV at bahnhof.se (MXF2) X-Spam-Score: 1.069 X-Spam-Level: * X-Spam-Status: No, score=1.069 tagged_above=-99 required=5 tests=[SPF_NEUTRAL=1.069] Received: from mxf2.bahnhof.se ([127.0.0.1]) by localhost (mxf2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EaWcUsFceBxw; Mon, 14 Apr 2008 23:57:39 +0200 (CEST) Received: from [10.0.0.3] (h-60-153.A163.cust.bahnhof.se [79.136.60.153]) by mxf2.bahnhof.se (Postfix) with ESMTP id 01CA36BD0B0; Mon, 14 Apr 2008 23:57:38 +0200 (CEST) Message-ID: <4803D34C.4030706@gmail.com> Date: Mon, 14 Apr 2008 23:57:32 +0200 From: Niclas Zeising User-Agent: Thunderbird 2.0.0.12 (Windows/20080213) MIME-Version: 1.0 To: =?ISO-8859-1?Q?S=F8ren_Schmidt?= References: <200804141834.m3EIYOXP044870@repoman.freebsd.org> In-Reply-To: <200804141834.m3EIYOXP044870@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ata ata-all.h ata-chipset.c ata-dma.c ata-lowlevel.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Apr 2008 21:57:43 -0000 Søren Schmidt wrote: > sos 2008-04-14 18:34:24 UTC > > FreeBSD src repository > > Modified files: > sys/dev/ata ata-all.h ata-chipset.c ata-dma.c > ata-lowlevel.c > Log: > Fix problem with slave devices. > Fix or rather bring ENOMEM problems back to the state it was before. > Temporarily disable PortMultipliers on AHCI devices. > > Revision Changes Path > 1.132 +1 -1 src/sys/dev/ata/ata-all.h > 1.216 +4 -3 src/sys/dev/ata/ata-chipset.c > 1.153 +4 -4 src/sys/dev/ata/ata-dma.c > 1.82 +7 -8 src/sys/dev/ata/ata-lowlevel.c Hi! I still have problems with my install blowing up with the panic message "to many DMA segment entries". I haven't tried this last change though. Unfortunately I can't send a decent backtrace since doing "call doadump" fom ddb only makes the machine panic again. The panic occurs when trying to do a installworld, probably because of high disc I/O. The march snapshot doesn't inhibit this problem. I can at least do a cvsup followed by a buildworld and make kernel. The harddrive is a 114473MB Hitachi SATA150 drive, in my system on ad8 (ata4-master). The bios runs sata in native mode. The controller is an Intel AHCI controller. I've compiled a custom kernel (removed raid and scsi devices I don't use, along with ethernet devices I don't use, and added sound device and crypto device as well as GEOM_ELI and GEOM_BDE. Also removed some compat options. Everything is compiled with standard options except cputype?=core2. The machine runs amd64. The following is the hand-transcribed backtrace from the panic: panic: too many DMA segment entries cpuid = 1 KDB: stack backtrace: db_trace_self_wrappoer() at db_trace_self_wrapper+0x2a panic() at panic+0x173 ata_setup_interrupt at ata_setup_interrupt bus_dmamap_load() at ata_dmaload+0x17e ata_ahci_begin_transaction() at ata_ahci_begin_transaction+0x1f9 ata_start() at ata_start+0x1a4 g_io_schedule_up() at g_io_schedule_up+0x4d g_up_procvody() at g_up_procbody+0x6f fork_exit() at fork_exit+0x12a fork_trampoline at fork_trampoline+0xe --- trap 0, rip = 0 rsp = 0xffffffffab899d30, rbp = 0 --- KDB: enter: panic [thread pid 3 tid 100009 ] Stopped at kdb_enter+0x3d: movq $0,0x4060f6(%rip) db> show locs exclusive sleep mutex ATA state lock r = 0 (0xffffff000130a78) locked @ /usr/src/sys/dev/ata/ata-queue.c:192 exclusive sleep mutex ATA queue lock r = 0 (0xffffff0001303ab0 locked @ /usr/src/sys/dev/ata/ata-queue.c:175 Then I try 'call doadump' and get the following panic. Don't know if it's because of the earlier one or if it's another bug. Probably the former, but I include the transcription anyway. db> call doadump Physical memory: 1998MB Dumping 132MB:panic: _mtx_lock_sleep: recursed on non-recursive mutex ATA queue lock @ /usr/src/sys/dev/ata/ata-queue.c:86 cpuid = 1 KDB: stack backtrace: db_trace_self_wrapper at db_trace_self_wrapper+0x2a mi_switch() at mi_switch+0x363 sched_bind() at sched_bind+0x78 boot() at boot+0x3f panic() at panic+0x15d _mtx_lock_flags() at _mtx_lock_flags _mtx_lock_flags() at _mtx_lock_flags+0xc0 ata_queue_request() at ata_queue_request+0x9a ad_dump() at ad_dump+0x90 minidumpsys() at minidumpsys+0x23 dumpsys() at dumpsys+0x23 doadump() at doadump()+0x49 db_fncall() at db_fncall+0x88 db_command() at db_command+0x1eb db_command_loop() at db_command_loop+0x50 db_trap() at db_trap+0x87 kdb_trap() at kdb_trap+0x82 trap() at trap+0x159 calltrap() at calltrap+0x8 --- trap 0x3, rip = 0xffffffff80305aaf, rsp = 0xffffffffab899940, rbp = 0xffffffffab099960 --- kdb_enter() at kdb_enter+0x3d panic() at panic+0x16c ata_setup_interrupt() at ata_setup_interrupt bus_dmamap_load() at bus_dmamap_load+0x353 ata_dmaload() at ata_dmaload+0x17e ata_ahci_begin_transaction() at ata_ahci_begin_transaction+0x1f9 ata_start() at ata_start+0x1a4 g_io_schedule_up() at g_io_schedule_up+0x4d g_up_procbody() at g_up_procbody+0x6f fork_exit() at fork_exit+0x12a fork_trampoline() at fork_trampoline+0xe --- trap 0, rip = 0, rsp = 0xffffffffab899d30, rbp = 0 --- That's pretty much all I can get for now. Tell me if you need more information. Regards! Niclas Zeising