Skip to content

95059f9c breaks some 32bit architectures in linux-user on amd64

After commit 95059f9c "include/exec: Change reserved_va semantics to last byte" (included in 8.0), some programs run within linux-user emulation on amd64, start having memory (allocation) issues. Examples include:

https://buildd.debian.org/status/fetch.php?pkg=fenics-basix&arch=hppa&ver=0.6.0-2&stamp=1687638798&raw=0

https://buildd.debian.org/status/fetch.php?pkg=vtk9&arch=hppa&ver=9.1.0%2Breally9.1.0%2Bdfsg2-6&stamp=1687492945&raw=0

Reportedly similar issue also happens on sparc and some other arches, but I haven't analyzed the matter on those architectures. Failure cases so far are related to processes heavily using mmap(), but this might as well be just a red herring.

The same behavor is observed on 8.0 (stable) and current qemu/master. Reverting this commit makes the issue to go away.

Running it with "qemu-hppa -R $((0xffffffff-1))" also fixes the problem, - so reducing the reserved-va range by a single byte is already enough for the problem to go away.

Edited by Michael Tokarev
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information