Re: [PATCH v2] locking/rwbase: Prevent indefinite writer starvation

From: Davidlohr Bueso
Date: Thu Jan 19 2023 - 13:21:09 EST


On Thu, 19 Jan 2023, Mel Gorman wrote:

The race could be closed by moving wait_lock acquisition before the
atomic_sub in rwbase_write_lock() but it expands the scope of the wait_lock
and I'm not sure that's necessary for either correctness or preventing
writer starvation. It's a more straight-forward fix but expanding the
scope of a lock unnecessarily has been unpopular in the past.

Curiously, this is the documented behavior:

* down_write/write_lock()
* 1) Lock rtmutex
* 2) Remove the reader BIAS to force readers into the slow path