On Thu, 16 Jun 2011 11:55:31 +1000 NeilBrown <neilb@xxxxxxx> wrote: > Hmmm... maybe we are missing the wakeup call. I can find where we wake-up > anyone waiting for an overlapping read request to complete, but I cannot find > where we wake-up someone waiting for when an overlapping write request > completes. That should probably go in handle_stripe_clean_event. On second thoughts, I can find where it is handled correctly for an overlapping write request. So I'm not stumped again. I tried looking at a disassembly listing of make_request to confirm which 'schedule' call it was, but when I disassemble make_request it is about 1700 bytes long where as you trace show: make_request+0x138/0x3d0 That it is 0x3d0 long, or about 900 bytes. That is odd. Can you get a disassembly to show me? e.g. gdb raid456.ko disassemble make_request Thanks, NeilBrown > > Do you have the system still hanging in this state? If not, can you get it > back into this state easily? > If so, you can force a wakeup with the magic incantation: > > cat /sys/block/mdXX/md/suspend_lo > /sys/block/mdXX/md/suspend_lo > > (with 'XX' suitably substituted). > > If that makes a difference, then I know I am on the right track > > Thanks, > NeilBrown > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html