qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] qemu-user performance


From: Etienne Dublé
Subject: [Qemu-devel] qemu-user performance
Date: Fri, 16 Nov 2018 14:55:01 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

Hello,
Please forgive my little knowledge about qemu internals.
Some time ago I had an idea that might improve usage of qemu user mode (I believe) and I would like to get your thoughts about it. Context: qemu-user is used by more and more people to run containers (e.g. docker) based on a different CPU architecture (e.g. the OS of a raspberry pi). With linux kernel module "binfmt_misc", the emulation is handled transparently by qemu. Usually, a shell session will be run first, and then many subprocesses. And of course, each of these processes is actually a qemu process running in "user-mode". For example, if one types "make" to compile some code, there will be a "qemu make" process, then probably 10 or more "qemu gcc" processes, etc. Since all of these are different qemu processes, they do not share any knowledge, so each time a new one is spawn, it has to translate the binary code of libc, ld-linux, any other library it uses, its own binary code, etc. When it ends, all this work is lost, and new processes will have to reprocess a big part of the very same code over and over again. So the idea is: what if we could share the cache of code already translated between all those processes?
There would be sereral ways to achieve this:
* use a shared memory area for the cache, and locking mechanisms.
* have a (maybe optional) daemon that would manage the cache of all processes. * python-like model: the first time a binary or library is translated, save this translated code in a cache file next to the original file, with different extension. Please let me know what you think about it, if something similar has already been studied, or if I miss something obvious.
Thanks
Etienne

--
Etienne Dublé
CNRS / LIG - Bâtiment IMAG
700 avenue Centrale - 38401 St Martin d'Hères
Bureau 426 - Tel 0457421431



reply via email to

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