summary refs log tree commit diff stats
path: root/results/classifier/gemma3:12b/performance/1861161
blob: b3080d01e9fbcc4dc0021f4d63bd634de1a34c02 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
qemu-arm-static stuck with 100% CPU when cross-compiling emacs

Hello,

I'm trying to build multi-arch docker images for https://hub.docker.com/r/silex/emacs.

Here is the machine I'm building on:

root@ubuntu-4gb-fsn1-1:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
Codename:       bionic
root@ubuntu-4gb-fsn1-1:~# uname -a
Linux ubuntu-4gb-fsn1-1 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Whenever I try to build the following alpine Dockerfile https://gitlab.com/Silex777/docker-emacs/blob/master/26.3/alpine/3.9/dev/Dockerfile with this command:

$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
$ docker build --pull -t test --platform arm .

It builds fine until this:

root@ubuntu-4gb-fsn1-1:~# ps -ef | grep qemu
root     26473 26465 99 14:26 pts/0    01:59:58 /usr/bin/qemu-arm-static ../src/bootstrap-emacs -batch --no-site-file --no-site-lisp --eval (setq load-prefer-newer t) -f batch-byte-compile emacs-lisp/macroexp.el

This is supposed to take a few seconds, but in practice it takes 100% CPU and never ends. When I strace the process I see this:

getdents64(5, /* 0 entries */, 2048)    = 0
lseek(5, 0, SEEK_SET)                   = 0
getdents64(5, /* 5 entries */, 2048)    = 120
tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily unavailable)
getdents64(5, /* 0 entries */, 2048)    = 0
lseek(5, 0, SEEK_SET)                   = 0
getdents64(5, /* 5 entries */, 2048)    = 120
tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily unavailable)
getdents64(5, /* 0 entries */, 2048)    = 0
lseek(5, 0, SEEK_SET)                   = 0
getdents64(5, /* 5 entries */, 2048)    = 120
tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily unavailable)
getdents64(5, /* 0 entries */, 2048)    = 0
lseek(5, 0, SEEK_SET)                   = 0
getdents64(5, /* 5 entries */, 2048)    = 120
tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily unavailable)
getdents64(5, /* 0 entries */, 2048)    = 0
lseek(5, 0, SEEK_SET)                   = 0
getdents64(5, /* 5 entries */, 2048)    = 120
tgkill(5875, 5878, SIGRT_2)             = -1 EAGAIN (Resource temporarily unavailable)

It happens with all the QEMU versions I tested: 
- 2.11.1 (OS version)
- 4.1.1-1 (from multiarch/qemu-user-static:4.1.1-1)
- 4.2.0-2 (from multiarch/qemu-user-static)

Any ideas of what I could do to debug it further?

Kind regards,
Philippe