On Sat, 29 Dec 2018 at 16:49, Andy Lutomirski <luto@xxxxxxxxxx> wrote: > > Could you use a prctl to set whether you were running in 32 or 64 bit > > mode? Or do you change which kind of task you're emulating too often > > to make this a good idea? QEMU's linux-user mode always only runs the single process, which is a fixed guest architecture. But it also wants to make system calls on its own behalf, as well as the ones it is passing through from the guest, and I suspect it would confuse the host libc if we changed the semantics of those under its feet. > How would this work? We already have the separate > COMPAT_DEFINE_SYSCALL entries *and* in_compat_syscall(). Now we’d have > a third degree of freedom. > > Either the arches people care about should add reasonable ways to > issue 32-bit syscalls from 64-bit mode or there should be an explicit > way to ask for the 32-bit directory offsets. The first of those is not sufficient for QEMU if done as a per-architecture thing, because there may not even be a 32-bit syscall interface on the host kernel. The second sounds better -- there's nothing conceptually architecture specific about what we want to do or which is tied to the idea of whether there's a 32-bit compat mode in the host architecture or not. thanks -- PMM