[Lluís Vilanova]
> Hmmmm, with grub2 that's easier to do because it's going to test the
> bootloader that is the first thing going to start. In our case we'd
> have to bootstrap a full system and then start it in qemu just to run
> the test. That doesn't sound feasible to me (time and disk space to
> run the test), but I might be wrong.

It is possible to run "foreign" binaries in the current file system
using qemu.  I have used it with vmdebootstrap to build arm chroots on
x86.  I tested, and this seem to work when installing qemu-user:

  qemu-x86_64 /usr/bin/python /usr/bin/coz run --- /bin/ls

I'm not sure if qemu then start its own kernel or passes through the
perf syscalls to the underlying kernel.  But I can not test this in
Jessie:

# /sbin/sysctl kernel.perf_event_paranoid=3
kernel.perf_event_paranoid = 3
# TMPDIR= TEMP= TEMPDIR= TMP= chroot /scratch/chroot-sid su - 
mesg: ttyname failed: Success
# qemu-x86_64 /usr/bin/python /usr/bin/coz run --- /bin/ls
[libcoz.cpp:100] bootstrapping coz
[libcoz.cpp:128] Including MAIN, which is /bin/ls
[inspect.cpp:319] Unable to locate debug information for /bin/ls
[inspect.cpp:325] /lib/x86_64-linux-gnu/ld-2.24.so is not in scope
[inspect.cpp:325] /usr/lib/coz-profiler/libcoz.so is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libselinux.so.1 is not in scope
[inspect.cpp:325] /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libm-2.24.so is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libgcc_s.so.1 is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libpthread-2.24.so is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libpcre.so.3.13.3 is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libdl-2.24.so is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/librt-2.24.so is not in scope
[inspect.cpp:325] /usr/lib/x86_64-linux-gnu/libelf++.so.0 is not in scope
[inspect.cpp:325] /usr/lib/x86_64-linux-gnu/libdwarf++.so.0 is not in scope
[inspect.cpp:325] /lib/x86_64-linux-gnu/libc-2.24.so is not in scope
[profiler.cpp:75] Starting profiler thread
profile.coz
# /sbin/sysctl kernel.perf_event_paranoid  
kernel.perf_event_paranoid = 3
# logout
#

At least the value is inherited into qemu.

But if we can not get this to work before Christmas, we should probably
rewrite the test to only test if the value of kernel.perf_event_paranoid
is 2 or lower.

-- 
Happy hacking
Petter Reinholdtsen

Reply via email to