On (25/02/09 01:20), Sergey Senozhatsky wrote: > So I moved lockdep class keys to per-zram device and per-zsmalloc pool > to separate the lockdep chains. Looks like that did the trick. > > [..] > > [ 1714.900906] [ T172] Chain exists of: > ptlock_ptr(ptdesc)#2 --> zram-entry->lock --> &zstrm->lock > > [ 1714.903183] [ T172] Possible unsafe locking scenario: > > [ 1714.904463] [ T172] CPU0 CPU1 > [ 1714.905380] [ T172] ---- ---- > [ 1714.906293] [ T172] lock(&zstrm->lock); > [ 1714.907006] [ T172] lock(zram-entry->lock); > [ 1714.908204] [ T172] lock(&zstrm->lock); > [ 1714.909347] [ T172] lock(ptlock_ptr(ptdesc)#2); > [ 1714.910179] [ T172] > *** DEADLOCK *** Actually, let me look at this more. Maybe I haven't figured it out yet.