Messages in this thread | | | Date | Mon, 23 Nov 2020 19:45:38 +0900 | From | Byungchul Park <> | Subject | Re: [RFC] Are you good with Lockdep? |
| |
On Mon, Nov 16, 2020 at 06:05:47PM +0900, Byungchul Park wrote: > On Thu, Nov 12, 2020 at 11:58:44PM +0900, Byungchul Park wrote: > > > > FYI, roughly Lockdep is doing: > > > > > > > > 1. Dependency check > > > > 2. Lock usage correctness check (including RCU) > > > > 3. IRQ related usage correctness check with IRQFLAGS > > > > > > > > 2 and 3 should be there forever which is subtle and have gotten matured. > > > > But 1 is not. I've been talking about 1. But again, it's not about > > > > replacing it right away but having both for a while. I'm gonna try my > > > > best to make it better. > > > > > > And I believe lockdep does handle 1. Perhaps show some tangible use case > > > that you want to cover that you do not believe that lockdep can handle. If > > > lockdep cannot handle it, it will show us where lockdep is lacking. If it > > > can handle it, it will educate you on other ways that lockdep can be > > > helpful in your development ;-) > > 1) OK. Lockdep might work with trylock well. > 2) Definitely Lockdep cannot do what Cross-release was doing. > 3) For readlock handling, let me be back later and give you examples. I > need check current Lockdep code first. But I have to all-stop what > I'm doing at the moment because of a very big personal issue, which > is a sad thing.
I just found that Boqun Feng has made a lot of changes into Lockdep recently to support tracking recursive read locks, while I was checking how the current Lockdep deals with read locks.
I need to read the code more.. I'll add my opinion on it once I see how it works. Before that, I'd like to share my approach so that you guys can see what means to track *wait* and *event*, how simply the tool can work and what exactly a deadlock detection tool should do. Let me add my patches onto this thread right away.
I understand you all don't want to replace such a stable tool but I hope you to see *the* right way to track things for that purpose. Again, I do never touch any other functions of Lockdep including all great efforts that have been made but dependency tracking.
Thanks, Byungchul
| |