Re: [PATCH 03/32] locking/lockdep: lockdep_set_no_check_recursion()

From: Waiman Long
Date: Tue May 09 2023 - 16:28:42 EST

On 5/9/23 16:18, Kent Overstreet wrote:
On Tue, May 09, 2023 at 09:31:47PM +0200, Peter Zijlstra wrote:
On Tue, May 09, 2023 at 12:56:28PM -0400, Kent Overstreet wrote:
This adds a method to tell lockdep not to check lock ordering within a
lock class - but to still check lock ordering w.r.t. other lock types.

This is for bcachefs, where for btree node locks we have our own
deadlock avoidance strategy w.r.t. other btree node locks (cycle
detection), but we still want lockdep to check lock ordering w.r.t.
other lock types.

ISTR you had a much nicer version of this where you gave a custom order
function -- what happend to that?
Actually, I spoke too soon; this patch and the other series with the
comparison function solve different problems.

For bcachefs btree node locks, we don't have a defined lock ordering at
all - we do full runtime cycle detection, so we don't want lockdep
checking for self deadlock because we're handling that but we _do_ want
lockdep checking lock ordering of btree node locks w.r.t. other locks in
the system.

Maybe you can use lock_set_novalidate_class() instead.