Hi Vagrant, Vagrant Cascadian: > I've been trying to set up an Odroid-C2 for the Debian reproducible > builds test infrastructure, but haveged fails to start on this > particular machine with linux kernel 4.12. I've tried running the same > 4.12 kernels on other boards (pine64+) and haveged works fine.
Interesting. Linux 4.12 is not available in Debian yet, so I can't easily try to reproduce on other (e.g. amd64) systems. > Are there any particular kernel options required for haveged to work > correctly? Any other ideas for troubleshooting? Apart of the RDTSC instruction, I don't know. I would suggest asking upstream. > With arm64 userspace it just fails: > $ sudo strace -o haveged.strace.log haveged --Foreground --verbose=-1 --file > data > [...] > Which produces haveged.strace.log: > [...] > write(1, "haveged starting up\n", 20) = 20 > mmap(NULL, 593920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = > 0xffffb3ec8000 > mmap(NULL, 4294983680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, > 0) = -1 ENOMEM (Cannot allocate memory) > brk(0xaaabd2da9000) = 0xaaaad2da3000 > mmap(NULL, 4295118848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, > 0) = -1 ENOMEM (Cannot allocate memory) > mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, > 0) = 0xffffabec8000 > munmap(0xffffabec8000, 1277952) = 0 > munmap(0xffffb0000000, 65830912) = 0 > mprotect(0xffffac000000, 135168, PROT_READ|PROT_WRITE) = 0 > mmap(NULL, 4294983680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, > 0) = -1 ENOMEM (Cannot allocate memory) > munmap(0xffffb3ec8000, 593920) = 0 > write(2, "haveged: Couldn't initialize HAV"..., 42) = 42 > munmap(0xffffb3f59000, 2072576) = 0 > exit_group(1) = ? > +++ exited with 1 +++ So the problem seems to be ENOMEM. Is that system seriously memory-constrained? Cheers, -- intrigeri