> From: Paolo Bonzini [mailto:pbonz...@redhat.com] > On 22/01/19 08:15, Pavel Dovgalyuk wrote: > > Scheduling new BH does not create a signal for the vCPU to suspend the > > execution and process the main loop events (in record/replay we > > synchronize these two threads). > > I think the bug is that in rr mode it should do so and cause a cpu_exit.
Right. I combined adding cpu_exit (into our private version) and increasing an icount command-line parameter. > If replace these bottom halves with timers, other bottom halves from > the block layer may have the same issue; if you replace _all_ bottom > halves with timers you have performance issues because bottom halves try > very hard to avoid locks. I see. > Unfortunately this is getting really ugly... Basically, rr is > reintroducing all the complications with iothread_requesting_mutex that > were removed with mtTCG. True. There are too many non-synchronized entities: bottom halves, worker threads, iothreads, timers... But RR is only possible when we have kind of synchronization objects for them. Pavel Dovgalyuk