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

Reply via email to