Re: Thinkpad panic woes -- ATA problem?

From: Daniel Eischen <eischen_at_vigrid.com>
Date: Tue, 1 Jun 2004 23:10:23 -0400 (EDT)
On Tue, 1 Jun 2004, Daniel Eischen wrote:

> On Wed, 26 May 2004, Kent Hauser wrote:
> > Hi,
> > 
> > Thanks for the input. After disabling the "hotswap" interrupt via the Thinkpad 
> > PS2 command at the suggestion of "Nikolay Denev" <nike_d_at_cytexbg.com> 
> > (at least I think that's the interrupt I turned off...), I now sometimes get 
> > further in my boot. Now it only normally panics at startup -- an the message 
> > is as follows:
> > 
> > ad0: 35293MB <HTS548040MAT00> [71707/16/63] at ata0-master UDMA100
> > ata1-slave: FAILURE - ATAPI_IDENTIFY no interrupt
> > ata1-slave: FAILURE - ATAPI_IDENTIFY no interrupt
> > acd0: CDRW <UJDA755zDVD/CDRW> at ata1-master UDMA33
> > Memory modified after free 0xc44d8a00(508) val=1ff01ff _at_ 0xc44d8a00
> 
> Has anyone figured this out yet?  Here's a traceback from my
> Thinkpad R40 (I get the same message above).  I was able to
> get the kernel to boot once by disabling atapicam, but even
> that doesn't work any longer.  The trace just moves from
> xpt_foo() to g_conf_foo().  The trace from below is with
> atapicam built into the kernel.
> 
> This damn thing doesn't have a serial port on it from what
> I can see, so the information below is hand-scribed.
> 
> 5.2.1-release worked on this as long as ACPI was disabled.
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x1ff021f
> fault code              = supervisor read, page not present
> instruction pointer     = 0x8:0xc069c93a
> stack pointer           = 0x10:0xc0c21ba4
> frame pointer           = 0x10:0xc0c21bc0
> 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         = 0 (swapper)
> kernel: type 12 trap, code = 0
> Stoped at       mtrash_ctor+0x3a:       movl    0x20(%eax),%eax
> db> trace
> mtrash_ctor(c2398c00,200,0) at mtrash_ctor+0x3a
> uma_zalloc_arg(c1045cc0,0,1) at uma_zalloc_arg+0x169
> malloc(1a0,c0774d60,1,c2393b80,c2395640) at malloc+0xb7
> xpt_alloc_device(c2393b80,c2395640,0) at xpt_alloc_device+0x3e
> xpt_compile_path(c23942b0,c14f5b80,0,0,0) at xpt_compile_path+0x84
> xpt_create_path(c0c21ca4,c14f5b80,0,0,0) at xpt_create_path+0x49
> xpt_scan_bus(c14f5b80,c243d000,c0c21cf0,c0440749,c2393bc0) at xpt_scan_bus+0xea
> xpt_action(c243d000,c243d000,c2393b80,c044025c,c0c21d14) at xpt_action+0x7e2
> xpt_finishconfig(c14f5b80,c243d000) at xpt_finishconfig+0x30
> xptconfigfunc(c2393b80,0,c0c21d40,c04400c3,c2393b80) at xptconfigfunc+0x10b
> xptdefbusfunc(c2393b80,c0c21d54,0,c04437bc) at xptbustraverse+0x2b
> xpt_for_all_busses(c04437bc,0) at xpt_for_all_busses+0x29
> xpt_config(0) at xpt_config+-x74
> run_interrupt_driven_config_hooks(0,c1ec00,c1e000,0,c043bd15) at
> run_interrupt_driven_config_hooks+0x18
> mi_startup() at mi_startup+0x96
> begin() at begin+0x2c
> db>

I commented out the panic in uma_dbg.c:mtrash_ctor():

Index: vm/uma_dbg.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/vm/uma_dbg.c,v
retrieving revision 1.14
diff -u -r1.14 uma_dbg.c
--- vm/uma_dbg.c	31 May 2004 21:46:05 -0000	1.14
+++ vm/uma_dbg.c	2 Jun 2004 02:48:12 -0000
_at__at_ -134,8 +134,10 _at__at_
 		if (*p != uma_junk) {
 			printf("Memory modified after free %p(%d) val=%x _at_ %p\n",
 			    mem, size, *p, p);
+#if 0
 			panic("Most recently used by %s\n", (*ksp == NULL)?
 			    "none" : (*ksp)->ks_shortdesc);
+#endif
 		}
 }
 

and was able to get the system to boot, although with a bunch
of "Memory modified after free" messages.  Also, the new problem
of reboot hanging after syncing disks is now added.  The verbose
boot with the above patch applied is attached.  I suspect ata
is the culprit...

-- 
Dan Eischen

Received on Tue Jun 01 2004 - 18:10:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:55 UTC