From: dk-arm-linux@gmx.de (Dieter Kiermaier)
To: linux-arm-kernel@lists.infradead.org
Subject: kirkwood / openrd: umount problem using mdev (busybox)
Date: Wed, 11 Nov 2009 15:55:02 +0100 [thread overview]
Message-ID: <200911111555.02938.dk-arm-linux@gmx.de> (raw)
In-Reply-To: <200911061559.47922.dk-arm-linux@gmx.de>
Hi again,
> Hi all,
>
> I've encountered a new problem with regards to busybox mdev while umounting a usb pendrive:
> I'm using kernel
> sh-3.2# uname -a
> Linux DB88FXX81 2.6.32-rc4 #2 PREEMPT Thu Nov 5 13:41:41 CET 2009 armv5tel GNU/Linux
> sh-3.2#
>
>
> Mounting and umounting manually works like a charm without any problems. But if I disconnected a
> mounted pendrive and wants mdev to umount it on a remove event the umount call hangs until I get a
> message from my kernel (see below).
>
This problem also doesn't exist with marvell stock 2.6.22.18 kernel.
So I would assume it is no busybox problem.
It looks like another kernel problem with current mainline kernel?
mounting / umounting with busybox mdev works reliable and as expected.
Dieter
>
>
> A strace of the umount call gives:
> execve("/bin/umount", ["umount", "-f", "-l", "/dev/sda1"], [/* 14 vars */]) = 0
> brk(0) = 0xf5000
> uname({sys="Linux", node="DB88FXX81", ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001d000
> access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/lib/tls/v5l/fast-mult/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/v5l/fast-mult/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/v5l/fast-mult/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/v5l/fast-mult", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/v5l/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/v5l/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/v5l/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/v5l", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/fast-mult/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/fast-mult/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/fast-mult/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/fast-mult", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/tls/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/tls", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/v5l/fast-mult/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/v5l/fast-mult/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/v5l/fast-mult/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/v5l/fast-mult", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/v5l/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/v5l/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/v5l/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/v5l", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/fast-mult/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/fast-mult/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/fast-mult/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/fast-mult", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/half/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/lib/half", 0xbed722f8) = -1 ENOENT (No such file or directory)
> open("/lib/libm.so.6", O_RDONLY) = 4
> read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0342\0\0004\0\0\0"..., 512) = 512
> fstat64(4, {st_mode=S_IFREG|0755, st_size=693352, ...}) = 0
> mmap2(NULL, 712856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x40026000
> mprotect(0x400cc000, 28672, PROT_NONE) = 0
> mmap2(0x400d3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xa5) = 0x400d3000
> close(4) = 0
> open("/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/v5l/fast-mult/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/v5l/fast-mult/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/v5l/fast-mult/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/v5l/fast-mult", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/v5l/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/v5l/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/v5l/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/v5l", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/fast-mult/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/fast-mult/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/fast-mult/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/fast-mult", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/tls/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/tls", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/v5l/fast-mult/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/v5l/fast-mult/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/v5l/fast-mult/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/v5l/fast-mult", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/v5l/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/v5l/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/v5l/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/v5l", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/fast-mult/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/fast-mult/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/fast-mult/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/fast-mult", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/half/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/half", 0xbed722e0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/libgcc_s.so.1", O_RDONLY) = 4
> read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\304\"\0\0004\0\0\0"..., 512) = 512
> fstat64(4, {st_mode=S_IFREG|0644, st_size=65824, ...}) = 0
> mmap2(NULL, 78540, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x400d5000
> mprotect(0x400e1000, 28672, PROT_NONE) = 0
> mmap2(0x400e8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xb) = 0x400e8000
> close(4) = 0
> open("/lib/libc.so.6", O_RDONLY) = 4
> read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340J\1\0004\0\0\0"..., 512) = 512
> fstat64(4, {st_mode=S_IFREG|0755, st_size=1249460, ...}) = 0
> mmap2(NULL, 1237404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x400e9000
> mprotect(0x4020b000, 28672, PROT_NONE) = 0
> mmap2(0x40212000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x121) = 0x40212000
> mmap2(0x40215000, 8604, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40215000
> close(4) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001e000
> set_tls(0x4001e720, 0x400256f4, 0x4001edf8, 0x40025058, 0x40) = 0
> mprotect(0x40212000, 8192, PROT_READ) = 0
> mprotect(0x400d3000, 4096, PROT_READ) = 0
> getpid() = 562
> getuid32() = 0
> brk(0) = 0xf5000
> brk(0x117000) = 0x117000
> open("/proc/mounts", O_RDONLY) = 4
> fstat64(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001f000
> read(4, "rootfs / rootfs rw 0 0\n/dev/root"..., 1024) = 655
> read(4, "", 1024) = 0
> close(4) = 0
> munmap(0x4001f000, 4096) = 0
> lstat64("/dev", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=2880, ...}) = 0
> lstat64("/dev/sda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 1), ...}) = 0
> umount("/mnt/usbdisk", 0
>
> And after that the process hangs:
>
> sh-3.2# ps
> PID USER VSZ STAT COMMAND
> 1 root 3256 S init
> 2 root 0 SW [kthreadd]
> 3 root 0 SW [ksoftirqd/0]
> 4 root 0 SW [watchdog/0]
> 5 root 0 SW [events/0]
> 6 root 0 SW [khelper]
> 9 root 0 SW [async/mgr]
> 133 root 0 SW [sync_supers]
> 135 root 0 SW [bdi-default]
> 137 root 0 SW [kblockd/0]
> 143 root 0 SW [ata/0]
> 144 root 0 SW [ata_aux]
> 152 root 0 SW [khubd]
> 155 root 0 SW [kseriod]
> 158 root 0 SW [kmmcd]
> 178 root 0 SW [rpciod/0]
> 186 root 0 SW [khungtaskd]
> 187 root 0 SW [kswapd0]
> 236 root 0 SW [aio/0]
> 244 root 0 SW [nfsiod]
> 250 root 0 SW [crypto/0]
> 387 root 0 SW [scsi_eh_0]
> 390 root 0 SW [scsi_eh_1]
> 397 root 0 SW [mtdblockd]
> 411 root 0 SW [orion_spi]
> 494 root 0 SW [usbhid_resumer]
> 515 root 2280 S /bin/sh /sbin/mini_httpd_wrapper
> 516 root 2644 S -/bin/sh
> 519 root 2176 S /sbin/mini_httpd -D -d /var/www -u root -c **.cgi -i
> 527 root 0 SW [scsi_eh_2]
> 550 root 3264 S /sbin/mdev block
> 554 root 2604 S /bin/sh /sbin/mdev_mount_usbdisk.sh
> 561 root 1836 S strace umount -f -l /dev/sda1
> 562 root 3260 D umount -f -l /dev/sda1
> 564 root 3260 R ps
> sh-3.2#
>
> After a while I get this from my kernel every now and then:
>
> sh-3.2# INFO: task umount:562 blocked for more than 120 seconds.
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> umount D c03467c0 0 562 561 0x00000100
> [<c03467c0>] (schedule+0x360/0x3f0) from [<c00d18f0>] (bdi_sched_wait+0xc/0x18)
> [<c00d18f0>] (bdi_sched_wait+0xc/0x18) from [<c03472e4>] (__wait_on_bit+0x60/0xac)
> [<c03472e4>] (__wait_on_bit+0x60/0xac) from [<c03473a4>] (out_of_line_wait_on_bit+0x74/0x80)
> [<c03473a4>] (out_of_line_wait_on_bit+0x74/0x80) from [<c00d1984>] (sync_inodes_sb+0x88/0x17c)
> [<c00d1984>] (sync_inodes_sb+0x88/0x17c) from [<c00d5c38>] (__sync_filesystem+0x30/0x6c)
> [<c00d5c38>] (__sync_filesystem+0x30/0x6c) from [<c00b6248>] (generic_shutdown_super+0x2c/0x130)
> [<c00b6248>] (generic_shutdown_super+0x2c/0x130) from [<c00b6368>] (kill_block_super+0x1c/0x38)
> [<c00b6368>] (kill_block_super+0x1c/0x38) from [<c00b66c0>] (deactivate_super+0x68/0x8c)
> [<c00b66c0>] (deactivate_super+0x68/0x8c) from [<c00cd734>] (sys_umount+0x2c8/0x2fc)
> [<c00cd734>] (sys_umount+0x2c8/0x2fc) from [<c0026b1c>] (__sys_trace_return+0x0/0x24)
>
> Any help would be welcome!
>
> Many thanks,
> Dieter
>
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
next prev parent reply other threads:[~2009-11-11 14:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-06 14:59 kirkwood / openrd: umount problem using mdev (busybox) Dieter Kiermaier
2009-11-11 14:55 ` Dieter Kiermaier [this message]
2009-11-11 16:11 ` Nicolas Pitre
2009-11-11 16:27 ` Dieter Kiermaier
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=200911111555.02938.dk-arm-linux@gmx.de \
--to=dk-arm-linux@gmx.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).