Re: [Yaffs] Checkpointing kernel oops after a while

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
CC: Wookey, yaffs
Subject: Re: [Yaffs] Checkpointing kernel oops after a while
There were a few problems in checkpointing that were fixed in rev 1.49 that
are likely causing the problem.

Curious... why is the device being remounted readonly?

-- CHarles


On Friday 17 August 2007 11:09:10 Wookey wrote:
> This board is using kernel 2.6.21.1 with balloon mods
> (http://balloonboard.org/cgi-bin/viewcvs.cgi/balloon/trunk/kernel/ )
> with what appears to be a yaffs around this vintage:
> "$Id: yaffs_fs.c,v 1.59 2007/03/20 20:59:40 charles Exp $"
> "$Id: yaffs_guts.c,v 1.48 2007/03/12 20:55:39 charles Exp $";
> (see
> http://balloonboard.org/cgi-bin/viewcvs.cgi/balloon/trunk/kernel/2.6.21.yaf
>fs.patch?rev=163&view=log )
>
> It has a 1GB yaffs partition and after a couple of weeks use
> (generally just being turned off, not unmounted) seems to
> have got itself in a state where the checkpointing code oopses the
> kernel (see log below).
>
> I should have this on my desk shortly. Anyone got any suggestions what
> might have gone wrong, as it would be good to avoid this, and I want
> to give it an analyse?
>
>
> ----- Forwarded message from His Majesty <> -----
>
> From: His Majesty <>
> Date: Mon, 30 Jul 2007 12:38:25 +0100
> To: Wookey <>
> Subject: Achtung... Achtung .... Balloon would not boot up.
> Reply-To: 
> X-Spam-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,HTML_10_20,
>     HTML_MESSAGE autolearn=no version=3.1.7-deb, No

>
>    Hi Wookey,
>    It was good on friday when I switched it off.
>    However, the balloon wouldnot boot up this morning!!
>    Eagerly await your response.
>    This is the message I get on screen:

>
>    ....
>    DUCK
>    VRSN
>    FFFFFFF9
>    STKP
>    A39F3FF0
>    &_start=00000000
>    FLASH_BASE=00000000
>    Large memory model selected, bank size 256Mbytes
>    Bank 0: A0000000-A7FFFFFC (128Mbytes), bank not full
>    Bank 1: B0000000-B7FFFFFC (128Mbytes), bank not full
>    Bank 2: 90000000: no RAM found
>    Bank 3: 80000000-87FFFFFC (128Mbytes), bank not full

>
>    enabling mmu
>    FLASH_BASE=00000000
>    PXA: Evacuating 1MB of Flash to DRAM at: A3E00000
>    done
>    Map Flash virtual section to DRAM at: A3E00000
>    MMU table entries
>    00000000 A3E00C0A
>    ...
>    Using bit swapping...
>    Programming Device...
>    FPGA image size (bytes)=0x000625F8
>    FPGA Device Programmed OK
>    FPGA Version 0x
>    000000FF
>    Set 0x00000080
>    Clr 0x00000100
>    FPGA initialised
>    Peripheral Power established
>    Scanning for nand chips at 0x10E00000
>    Found MTDs: 0x00000001
>     Flash style = 1x16
>    verify flash size...
>    No non-CFI chip detected. Ignoring fake CFI table.
>    Resetting flash algorithm.
>    re-verifying flash size...
>    btflash_init: mfrid=00000004
>    devid=000022D7
>    mfrid=00000004
>    deviceid=000022D7
>    walking flash descriptors (1x16)
>    btflash_init: found flash MBM29LV650UE_1x16
>    flashDescriptor=000323A4
>    flashSectors=00032074
>    nsectors=00000080
>    flash_size=00800000
>    flash_address_mask=007FFFFF
>    protecting the bootldr
>    amdFlashProtectRange: unimplemented!!
>    root partition size set to 0x3FC00000
>    mach_type  ->00000405
>    reset_partitions: partition_table = 0x00000000
>    reset_partitions: flashDescriptor = 0x000323A4
>    define_partition: base 0x00000000
>    define_partition: partition_table 0x00000000
>    allocated partition_table
>    defining partition: bootldr
>    define_partition: base 0x00100000
>    define_partition: partition_table 0xA3A01AB4
>    defining partition: fpga
>    define_partition: base 0x00200000
>    define_partition: partition_table 0xA3A01AB4
>    defining partition: kernel
>    define_partition: base 0x00000000
>    define_partition: partition_table 0xA3A01AB4
>    defining partition: boot
>    define_partition: base 0x00400000
>    define_partition: partition_table 0xA3A01AB4
>    defining partition: root
>    initialize_by_mach_type done
>    probing ram
>    Probing bank0 memory size...
>    max memory size is 0x10000000

>
>     bank0 memory size=08000000
>    MDCNFG=89D309D3
>    dram_size_ptr=00034590
>    Probing memory size bank 0
>      dram_base=A0000000
>     memory size=08000000
>    dram_size_ptr=000345A4
>    Probing memory size bank 1
>      dram_base=B0000000
>     memory size=08000000
>    dram_size_ptr=000345B8
>    Probing memory size bank 2
>      dram_base=90000000
>    seems to be no dram in bank 2
>    dram_size_ptr=000345CC
>    Probing memory size bank 3
>      dram_base=80000000
>     memory size=08000000
>    n_banks=00000003
>    dram_sizes[0]=08000000
>    dram_sizes[1]=08000000
>    dram_sizes[2]=FFFFFFFF
>    dram_sizes[3]=08000000
>    SDRAM size: 0x08000000
>     in megs: 128M
>    set_params_by_name 1
>    get_param: could not find parameter rootfs
>    partition <root> deleted
>    define_partition: base 0x00400000
>    define_partition: partition_table 0xA3A01AB4
>    defining partition: root
>    MTD device not found ...
>    yaffs_mount(/boot) ok

>
>    >> Compaq OHH BootLoader, Rev 2-21-13-tcl36 for Balloon

>
>    [LARGE_MEMORY_MODEL] [B]>> 07-05-27_14:44

>
>    >> Last link date: Fri Jun 29 08:44:10 UTC 2007
>    >> Contact: [1]

>
>    Cpu company: INTEL
>    Cpu Architecture: XScale
>    Cpu Part: PXA270

>
>    >> ARM Processor Rev=00050000
>    >> (c) 2000-2001 Compaq Computer Corporation, provided with NO WARRANTY

>
>    under t.>> See [2]http://www.handhelds.org/bootldr/ for full license and
>    sourcesPress Retuu
>    params_eval: prefix_in =bootldr:
>    params_eval: just_show =00000000
>    RXSTAT error: 000000FF
>    booting yaffs...
>    Rootfs is "yaffs2"
>    Kernel filesize = 0x0012F780
>    Booting file "/boot/zImage"...
>    kernel partition base A0008000
>    kernel_magic=E1A00000
>    kernel_region_words[9]=016F2818
>    Linux ELF flash_imgstart=A0008000 size=0012F780 dest=A0000000
>    offset=00008000
>    MMU Control=00000079
>    MMU PIDVAM=00000000
>    copying Linux kernel ... done
>    A0008000: E1A00000
>    A0008004: E1A00000
>    A0008008: E1A00000
>    A000800C: E1A00000
>    A0008010: E1A00000
>    A0008014: E1A00000
>    A0008018: E1A00000
>    A000801C: E1A00000
>    A0008020: EA000002
>    A0008024: 016F2818
>    root_filesystem_name=yaffs2
>    Grabbed linuxargs, argc = 00000003
>    Using mach_type 00000405
>    pre unparse setting boot parameters to
>     noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttyS2,115200
>    setting boot parameters to
>     noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttyS2,115200
>    Making core tag at A0000100
>    Making cmdline tag at A0000114
>    Making mem32 tag at A00001C8
>    Making mem32 tag at A00001D8
>    Making mem32 tag at A00001E8
>    command line is:  noinitrd root=/dev/mtdblock1 init=/linuxrc
>    console=ttyS2,1152
>    linuxEntryPoint=A0008000
>    Booting Linux image
>    Uncompressing
>    Linux.............................................................Linux
>    version 2.6.21.1-pxa270 (wookey@eisluft) (gcc version 4.1.2 20061115
>    (pre7CPU: XScale-PXA270 [69054114] revision 4 (ARMv5TE), cr=0000397f
>    Machine: Balloon3
>    Memory policy: ECC disabled, Data cache writeback
>    Running balloon3_map_io()
>    calling pxa_map_io()
>    Run Mode clock: 208.00MHz (*16)
>    Turbo Mode clock: 520.00MHz (*2.5, active)
>    Memory clock: 104.00MHz (/2)
>    System bus clock: 104.00MHz
>    pxa_map_io() done
>    iotable_init() done
>    CPU0: D VIVT undefined 5 cache
>    CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
>    CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
>    Built 1 zonelists.  Total pages: 64768
>    Kernel command line:  noinitrd root=/dev/mtdblock1 init=/linuxrc
>    console=ttyS2,
>    balloon3_init_irq: chained handler installed - irq 126 automatically
>    enabled
>    PID hash table entries: 1024 (order: 10, 4096 bytes)
>    Console: colour dummy device 80x30
>    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
>    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
>    Memory: 128MB 128MB 0MB = 256MB total
>    Memory: 257152KB available (2244K code, 183K data, 92K init)
>    Mount-cache hash table entries: 512
>    CPU: Testing write buffer coherency: ok
>    NET: Registered protocol family 16
>    Running balloon3_init()
>    NET: Registered protocol family 2
>    Time: pxa_timer clocksource has been installed.
>    IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
>    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
>    TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
>    TCP: Hash tables configured (established 8192 bind 8192)
>    TCP reno registered
>    NetWinder Floating Point Emulator V0.97 (double precision)
>    VFS: Disk quotas dquot_6.5.1
>    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
>    yaffs Jul  3 2007 14:42:23 Installing.
>    io scheduler noop registered
>    io scheduler anticipatory registered (default)
>    io scheduler deadline registered
>    io scheduler cfq registered
>    balloon3_backlight_power: power is on
>    Console: switching to colour frame buffer device 60x40
>    pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
>    pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
>    pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
>    NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB
>    3,3V 8-b)4 NAND chips detected
>    Scanning device for bad blocks
>    Bad eraseblock 2590 at 0x143c0000
>    Bad eraseblock 3937 at 0x1ec20000
>    Bad eraseblock 5984 at 0x2ec00000
>    cmdlinepart partition parsing not available
>    Creating 2 MTD partitions on "balloon3-nand":
>    0x00000000-0x00400000 : "Boot"
>    0x00400000-0x40000000 : "Root fs"
>    mice: PS/2 mouse device common for all mice
>    TCP cubic registered
>    NET: Registered protocol family 1
>    NET: Registered protocol family 17
>    XScale iWMMXt coprocessor detected.
>    yaffs: dev is 32505857 name is "mtdblock1"
>    yaffs: Attempting MTD mount on 31.1, "mtdblock1"
>    block 2559 is bad
>    block 3906 is bad
>    block 5953 is bad
>    Freechunks verification failure 485768 242888 242880
>    VFS: Mounted root (yaffs2 filesystem).
>    Freeing init memory: 92K
>    Failed to execute /linuxrc.  Attempting defaults...
>    INIT: version 2.86 booting
>    Starting the hotplug events dispatcher: udevd.
>    Synthesizing the initial hotplug events...done.
>    Waiting for /dev to be fully populated...done.
>    Activating swap...done.
>    Unable to handle kernel NULL pointer dereference at virtual address
>    00000000
>    pgd = d72e4000
>    [00000000] *pgd=b7233031, *pte=00000000, *ppte=00000000
>    Internal error: Oops: 17 [#1]
>    Modules linked in:
>    CPU: 0
>    PC is at yaffs_CheckpointClose+0x2c/0x184
>    LR is at yaffs_CheckpointSave+0x7c/0x434
>    pc : [<c00e8c44>]    lr : [<c00e6c50>]    Not tainted
>    sp : d6c2fd3c  ip : d6c2fd5c  fp : d6c2fd58
>    r10: c0744000  r9 : 00000000  r8 : c025cd18
>    r7 : 00000000  r6 : d724d000  r5 : c0744000  r4 : 00000000
>    r3 : 0000000e  r2 : 00000000  r1 : 00000000  r0 : 00000000
>    Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment user
>    Control: 397F
>    Table: B72E4000  DAC: 00000015
>    Process mount (pid: 1410, stack limit = 0xd6c2e258)
>    Stack: (0xd6c2fd3c to 0xd6c30000)
>    fd20:
>    00000000
>    fd40: c03b9280 d724d000 00000000 d6c2fdc8 d6c2fd5c c00e6c50 c00e8c24
>    3fc00000
>    ...
>    ...
>    ffe0: 400ee1d0 bead5af4 0000aa58 400ee1dc 60000010 000242a8 00000000
>    00000000

>
>    Backtrace:
>    [<c00e8c18>] (yaffs_CheckpointClose+0x0/0x184) from [<c00e6c50>]
>    (yaffs_Checkpo) r7 = 00000000  r6 = D724D000  r5 = C03B9280  r4 =
> 00000000 [<c00e6bd4>] (yaffs_CheckpointSave+0x0/0x434) from [<c00ddb7c>]
> (yaffs_remount_)[<c00ddb30>] (yaffs_remount_fs+0x0/0xac) from [<c007e424>]
> (do_remount_sb+0xf8/) r5 = 00000000  r4 = C0444400
>    [<c007e32c>] (do_remount_sb+0x0/0x160) from [<c0094a98>]
>    (do_mount+0x19c/0x5e0)
>     r6 = C0444400  r5 = 00000021  r4 = C044443C
>    [<c00948fc>] (do_mount+0x0/0x5e0) from [<c0094f68>]
> (sys_mount+0x8c/0xd4) [<c0094edc>] (sys_mount+0x0/0xd4) from [<c001fbc0>]
>    (ret_fast_syscall+0x0/0x2c)
>     r7 = 00000015  r6 = 00000000  r5 = 000242F8  r4 = 000242F8
>    Code: e59030e8 e3530000 da00004f e59000f8 (e5904000)
>    BUG: at kernel/exit.c:861 do_exit()
>    /etc/rcS.d/S10checkroot.sh: line 24:  1410 Segmentation fault      mount
>    -n -o /

>
>    --
>    BalaKrishna Kolluru

>
> References
>
>    Visible links
>    1. mailto:bootldr@handhelds.org
>    2. http://www.handhelds.org/bootldr/

>
> ----- End forwarded message -----
> Wookey