Re: Raid5 race patch (fwd)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux