[Bug 246527] emulators/qemu-user-static: please add syscall 574 (__realpathat)

Mark Millard marklmi at yahoo.com
Sun May 17 23:35:28 UTC 2020


Kyle Evans wrote:

QUOTE
--- Comment #3 from Kyle Evans <kevans at freebsd.org> ---
Yup- I should have mentioned, if you do or are willing to build your own
qemu-user-static port, I have a patch available here that updates it to a
version that implements most of the latest syscalls and seemingly fixes issues
with multi-threaded stuff: 
https://reviews.freebsd.org/D24655
 -> It doesn't fix
the aforementioned signal regression, but it's generally stable.
END QUOTE

So I tried updating and then doing a poudriere bulk run on
amd64 targeting armv7 (/nxb-bin/ style). I'm getting my
historical style of hangups. First I'll list the example
for lld getting no cpu time (from top):

Building qt5-qmake-5.14.2 . . .

16570 root         52    0 540336Ki  199216Ki uwait   12   0:02   0.00% qemu-arm-static -0 /usr/bin/ld -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-s
. . . (long list of threads) . . .
16570 root         52    0 540336Ki  199216Ki uwait    5   0:00   0.00% qemu-arm-static -0 /usr/bin/ld -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-s

In other words (showing the thread count instead):

16570 root         34  52    0 540336Ki  199216Ki uwait   12   0:03   0.00% qemu-arm-static -0 /usr/bin/ld -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --ha

FYI, the matchup to that ld is:

16161 root          2  52    0 150652Ki   33900Ki wait     5   0:00   0.00% /usr/local/bin/qemu-arm-static clang++ -o ../bin/qmake main.o meta.o option.o project.o property.o ioutils.o proitems.o qma

An interesting point for that last is that clang++ was not via
use of a /nxb-bin/ path.


There also seem to be 4 gmake's that are stuck using about 100%
of a cpu:

94366 root          2 103    0  99252Ki   22000Ki CPU14   14  40:30  99.76% /usr/local/bin/qemu-arm-static gmake DESTDIR= RPATH_ENVVAR=LD_LIBRARY_PATH TARGET_SUBDIR=armv7-portbld-freebsd13.0 bindir=/
17816 root          2 103    0 102076Ki   24388Ki CPU17   17  39:44  99.76% /usr/local/bin/qemu-arm-static gmake DESTDIR=/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/stage RPATH_ENVVAR=LD_LIBRA
26001 root          2 103    0  96544Ki   19152Ki CPU31   31  35:39  99.76% /usr/local/bin/qemu-arm-static gmake DESTDIR= RPATH_ENVVAR=LD_LIBRARY_PATH TARGET_SUBDIR=arm-none-eabi bindir=/usr/local/bi
42110 root          2 103    0 101120Ki   23820Ki CPU24   24  33:28  99.76% qemu-arm-static -0 gmake -L /usr/gnemul/qemu-arm /usr/local/bin/gmake -f Makefile -j32 all

Some of these have defunct subprocesses (from ps -auxd):

Building ffmpeg-4.2.2_11,1 . . .

root       42110  100.0  0.0 101120  23820  0  RJ   15:31        34:09.07 | |           |       `-- qemu-arm-static -0 gmake -L /usr/gnemul/qemu-arm /usr/local/bin/gmake -f Makefile -j32 all
root       44988    0.0  0.0      0      0  0  ZJ   15:32         0:15.08 | |           |         |-- <defunct>
root       44991    0.0  0.0      0      0  0  ZJ   15:32         0:42.60 | |           |         |-- <defunct>
root       44993    0.0  0.0      0      0  0  ZJ   15:32         0:53.06 | |           |         |-- <defunct>
root       45006    0.0  0.0      0      0  0  ZJ   15:32         0:30.58 | |           |         |-- <defunct>
root       45239    0.0  0.0      0      0  0  ZJ   15:32         0:17.28 | |           |         |-- <defunct>
root       45244    0.0  0.0      0      0  0  ZJ   15:32         0:15.74 | |           |         |-- <defunct>
root       45245    0.0  0.0      0      0  0  ZJ   15:32         0:09.55 | |           |         `-- <defunct>

Building arm-none-eabi-gcc-8.4.0_1 . . .

root       26001  100.0  0.0  96544  19152  0  RJ   15:27        36:20.30 | |           |         `-- /usr/local/bin/qemu-arm-static gmake DESTDIR= RPATH_ENVVAR=LD_LIBRARY_PATH TARGET_SUBDIR=arm-none
root       34753    0.0  0.0      0      0  0  ZJ   15:30         0:46.74 | |           |           `-- <defunct>

Building gcc9-9.3.0_1 . . .

root       94366  100.0  0.0  99252  22000  0  RJ   15:21        41:10.84 | |           |             `-- /usr/local/bin/qemu-arm-static gmake DESTDIR= RPATH_ENVVAR=LD_LIBRARY_PATH TARGET_SUBDIR=armv
root       15615    0.0  0.0      0      0  0  ZJ   15:25         0:07.77 | |           |               |-- <defunct>
root       15616    0.0  0.0      0      0  0  ZJ   15:25         0:02.85 | |           |               |-- <defunct>
root       15617    0.0  0.0      0      0  0  ZJ   15:25         0:03.32 | |           |               |-- <defunct>
root       15618    0.0  0.0      0      0  0  ZJ   15:25         0:03.35 | |           |               |-- <defunct>
root       15623    0.0  0.0      0      0  0  ZJ   15:25         0:02.29 | |           |               |-- <defunct>
root       16142    0.0  0.0      0      0  0  ZJ   15:25         0:00.05 | |           |               `-- <defunct>

One does not:

Building aarch64-none-elf-gcc-8.4.0_1 . . .

root       17816  100.0  0.0 102076  24388  0  RJ   15:25        40:24.87 | |           |       `-- /usr/local/bin/qemu-arm-static gmake DESTDIR=/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/sta


I seem to also have one other stuck process that is not using
cpu time:

Building xcb-util-keysyms-0.4.0_1 . . .

root       38255    0.0  0.0  91108  11408  0  IJ   15:08         0:00.00 | |                       `-- /usr/local/bin/qemu-arm-static /usr/bin/nm conftest.o


I'll leave them all running a while longer.

There is also a boost-libs-1.72.0_2 running bjam but I expect
this one to take a very long time, even when things are working
well. So I expect that it might complete.

For reference (top's TIME showing more like 62 minutes now
instead of the 33+ minutes above):

[FBSDFSSDjailArmV7-default] [2020-05-17_15h05m26s] [parallel_build:] Queued: 237 Built: 141 Failed: 2   Skipped: 68  Ignored: 0   Tobuild: 26   Time: 01:26:55
	[01]: devel/qt5-qmake           | qt5-qmake-5.14.2          build           (01:24:35 / 01:26:02)
	[02]: devel/arm-none-eabi-gcc   | arm-none-eabi-gcc-8.4.0_1 build           (01:13:07 / 01:15:30)
	[03]: lang/gcc9                 | gcc9-9.3.0_1              build           (01:16:34 / 01:18:31)
	[05]: devel/boost-libs          | boost-libs-1.72.0_2       stage           (01:10:31 / 01:16:35)
	[11]: devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 stage           (01:06:29 / 01:18:41)
	[24]: multimedia/ffmpeg         | ffmpeg-4.2.2_11,1         build           (01:00:31 / 01:02:47)
	[29]: x11/xcb-util-keysyms      | xcb-util-keysyms-0.4.0_1  configure       (01:24:38 / 01:25:43)


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-emulation mailing list