On Mon, 2007-08-27 at 23:01 +0300, Avi Kivity wrote: > Luca wrote: > >> if it isn't guaranteed to be the current thread, we're back > >> with scheduler involvement, and possibly cacheline bouncing. > >> > > > > It's possible to use pthread_sigmask() to block the signal on all > > threads but one. But this would require changing the rest of the > > emulator; why not just select() the fd in a dedicated thread? > > > > When the guest issues that hypercall, it really wants the I/O to start. > If it's a separate thread, the scheduler could choose to let the guest > execute and keep the I/O thread waiting (CFS isn't likely to do that, > but it's possible). > > The scheduler could also choose to run the I/O thread on a different > processor, and now all the data structures carefully loaded into cache > by the guest need to be bounced to the processor running the I/O thread. > > I think the best policy here is to cover our asses and allow userspace > to choose which method it wants to use; and we should start with the > guest exiting to userspace to avoid the costs I mentioned.
I agree that we should start with an exit and then later add an eventfd mechanism if it is needed. Regards, Anthony Liguori ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel