On Mon, May 09, 2016 at 13:21:50 +0200, Paolo Bonzini wrote: > On 30/04/2016 05:40, Emilio G. Cota wrote: > >> The tb_flush > >> > is a fairly rare occurrence its not like its on the critical performance > >> > path (although of course pathological cases are possible). > > This is what I thought from the beginning, but wanted to give this > > alternative a go anyway to see if it was feasible. > > > > On my end I won't do any more work on this approach. Will go back > > to locks, despite Paolo's (justified) dislike for them =) > > Which locks? tb_lock during tb_find_fast? The problem with that was > that it slowed down everything a lot, wasn't it?
By "locks" I meant somehow forcing other threads/vcpus to stop, to then perform tb_flush. This can be achieved with a bunch of primitives such as condition variables (*gaaah*) -- these of course involve "locks" :P The removal of tb_lock() when looking up tb's is orthogonal to this. > To me, the RCU idea is not really about making tb_flush (the rare case) > faster; it was more about keeping the rest simple and fast. Well I agree with this idea; I wanted to see how far we could take it. E.