Re: [RT WARNING] DEBUG_LOCKS_WARN_ON(rt_mutex_owner(lock) != current) with fsfreeze (4.19.25-rt16)
From: Oleg Nesterov
Date: Tue Apr 30 2019 - 10:43:08 EST
I have cloned linux-rt-devel.git
If I understand correctly, in rt rw_semaphore is actually defined in rwsem_rt.h
so percpu_rwsem_acquire() should probably do
sem->rw_sem.rtmutex.owner = current;
?
On 04/30, Oleg Nesterov wrote:
>
> Sorry, I don't understand...
>
> On 04/30, Peter Zijlstra wrote:
> >
> > Thaw then does the reverse, frobs lockdep
>
> Yes, in particular it does
>
> lockdep_sb_freeze_acquire()
> percpu_rwsem_acquire()
> sem->rw_sem.owner = current;
>
>
> > and then does: percpu_up_write().
> >
> > percpu_up_write() on up_write(). And note how __up_write() has:
> >
> > DEBUG_RWSEMS_WARN_ON(sem->owner != current, sem);
>
> and everything looks correct, sem->owner == current by the time
> thaw_super_locked() does percpu_up_write/up_write.
>
> Oleg.