[Top][All Lists]

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

[Qemu-discuss] Using qemu-arm as an interpreter

From: Dave Flogeras
Subject: [Qemu-discuss] Using qemu-arm as an interpreter
Date: Thu, 14 May 2015 08:33:09 -0300

I have qemu-arm (user) installed on my machine.  I use to to chroot
into arm sysroots (via binfmt_misc) and also I use it to run
cross-compiled unit test suites on an amd64 host.

For the purpose of this example, I have two different arm sysroots.
Both target the raspberry pi.  One is glibc based, the other uses
uclibc.  I have matching cross compilers for each target.

When I compile and run a test program for uclibc, let's say with the following:
qemu-arm -L /path/to/my/uclibc/sysroot  ./my_cross_compiled_test

It loads and runs within a few seconds. Running more in succession
returns even quicker, I assume after the loader has cached all of the
target's runtime libraries in RAM.

If I recompile against the glibc sysroot, and run the equivalent
command (changing the -L option to point at the correct path) it seems
to hang.  Monitoring in 'top' shows it consumes about 10% CPU for
maybe 3-4 seconds, then goes to 100% CPU and the RAM usage skyrockets.
It consumes eventually ~60% of my system RAM (16G) before returning.
It appears to execute the program.  If I repeat this, the only thing
that changes is that it doesn't take the few seconds before beginning
to consume so much RAM.  And no, the test program has very limited RAM
usage and cannot balloon.

This problem wasn't always the case, but I am not sure what caused it.
Recently, I upgraded from qemu-2.1.x to 2.2.x.  However, also the
glibc chroot was upgraded from glibc-2.19 to 2.20 in the same

Any help in this issue would be greatly appreciated

reply via email to

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