On Fri, Jul 17, 2015 at 01:22:02PM +0100, Mel Gorman wrote: > From: Nicolai Stange <nicstange@xxxxxxxxx> > > Commit 0e1cc95b4cc7 ("mm: meminit: finish initialisation of struct pages > before basic setup") introduced a rwsem to signal completion of the > initialization workers. > > Lockdep complains about possible recursive locking: > ============================================= > [ INFO: possible recursive locking detected ] > 4.1.0-12802-g1dc51b8 #3 Not tainted > --------------------------------------------- > swapper/0/1 is trying to acquire lock: > (pgdat_init_rwsem){++++.+}, > at: [<ffffffff8424c7fb>] page_alloc_init_late+0xc7/0xe6 > > but task is already holding lock: > (pgdat_init_rwsem){++++.+}, > at: [<ffffffff8424c772>] page_alloc_init_late+0x3e/0xe6 > > Replace the rwsem by a completion together with an atomic > "outstanding work counter". > > [peterz@xxxxxxxxxxxxx: Barrier removal on the grounds of being pointless] > [mgorman@xxxxxxx: Applied review feedback] > Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx> > Signed-off-by: Mel Gorman <mgorman@xxxxxxx> Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> Thanks! -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>