Thread (18 messages) 18 messages, 5 authors, 2017-10-25

Re: [RESEND PATCH 1/3] completion: Add support for initializing completion with lockdep_map

From: Byungchul Park <hidden>
Date: 2017-10-21 02:23:58
Also in: linux-fsdevel, linux-mm, linux-xfs, lkml

On Sat, Oct 21, 2017 at 4:58 AM, Bart Van Assche [off-list ref] wrote:
Sorry but I'm not sure that's the best possible answer. In my opinion
avoiding that completion objects have dependencies on other lock objects,
e.g. by avoiding to wait on a completion object while holding a mutex, is a
far superior strategy over adding cross-release checking to completion
objects. The former strategy namely makes it unnecessary to add
cross-release checking to completion objects because that strategy ensures
that these completion objects cannot get involved in a deadlock. The latter
It's true if we force it. But do you think it's possible?
strategy can lead to false positive deadlock reports by the lockdep code,
What do you think false positives come from? It comes from assigning
lock classes falsely where we should more care, rather than lockdep code
itself. The same is applicable to cross-release.
something none of us wants.

A possible alternative strategy could be to enable cross-release checking
only for those completion objects for which waiting occurs inside a critical
section.
Of course, it already did. Cross-release doesn't consider any waiting
outside of critical sections at all, and it should do.
As explained in another e-mail thread, unlike the lock inversion checking
performed by the <= v4.13 lockdep code, cross-release checking is a heuristic
that does not have a sound theoretical basis. The lock validator is an
It's not heuristic but based on the same theoretical basis as <=4.13
lockdep. I mean, the key basis is:

   1) What causes deadlock
   2) What is a dependency
   3) Build a dependency when identified
important tool for kernel developers. It is important that it produces as few
false positives as possible. Since the cross-release checks are enabled
automatically when enabling lockdep, I think it is normal that I, as a kernel
developer, care that the cross-release checks produce as few false positives
as possible.
No doubt. That's why I proposed these patches.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help