On Wed, Jan 01, 2014 at 02:51:30PM +0000, Richard W.M. Jones wrote:
In particular, any aarch64 binary which the test suite runs is
actually run under the qemu-arm64 interpreter (using binfmt). I'm
guessing this explains the extra file descriptor in some tests.
More precisely, qemu opens a file descriptor for the binary, and then
seems to leak that fd across fork/exec. Compare:
On the host:
$ ls -l /proc/self/fd
total 0
lrwx------. 1 rjones rjones 64 Jan 1 15:04 0 -> /dev/pts/7
lrwx------. 1 rjones rjones 64 Jan 1 15:04 1 -> /dev/pts/7
lrwx------. 1 rjones rjones 64 Jan 1 15:04 2 -> /dev/pts/7
lr-x------. 1 rjones rjones 64 Jan 1 15:04 3 -> /proc/18301/fd
In the qemu chroot:
$ ./arm64-chroot.sh
# ls -l /proc/self/fd
total 0
lrwx------. 1 root root 64 Jan 1 15:04 0 -> /dev/pts/7
lrwx------. 1 root root 64 Jan 1 15:04 1 -> /dev/pts/7
lrwx------. 1 root root 64 Jan 1 15:04 2 -> /dev/pts/7
lr-x------. 1 root root 64 Jan 1 15:04 3 -> /usr/bin/bash
lr-x------. 1 root root 64 Jan 1 15:04 4 -> /usr/bin/ls
lr-x------. 1 root root 64 Jan 1 15:04 5 -> /proc/18331/fd
So anything which is testing file descriptors should probably be
skipped until we can afford to run this on real hardware or qemu gets
system emulation of aarch64.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v