In 2.6.14, doing a cat /proc/mdstat during a raid1 resync results in long pauses. Can anyone tell me if adding kthread_should_stop() calls in the areas marked at the end of this post would help and be a correct way to fix this? Every 20.0s: cat /proc/mdstat Tue Nov 1 11:47:07 2005 Personalities : [raid0] [raid1] md1 : active raid1 sdb3[2] sda3[0] 154312256 blocks [2/1] [U_] [=============>.......] recovery = 65.3% (100798208/154312256) finish=20.1min speed=44337K/sec md0 : active raid1 sdb1[1] sda1[0] 987840 blocks [2/2] [UU] unused devices: Note / is md0 and should have no reason to be in device wait. /dev/md0 / reiserfs defaults 0 0 /dev/sda2 swap swap defaults 0 0 /dev/sdb2 swap swap defaults 0 0 /dev/mapper/vortex_vg-tmp /tmp reiserfs defaults 0 0 /dev/mapper/vortex_vg-var /var reiserfs defaults 0 0 /dev/mapper/vortex_vg-usr /usr reiserfs defaults 0 0 /dev/mapper/vortex_vg-data /mnt/data reiserfs defaults 0 0 vortex_vg is on top of /dev/md1 During a md1 raid 1 resync, as soon as I cat /proc/mdstat many things device wait (on an otherwise idle system): 132 root 15 0 0 0 0 D 0.0 0.0 0:03.64 pdflush 282 root 10 -5 0 0 0 D 0.0 0.0 0:00.23 md0_raid1 283 root 10 -5 0 0 0 D 0.0 0.0 0:00.19 reiserfs/0 28230 root 10 -5 0 0 0 D 0.7 0.0 0:15.99 md1_resync In linux/drivers/md/bitmap.c: static void bitmap_writeback_daemon(mddev_t *mddev) { struct bitmap *bitmap = mddev->bitmap; struct page *page; struct page_list *item; int err = 0; ------> if (signal_pending(current)) { printk(KERN_INFO "%s: bitmap writeback daemon got signal, exiting...\n", bmname(bitmap)); err = -EINTR; goto out; } In linux/drivers/md/md.c void md_check_recovery(mddev_t *mddev) { mdk_rdev_t *rdev; struct list_head *rtmp; if (mddev->bitmap) bitmap_daemon_work(mddev->bitmap); if (mddev->ro) return; ------> if (signal_pending(current)) { if (mddev->pers->sync_request) { printk(KERN_INFO "md: %s in immediate safe mode\n", mdname(mddev)); mddev->safemode = 2; } flush_signals(current); }