On Fri, 15 Mar 2002, Neil Brown wrote: New developement. I just discovered one thing, which might be different from Your setup. 1. We have autodetection 2. in rc.boot scripts we have also: if [ -s /etc/raidtab -a -x /sbin/raidstart ]; then /sbin/raidstart -a [ -x /sbin/raid0run ] && [ -n "$(sed -ne '/^[^#]*raid-level[ ]*0/p' /etc/raidtab)" ] && /sbin/raid0run -a elif [ -s /etc/mdtab -a -x /sbin/mdadd ]; then /sbin/mdadd -ar fi So after commenting those out, there is no more freeze on cat /proc/mdstat and resinhronization went trhu OK. So one of above commands still causes some deadlock. I wrapped all down/up andl lock with printk's. Perhaps folowing boot print will help to find what's wrong (I have more of those when running if You are interested, since it looks like we have way to much locks now in the code, like on every cat /proc/mdstat): md: raid1 personality registered as nr 3 md: raid5 personality registered as nr 4 md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27 md: Autodetecting RAID arrays. md: autorun ... md: considering hdi3 ... md: adding hdi3 ... md: adding hdg3 ... md: adding hde3 ... kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); alloc_mddev down_read(&all_mddevs_sem); alloc_mddev up_read(&all_mddevs_sem); md: created md2 md: bind<hde3,1> md: bind<hdg3,2> md: bind<hdi3,3> md: running: <hdi3><hdg3><hde3> md: hdi3's event counter: 0000000c md: hdg3's event counter: 0000000c md: hde3's event counter: 0000000c md2: max total readahead window set to 496k md2: 2 data-disks, max readahead per data-disk: 248k raid5: allocated 3291kB for md2 raid5: raid level 5 set md2 active with 3 out of 3 devices, algorithm 0 md_update_sb !down_trylock(&mddev->reconfig_sem md: updating md2 RAID superblock on device md: hdi3 [events: 0000000d]<6>(write) hdi3's sb offset: 538112 md: hdg3 [events: 0000000d]<6>(write) hdg3's sb offset: 538112 md: hde3 [events: 0000000d]<6>(write) hde3's sb offset: 538112 md: unlock_mddev UNlocking device md: considering hdi2 ... md: adding hdi2 ... md: adding hdg2 ... md: adding hde2 ... kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); alloc_mddev down_read(&all_mddevs_sem); alloc_mddev up_read(&all_mddevs_sem); md: created md1 md: bind<hde2,1> md: bind<hdg2,2> md: bind<hdi2,3> md: running: <hdi2><hdg2><hde2> md: hdi2's event counter: 00000010 md: hdg2's event counter: 00000010 md: hde2's event counter: 00000010 md1: max total readahead window set to 496k md1: 2 data-disks, max readahead per data-disk: 248k raid5: allocated 3291kB for md1 raid5: raid level 5 set md1 active with 3 out of 3 devices, algorithm 0 md_update_sb !down_trylock(&mddev->reconfig_sem md: updating md1 RAID superblock on device md: hdi2 [events: 00000011]<6>(write) hdi2's sb offset: 59456448 md: hdg2 [events: 00000011]<6>(write) hdg2's sb offset: 59456448 md: hde2 [events: 00000011]<6>(write) hde2's sb offset: 59456448 md: unlock_mddev UNlocking device md: considering hdi1 ... md: adding hdi1 ... md: adding hdg1 ... md: adding hde1 ... kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); alloc_mddev down_read(&all_mddevs_sem); alloc_mddev up_read(&all_mddevs_sem); md: created md0 md: bind<hde1,1> md: bind<hdg1,2> md: bind<hdi1,3> md: running: <hdi1><hdg1><hde1> md: hdi1's event counter: 0000001a md: hdg1's event counter: 0000001a md: hde1's event counter: 0000001a md: RAID level 1 does not need chunksize! Continuing anyway. md0: max total readahead window set to 124k md0: 1 data-disks, max readahead per data-disk: 124k raid1: raid set md0 active with 3 out of 3 mirrors md_update_sb !down_trylock(&mddev->reconfig_sem md: updating md0 RAID superblock on device md: hdi1 [events: 0000001b]<6>(write) hdi1's sb offset: 56128 md: hdg1 [events: 0000001b]<6>(write) hdg1's sb offset: 56128 md: hde1 [events: 0000001b]<6>(write) hde1's sb offset: 56128 md: unlock_mddev UNlocking device md: ... autorun DONE. kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev_lock_interruptible down_read(&all_mddevs_sem); md: lock_mddev_interruptible Locking device kdev_to_mddev_lock_interruptible up_read(&all_mddevs_sem); md: array md0 already exists! kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev_lock_interruptible down_read(&all_mddevs_sem); md: lock_mddev_interruptible Locking device kdev_to_mddev_lock_interruptible up_read(&all_mddevs_sem); md: array md1 already exists! kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); kdev_to_mddev_lock_interruptible down_read(&all_mddevs_sem); md: lock_mddev_interruptible Locking device kdev_to_mddev_lock_interruptible up_read(&all_mddevs_sem); md: array md2 already exists! kdev_to_mddev down_read(&all_mddevs_sem); kdev_to_mddev up_read(&all_mddevs_sem); __________________________________________________________________ | Matjaz Godec | Agenda d.o.o. | ISP for business | | Tech. Manager | Gosposvetska 84 | WAN networks | | gody@slon.net | si-2000 Maribor | Internet/Intranet | | tel:+386.2.2340860 | Slovenija | Application servers | |http://www.slon.net |http://www.agenda.si | Caldera OpenLinux | - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html