Tejun Heo wrote:
Tejun Heo wrote:
Hello guys,
This is the second take of brsem (big reader semaphore).
Nick, unfortunately, simple array of rwsem's does not work as lock
holders are not pinned down to cpus and may release locks on other
cpus.
[...]
(Nick, what do you think about the new implementation?)
As I said, I think I'd prefer to see an implementation that returns
a token from down_read to be used in up_read (ie. the slot # of the
counter which has been downed).
This obviously no longer makes it a drop in replacement for an rwsem.
But could such a beast ever be considered so? Would that make your
VFS patches really ugly?
The upshot of that would be that you could build the whole thing
from rwsem infrastructure and have basically zero other locking
mechanisms or complexity that you don't want in a synchronisation
primitive.