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-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html