Re: 3.4.4-rt13: btrfs + xfstests 006 = BOOM.. and a bonus rt_mutexdeadlock report for absolutely free!

From: Mike Galbraith
Date: Tue Jul 17 2012 - 00:18:42 EST


On Mon, 2012-07-16 at 13:03 -0400, Steven Rostedt wrote:
> On Mon, 2012-07-16 at 18:36 +0200, Mike Galbraith wrote:
> >
> > > > Ouch, you just turned the rt_read_lock() into a spin lock. If a higher
> > > > priority process preempted a lower priority process that holds the same
> > > > lock, it will deadlock.
> > >
> > > Hm, how, it's doing cpu_chill()?
> >
> > 'course PI is toast, so *poof*. Since just enabling the lockdep bits
> > seems to fix it up, maybe that's the patchlet to submit (less is more).
>
> There's that too. But the issue I was talking about is with all trylock
> loops. As holding an rt-mutex now disables migration, if a high priority
> process preempts a task that holds the lock, and then the high prio task
> starts spinning waiting for that lock to release, the lower priority
> process will never get to run to release it. The cpu_chill() doesn't
> help.

Hrm. I better go make a testcase, this one definitely wants pounding
through thick skull.

I think all of the chilling in patchlet is really ugly anyway, so would
prefer to trash it all, just enable the lockdep bits. If it turns out
we really do need to bounce off of counts, go get a bigger hammer when
the need arises. For the nonce, the pre-installed hammer _seemed_ big
enough for the job.

What's a good way to beat living hell out of btrfs? I've never been
into destructive fs testing, since they usually lived on my one and only
disk. x3550 has two, and OS clone has already been sacrificed.

-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/