qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] RFC: running the user interface in a thread ...


From: Kevin Wolf
Subject: Re: [Qemu-devel] RFC: running the user interface in a thread ...
Date: Tue, 19 Jan 2016 13:51:09 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Am 18.01.2016 um 10:54 hat Gerd Hoffmann geschrieben:
>   Hi folks,
> 
> I'm starting to investigate if and how we can move the user interface
> code into its own thread instead of running it in the iothread and
> therefore avoid blocking the guest in case some UI actions take a little
> longer.
> 
> opengl and toolkits tend to be bad at multithreading.  So my idea is to
> have a single thread dedicated to all the UI + rendering stuff, possibly
> let even the virglrenderer run in ui thread context.
> 
> I think we have to make that opt-in per user interface, so we can go
> forward step by step.
> 
> The ui thread will need quite some stuff provided by the mainloop.  Wait
> for all kinds of events (from vnc socket, x11 connection, ...).
> Probably timers too.  Wait for events from other threads (guest screen
> updates).
> 
> Suggestions how to tackle that?
> Can I reuse the qemu mainloop code outside of the iothread?

That should be possible. The block layer runs additional main loops in
dataplane threads. I think AioContext is the keyword here, so that you
process only events in your own UI context.

I'm copying Stefan who knows this stuff a bit better than me.

> Maybe it'll be better to go straight for a glib main loop?
> Is it possible to wait for file handle events and posix condition
> variables at the same time?
> 
> Other notes / hints / suggestions / ideas?

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]