On Mon, Oct 06, 2008 at 10:42:46AM +0200, Andi Kleen wrote: > On Mon, Oct 06, 2008 at 11:17:23AM +0300, Kirill A. Shutemov wrote: > > On Mon, Oct 06, 2008 at 08:13:19AM +0200, Andi Kleen wrote: > > > Unfortunately that doesn't work for shmat() because the address argument > > > is not a search hint, but a fixed address. > > > > > > I presume you need this for the qemu syscall emulation. For a standard > > > application I would just recommend to use mmap with tmpfs instead > > > (sysv shm is kind of obsolete). For shmat() emulation the cleanest way > > > would be probably to add a new flag to shmat() that says that address > > > is a search hint, not a fixed address. Then implement it the way recommended > > > above. > > > > I prefer one handle to switch application to 32-bit address mode. Why is it > > wrong? > > "32 bit mode" really has to be set at exec time, otherwise it is not > (e.g. the stack will be beyond). Stack isn't a problem for qemu. qemu allocate stack for target application by itself. > And personality() is not thread local/safe, so it's not a particularly > good interface to use later. qemu can call personality() before any threads will be created. > Per system call switches are preferable > and more flexible. Per syscall switches are cool, but I don't see any advantage from it for qemu. -- Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/