Re: [PATCH v5 07/15] locking/lockdep: Free lock classes that are no longer in use

From: Bart Van Assche
Date: Tue Feb 12 2019 - 19:42:14 EST


On Thu, 2019-01-10 at 16:24 +-0100, Peter Zijlstra wrote:
+AD4 +AFs ... +AF0
+AD4 +AEAAQA -4579,17 +-4559,19 +AEAAQA static void lockdep+AF8-reset+AF8-lock+AF8-reg(struc
+AD4 +ACo-/
+AD4 static void lockdep+AF8-reset+AF8-lock+AF8-imm(struct lockdep+AF8-map +ACo-lock)
+AD4 +AHs
+AD4 - struct pending+AF8-free +ACo-pf+ADs
+AD4 unsigned long flags+ADs
+AD4 +- LIST+AF8-HEAD(zapped)+ADs
+AD4
+AD4 - pf +AD0 get+AF8-pending+AF8-free+AF8-lock+AF8-imm(+ACY-flags)+ADs
+AD4 - if (+ACE-pf)
+AD4 - return+ADs
+AD4 - +AF8AXw-lockdep+AF8-reset+AF8-lock(pf, lock)+ADs
+AD4 - arch+AF8-spin+AF8-unlock(+ACY-lockdep+AF8-lock)+ADs
+AD4 - raw+AF8-local+AF8-irq+AF8-restore(flags)+ADs
+AD4 +- raw+AF8-local+AF8-irq+AF8-save(flags)+ADs
+AD4 +- if (+ACE-graph+AF8-lock())
+AD4 +- goto out+AF8-irq+ADs
+AD4 +-
+AD4 +- +AF8AXw-lockdep+AF8-reset+AF8-lock(+ACY-zapped, lock)+ADs
+AD4 +- +AF8AXw-free+AF8-zapped+AF8-classes(+ACY-zapped)+ADs
+AD4
+AD4 - free+AF8-zapped+AF8-classes(+ACY-pf-+AD4-rcu+AF8-head)+ADs
+AD4 +- graph+AF8-unlock()+ADs
+AD4 +-out+AF8-irq:
+AD4 +- raw+AF8-local+AF8-irq+AF8-restore(flags)+ADs
+AD4 +AH0

If graph+AF8-lock() is used inside lockdep+AF8-free+AF8-key+AF8-range+AF8-imm() and/or
lockdep+AF8-reset+AF8-lock+AF8-imm() instead of arch+AF8-spin+AF8-lock() then the self-tests fail.
Anyway, I will integrate this patch in my patch series.

Thanks,

Bart.