Re: [PATCH PREEMPT RT] rt-mutex: fix deadlock in device mapper

From: Mike Galbraith
Date: Thu Nov 23 2017 - 09:51:01 EST


On Thu, 2017-11-23 at 15:42 +0100, Sebastian Siewior wrote:
> On 2017-11-21 22:20:51 [+0100], Mike Galbraith wrote:
> > On Tue, 2017-11-21 at 14:56 -0500, Mikulas Patocka wrote:
> > >
> > > If we don't have any reason why it is needed to unplug block requests when
> > > a spinlock is taken - so let's not do this.
> >
> > That's perfectly fine.  I guess I shouldn't have even mentioned having
> > encountered unplug at mutex being insufficient.
>
> While at it, I intend to drop
> fs-jbd2-pull-your-plug-when-waiting-for-space.patch from the -RT queue
> for v4.14 which does
>
> --- a/fs/jbd2/checkpoint.c
> +++ b/fs/jbd2/checkpoint.c
> @@ -116,6 +116,8 @@ void __jbd2_log_wait_for_space(journal_t
> nblocks = jbd2_space_needed(journal);
> while (jbd2_log_space_left(journal) < nblocks) {
> write_unlock(&journal->j_state_lock);
> + if (current->plug)
> + io_schedule();
> mutex_lock(&journal->j_checkpoint_mutex);
>
> /*
>
> and is/was probably a workaround for the missing schedule while blocking
> on mutex/rwsem.

Yeah, that's now code without a meaningful job.

-Mike