All of lore.kernel.org
 help / color / mirror / Atom feed
From: axel.lin@ingics.com (Axel Lin)
To: linux-arm-kernel@lists.infradead.org
Subject: ARM: nommu: Boot hang after VFS: Mounted root (ext2 filesystem) on device 1:0.
Date: Mon, 25 Nov 2013 23:26:00 +0800	[thread overview]
Message-ID: <1385393160.4753.4.camel@phoenix> (raw)

Hi,
I got hangup at boot after "VFS: Mounted root (ext2 filesystem) on device 1:0.".
I'm using ext2 initrd as root.
It seems hangup after mount root, but in the progress of mounting devtmpfs.

After debug it, I found it hangs at calling page_cache_release.
Note, I'm testing on an nommu platform (arm7tdmi) using current Linus' tree
with patches for this SoC.

Breakpoint 3, ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:452
452                     ext2_put_page(page);
(gdb) bt
#0  ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:452
#1  0x000b0218 in ext2_lookup (dir=0x1cbf8e0, dentry=0x161d390, flags=<optimized out>) at fs/ext2/namei.c:66
#2  0x0006a160 in lookup_real (dir=<optimized out>, dentry=0x161d390, flags=<optimized out>) at fs/namei.c:1317
#3  0x0006a5fc in __lookup_hash (name=<optimized out>, base=0x161d228, flags=1) at fs/namei.c:1335
#4  0x0006b828 in lookup_slow (nd=0x1c19e58, path=0x1c19de0) at fs/namei.c:1446
#5  0x0006c914 in walk_component (follow=1, path=0x1c19dd8, nd=0x1c19e58) at fs/namei.c:1526
#6  lookup_last (path=0x1c19dd8, nd=0x1c19e58) at fs/namei.c:1904
#7  path_lookupat (dfd=<optimized out>, name=0x1640010 "dev", flags=<optimized out>, nd=0x1c19e58) at fs/namei.c:1939
#8  0x0006cf30 in filename_lookup (dfd=-100, name=0x1c19e30, flags=1, nd=0x1c19e58) at fs/namei.c:1981
#9  0x0006d000 in do_path_lookup (dfd=-100, name=0x1640010 "dev", flags=1, nd=0x1c19e58) at fs/namei.c:1998
#10 0x0006d218 in kern_path (name=<optimized out>, flags=<optimized out>, path=0x1c19ee0) at fs/namei.c:2027
#11 0x0007dbd0 in do_mount (dev_name=0x161d380 "devtmpfs", dir_name=0x1640010 "dev", type_page=0x161d340 "devtmpfs", flags=32768,
    data_page=0x0 <__vectors_start>) at fs/namespace.c:2363
#12 0x0007e71c in SYSC_mount (data=0x378620 <reset_devices>, flags=32768, type=<optimized out>, dir_name=<optimized out>,
    dev_name=0x30a0da "devtmpfs") at fs/namespace.c:2608
