hung in raise_barrier() in raid1.c -- any ideas?
Hi,
I've got a fairly beefy (32 cpus, 64GB ram, isci-based SAS disks, etc.) embedded system running 2.6.27.
We're seeing issues where disk operations suddenly seem to stall. In the most recent case we had the hung-task watchdog indicate that md1_resync was stuck for more than 120sec in raise_barrier().
There are a bunch of "normal" tasks also stuck in wait_barrier(), so based on that I assume we're stuck in the second call to wait_event_lock_irq().
Has anyone seen anything like this? Could commit 73d5c38 be related? What about 1d9d524?
Also, what's the meaning of RESYNC_DEPTH?
Thanks,
Chris
Signature · 6 lines
Chris Friesen Software Designer 3500 Carling Avenue Ottawa, Ontario K2H 8E9 www.genband.com
Quoted 10 lines · Chris Friesen
Hi,
I've got a fairly beefy (32 cpus, 64GB ram, isci-based SAS disks, etc.) embedded system running 2.6.27.
We're seeing issues where disk operations suddenly seem to stall. In the most recent case we had the hung-task watchdog indicate that
md1_resyncwas stuck for more than 120sec inraise_barrier().There are a bunch of "normal" tasks also stuck in
wait_barrier(), so based on that I assume we're stuck in the second call towait_event_lock_irq().Has anyone seen anything like this? Could commit 73d5c38 be related? What about 1d9d524?
Could d6b42dc be related?
Chris
Quoted 11 lines · On Thu, 20 Sep 2012 11:55:02 -0600 Chris Friesen <[email protected]>…
Quoted 10 lines · Chris Friesen
Hi,
I've got a fairly beefy (32 cpus, 64GB ram, isci-based SAS disks, etc.) embedded system running 2.6.27.
We're seeing issues where disk operations suddenly seem to stall. In the most recent case we had the hung-task watchdog indicate that
md1_resyncwas stuck for more than 120sec inraise_barrier().
Quoted 8 lines
Quoted 6 lines
There are a bunch of "normal" tasks also stuck in
wait_barrier(), so based on that I assume we're stuck in the second call towait_event_lock_irq().Has anyone seen anything like this? Could commit 73d5c38 be related? What about 1d9d524?
Could d6b42dc be related?
That last one seems more likely. Does the scenario fit your config. i.e. is your RAID1 being used under LVM?
If it does, then I would say it is very likely this issue.
Quoted 1 line
Also, what's the meaning of
RESYNC_DEPTH?
The maximum number of resync requests that can be concurrently active.
RESYNC_WINDOW should really be RESYNC_BLOCK_SIZE * RESYNC_DEPTH I wonder why it isn't.
NeilBrown
Quoted 21 lines · NeilBrown
Quoted 18 lines · On Thu, 20 Sep 2012 11:55:02 -0600 Chris Friesen<[email protected]>…
Quoted 16 lines · Chris Friesen
Hi,
I've got a fairly beefy (32 cpus, 64GB ram, isci-based SAS disks, etc.) embedded system running 2.6.27.
We're seeing issues where disk operations suddenly seem to stall. In the most recent case we had the hung-task watchdog indicate that
md1_resyncwas stuck for more than 120sec inraise_barrier().There are a bunch of "normal" tasks also stuck in
wait_barrier(), so based on that I assume we're stuck in the second call towait_event_lock_irq().Has anyone seen anything like this? Could commit 73d5c38 be related? What about 1d9d524?
Quoted 6 lines
Quoted 1 line
Could d6b42dc be related?
That last one seems more likely. Does the scenario fit your config. i.e. is your RAID1 being used under LVM?
If it does, then I would say it is very likely this issue.
Yes, we're using it under LVM. I've added some instrumentation to tell if we're hitting that case. The current->bio_list handling is a bit different in 2.6.27 but I think I figured out the equivalent to the patch.
Interesting that it took this long to fix that issue.
Quoted 3 lines
Quoted 1 line
Also, what's the meaning of
RESYNC_DEPTH?The maximum number of resync requests that can be concurrently active.
And each request would resync a single block?
Chris
Quoted 34 lines · On Thu, 20 Sep 2012 17:05:23 -0600 Chris Friesen <[email protected]>…
Quoted 21 lines · NeilBrown
Quoted 18 lines · On Thu, 20 Sep 2012 11:55:02 -0600 Chris Friesen<[email protected]>…
Quoted 16 lines · Chris Friesen
Hi,
I've got a fairly beefy (32 cpus, 64GB ram, isci-based SAS disks, etc.) embedded system running 2.6.27.
We're seeing issues where disk operations suddenly seem to stall. In the most recent case we had the hung-task watchdog indicate that
md1_resyncwas stuck for more than 120sec inraise_barrier().There are a bunch of "normal" tasks also stuck in
wait_barrier(), so based on that I assume we're stuck in the second call towait_event_lock_irq().Has anyone seen anything like this? Could commit 73d5c38 be related? What about 1d9d524?
Quoted 6 lines
Quoted 1 line
Could d6b42dc be related?
That last one seems more likely. Does the scenario fit your config. i.e. is your RAID1 being used under LVM?
If it does, then I would say it is very likely this issue.
Yes, we're using it under LVM. I've added some instrumentation to tell if we're hitting that case. The
current->bio_listhandling is a bit different in 2.6.27 but I think I figured out the equivalent to the patch.
Quoted 8 lines
Interesting that it took this long to fix that issue.
Quoted 3 lines
Quoted 1 line
Also, what's the meaning of
RESYNC_DEPTH?The maximum number of resync requests that can be concurrently active.
And each request would resync a single block?
Each request will resync up to RESYNC_BLOCK_SIZE bytes - i.e. up to 64K.
NeilBrown