On Mon, Jun 6, 2022 at 12:19 PM John Johansen <john.johansen@xxxxxxxxxxxxx> wrote: > > > I suspect that part is that both Apparmor and IPC use the idr local lock. > > bingo, > > apparmor moved its secids allocation from a custom radix tree to idr in > > 99cc45e48678 apparmor: Use an IDR to allocate apparmor secids > > and ipc is using the idr for its id allocation as well The thing is, I'm not entirely convinced you can deadlock on a local lock. A local lock is per-cpu, so one CPU holding that lock won't actually block another CPU holding it. Even on RT, I think. I *think* local locks are useful for lockdep not because of any lock chains they introduce, but because of how lockdep catches irq mis-use (where they *can* deadlock). But I may be entirely wrong, and maybe that lock chain through the local lock actually does matter. Let's bring in people who actually know what they are doing, rather than my wild speculation. Thomas? Linus