#13 SyS_mount (dev_name=<optimized out>, dir_name=<optimized out>, type=<optimized out>, flags=<optimized out>, data=0) at fs/namespace.c:2582
#14 0x00123444 in devtmpfs_mount (mntdir=<optimized out>) at drivers/base/devtmpfs.c:363
#15 0x0033a394 in prepare_namespace () at init/do_mounts.c:593
#16 0x00339cd0 in kernel_init_freeable () at init/main.c:935
#17 0x0028b7c0 in kernel_init (unused=<optimized out>) at init/main.c:844
#18 0x00009000 in ret_from_fork () at arch/arm/kernel/entry-common.S:91
#19 0x00009000 in ret_from_fork () at arch/arm/kernel/entry-common.S:91
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) s
ext2_put_page (page=<optimized out>) at fs/ext2/dir.c:70
70              page_cache_release(page);
(gdb) l
65      }
66
67      static inline void ext2_put_page(struct page *page)
68      {
69              kunmap(page);
70              page_cache_release(page);
71      }
72
73      static inline unsigned long dir_pages(struct inode *inode)
74      {
(gdb) s
ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:451
451                     res = le32_to_cpu(de->inode);
(gdb) s
452                     ext2_put_page(page);
(gdb) s
ext2_put_page (page=0xac4e0 <ext2_inode_by_name+12>) at fs/ext2/dir.c:70
70              page_cache_release(page);
(gdb) s         <<< HANG UP

I have no idea why it hangs@page_cache_release call.
I appreciate for comments and advices to debug this.

Thanks,
Axel

WARNING: multiple messages have this Message-ID (diff)
From: Axel Lin <axel.lin@ingics.com>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Russell King <linux@arm.linux.org.uk>,
	Al Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>
Subject: ARM: nommu: Boot hang after VFS: Mounted root (ext2 filesystem) on device 1:0.
Date: Mon, 25 Nov 2013 23:26:00 +0800	[thread overview]
Message-ID: <1385393160.4753.4.camel@phoenix> (raw)

Hi,
I got hangup at boot after "VFS: Mounted root (ext2 filesystem) on device 1:0.".
I'm using ext2 initrd as root.
It seems hangup after mount root, but in the progress of mounting devtmpfs.

After debug it, I found it hangs at calling page_cache_release.
Note, I'm testing on an nommu platform (arm7tdmi) using current Linus' tree
with patches for this SoC.

Breakpoint 3, ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:452
452                     ext2_put_page(page);
(gdb) bt
#0  ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:452
#1  0x000b0218 in ext2_lookup (dir=0x1cbf8e0, dentry=0x161d390, flags=<optimized out>) at fs/ext2/namei.c:66
#2  0x0006a160 in lookup_real (dir=<optimized out>, dentry=0x161d390, flags=<optimized out>) at fs/namei.c:1317
#3  0x0006a5fc in __lookup_hash (name=<optimized out>, base=0x161d228, flags=1) at fs/namei.c:1335
#4  0x0006b828 in lookup_slow (nd=0x1c19e58, path=0x1c19de0) at fs/namei.c:1446
#5  0x0006c914 in walk_component (follow=1, path=0x1c19dd8, nd=0x1c19e58) at fs/namei.c:1526
#6  lookup_last (path=0x1c19dd8, nd=0x1c19e58) at fs/namei.c:1904
#7  path_lookupat (dfd=<optimized out>, name=0x1640010 "dev", flags=<optimized out>, nd=0x1c19e58) at fs/namei.c:1939
#8  0x0006cf30 in filename_lookup (dfd=-100, name=0x1c19e30, flags=1, nd=0x1c19e58) at fs/namei.c:1981
#9  0x0006d000 in do_path_lookup (dfd=-100, name=0x1640010 "dev", flags=1, nd=0x1c19e58) at fs/namei.c:1998
#10 0x0006d218 in kern_path (name=<optimized out>, flags=<optimized out>, path=0x1c19ee0) at fs/namei.c:2027
#11 0x0007dbd0 in do_mount (dev_name=0x161d380 "devtmpfs", dir_name=0x1640010 "dev", type_page=0x161d340 "devtmpfs", flags=32768,
    data_page=0x0 <__vectors_start>) at fs/namespace.c:2363
#12 0x0007e71c in SYSC_mount (data=0x378620 <reset_devices>, flags=32768, type=<optimized out>, dir_name=<optimized out>,
    dev_name=0x30a0da "devtmpfs") at fs/namespace.c:2608
#13 SyS_mount (dev_name=<optimized out>, dir_name=<optimized out>, type=<optimized out>, flags=<optimized out>, data=0) at fs/namespace.c:2582
#14 0x00123444 in devtmpfs_mount (mntdir=<optimized out>) at drivers/base/devtmpfs.c:363
#15 0x0033a394 in prepare_namespace () at init/do_mounts.c:593
#16 0x00339cd0 in kernel_init_freeable () at init/main.c:935
#17 0x0028b7c0 in kernel_init (unused=<optimized out>) at init/main.c:844
#18 0x00009000 in ret_from_fork () at arch/arm/kernel/entry-common.S:91
#19 0x00009000 in ret_from_fork () at arch/arm/kernel/entry-common.S:91
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) s
ext2_put_page (page=<optimized out>) at fs/ext2/dir.c:70
70              page_cache_release(page);
(gdb) l
65      }
66
67      static inline void ext2_put_page(struct page *page)
68      {
69              kunmap(page);
70              page_cache_release(page);
71      }
72
73      static inline unsigned long dir_pages(struct inode *inode)
74      {
(gdb) s
ext2_inode_by_name (dir=<optimized out>, child=<optimized out>) at fs/ext2/dir.c:451
451                     res = le32_to_cpu(de->inode);
(gdb) s
452                     ext2_put_page(page);
(gdb) s
ext2_put_page (page=0xac4e0 <ext2_inode_by_name+12>) at fs/ext2/dir.c:70
70              page_cache_release(page);
(gdb) s         <<< HANG UP

I have no idea why it hangs at page_cache_release call.
I appreciate for comments and advices to debug this.

Thanks,
Axel


             reply	other threads:[~2013-11-25 15:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-25 15:26 Axel Lin [this message]
2013-11-25 15:26 ` ARM: nommu: Boot hang after VFS: Mounted root (ext2 filesystem) on device 1:0 Axel Lin
2013-11-25 19:42 ` Uwe Kleine-König
2013-11-25 19:42   ` Uwe Kleine-König
2013-11-26  0:46   ` Axel Lin
2013-11-26  0:46     ` Axel Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1385393160.4753.4.camel@phoenix \
    --to=axel.lin@ingics.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.