Re: [PATCH] x86_64: Implement personality ADDR_LIMIT_32BIT

From: Kirill A. Shutemov
Date: Mon Oct 06 2008 - 05:16:22 EST


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/

Attachment: signature.asc
Description: Digital signature