[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
- [Qemu-devel] qemu-user performance,
Etienne Dublé <=