Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Sep 2014 16:05:11 +0200
From:      Mattia Rossi <mattia.rossi.mailinglists@gmail.com>
To:        freebsd-arm <freebsd-arm@freebsd.org>, jmg@funkthat.com
Cc:        Ian Lepore <ian@freebsd.org>
Subject:   Re: Random Kernel Panic on Dreamplug (FS related)
Message-ID:  <542AB897.3020309@gmail.com>
In-Reply-To: <20140930123010.GZ43300@funkthat.com>
References:  <542559BC.7090100@gmail.com> <20140929040126.GG43300@funkthat.com> <54291B74.5010307@gmail.com> <20140930112937.GU43300@funkthat.com> <542A9EA4.70109@gmail.com> <20140930123010.GZ43300@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Am 30.09.2014 14:30, schrieb John-Mark Gurney:
> Mattia Rossi wrote this message on Tue, Sep 30, 2014 at 14:14 +0200:
>> Am 30.09.2014 13:29, schrieb John-Mark Gurney:
>>> Mattia Rossi wrote this message on Mon, Sep 29, 2014 at 10:42 +0200:
>>>> Am 29.09.2014 06:01, schrieb John-Mark Gurney:
>>>>> Mattia Rossi wrote this message on Fri, Sep 26, 2014 at 14:19 +0200:
>>>>>> This might be part of the weird FFS issues the Dreamplug has and no-one
>>>>>> knows why they're happening.
>>>>> Are you running w/ FFS journaling?  If so, try turning it off, but
>>>>> keeping softupdates on..
>>>> No journaling, no softupdates. I'll try enabling softupdates next time.
>>>> don't know if it will panic though
>>>>>> data_abort_handler() at data_abort_handler+0x5c0
>>>>>>           pc = 0xc0de7a28  lr = 0xc0dd711c (exception_exit)
>>>>>>           sp = 0xde019898  fp = 0xde019a20
>>>>>>           r4 = 0xffffffff  r5 = 0xffff1004
>>>>>>           r6 = 0xc3f3f6c0  r7 = 0x00001000
>>>>>>           r8 = 0xc443e880  r9 = 0x00000000
>>>>>>          r10 = 0xc3d69000
>>>>>> exception_exit() at exception_exit
>>>>>>           pc = 0xc0dd711c  lr = 0xc0d53828 (ffs_truncate+0xaa8)
>>>>>>           sp = 0xde0198e8  fp = 0xde019a20
>>>>>>           r0 = 0xd0238120  r1 = 0x00000e60
>>>>>>           r2 = 0x00000000  r3 = 0x00000000
>>>>>>           r4 = 0x00000120  r5 = 0x00000000
>>>>>>           r6 = 0xc3f3f6c0  r7 = 0x00001000
>>>>>>           r8 = 0xc443e880  r9 = 0x00000000
>>>>>>          r10 = 0xc3d69000 r12 = 0xd0238120
>>>>>> memset() at memset+0x48
>>>>>>           pc = 0xc0de521c  lr = 0xc0d53828 (ffs_truncate+0xaa8)
>>>>>>           sp = 0xde0198e8  fp = 0xde019a20
>>>>>> Unwind failure (no registers changed)
>>>>> No more beyond this?   If you could run addr2line on 0xc0d53828 so
>>>>> that we know where in ffs_truncate it's failing, that'd be very
>>>>> nice...
>>>> So I was trying to save the coredump in  order to reboot and run
>>>> addr2line, but that failed:
>>>>
>>>> Physical memory: 504 MB
>>>> Dumping 67 MB:(da0:umass-sim0:0:0:0): WRITE(10). CDB: 2a 00 01 d5 1f20
>>>> 00 00 01 00  <sip:2000000100>
>>>> (da0:umass-sim0:0:0:0): CAM status: Resource Unavailable
>>>> (da0:umass-sim0:0:0:0): Error 5, Retries exhausted
>>>> Aborting dump due to I/O error.
>>>>
>>>> ** DUMP FAILED (ERROR 5) **
>>>>
>>>> So I guess this error is related to the CAM errors I'm getting from time
>>>> to time. I was hoping that those errors were related to the INVARIANTS
>>>> option that slowed down the system and thus might have triggered CAM
>>>> errors, but obviously the SD Card seems to be the real issue here.
>>>> So no crashdump for further analysis.
>>> That's fine.. w/ the addr2line we have some lines to explore...
>>>
>>>> Interestingly the CAM errors didn't show up on the terminal as other
>>>> times, the kernel just panicked straight away.
>>> Hmm.. that is odd.. someone who knows the SD card layer should look
>>> at this part...  It could be that the SD card driver doesn't handle
>>> dumping (there is this global flag that gets set) properly and the driver
>>> needs to behave differently when it's set...
>> I also need to grab a new SD card, just to make sure it's really not the
>> card.
>>
>>>> But I've got the addr2line output, even though I'm not sure it makes any
>>>> difference:
>>>>
>>>> addr2line -f -e /mnt/kernel.debug 0xc0d53828
>>>>
>>>> ffs_truncate
>>>> /usr/devel/dreamplug/sys/ufs/ffs/ffs_inode.c:321
>>> can you give me the contents of the line?  and a few lines of context
>>> around it?   In HEAD's source, this is DOINGASYNC, and there is no call
>>> to memset, nor a variable assignment that would result in memset being
>>> called...
>> Same here.. The file hasn't been changed in a while (Fri, 31 May 2013):
>>
>>                  ip->i_size = length;
>>                  DIP_SET(ip, i_size, length);
>>                  if (bp->b_bufsize == fs->fs_bsize)
>>                          bp->b_flags |= B_CLUSTEROK;
>>                  if (flags & IO_SYNC)
>>                          bwrite(bp);
>> 321:        else if (DOINGASYNC(vp))
>>                          bdwrite(bp);
>>                  else
>>                          bawrite(bp);
>>                  ip->i_flag |= IN_CHANGE | IN_UPDATE;
>>                  return (ffs_update(vp, !DOINGASYNC(vp)));
>>
>> No idea what's going on.
> ok, could you send me the output of objdump -dSl, but you only need
> to include the part from XXXXX <ffs_truncate>: to the next XXX<func>:
> line...  probably off list as it'll be quite long...
I'm sorry, but given that I just broke all my working worlds using fsck, 
I'm not going to be able to do that until I'm back from holidays.... 
currently working on the stuff remotely and after today's work day, I'm 
not going to be able to get my hands on the dreamplug.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?542AB897.3020309>