A couple of issues can arise when working with lockdep:
- Repeated module loading and unloading can cause lockdep's internal lock class limit to be exceeded (the reason, as explained within the kernel documentation, is that loading a x.ko kernel module creates a new set of lock classes for all its locks, while unloading x.ko does not remove them; it's actually reused). In effect, either don't repeatedly load/unload modules or reset the system.
- Especially in those cases where a data structure has an enormous number of locks (such as an array of structures), failing to properly initialize every single lock can result in lockdep lock-class overflow.
The debug_locks integer is set to 0 whenever lock debugging is disabled (even on a debug kernel); this can result in this message showing up:Â *WARNING* lock debugging disabled!! - possibly due to a lockdep warning. This could even happen due to lockdep issuing...