NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/56603: uvm: possible ABBA deadlocks



The following reply was made to PR kern/56603; it has been noted by GNATS.

From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
To: baijiaju1990%gmail.com@localhost
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/56603: uvm: possible ABBA deadlocks
Date: Tue, 4 Jan 2022 19:13:02 +0000

 I don't know anything offhand about the locking scheme in
 uvm_pdpolicy_clock.c, but I'm pretty sure that uvmpdpol_selectvictim
 and uvmpdpol_balancequeue never run concurrently -- they are only ever
 run sequentially by the pagedaemon thread.  So BUG1 is not possible.
 
 For BUG2, uvmpdpol_flush may run concurrently with
 uvmpdpol_selectvictim.  But the sequence you quoted,
 
 268 mutex_enter(&pg->interlock);
 328 mutex_enter(&s->lock);
 
 doesn't happen as your static analyzer thinks -- by the time we reach
 line 328, pg->interlock has been released by uvmpd_trylockowner (see
 uvm_pdaemon.c).  So BUG2 is not possible either.  (Actually the same
 reason rules out BUG1 too!)
 


Home | Main Index | Thread Index | Old Index