Re: Workarounds for LuaJIT's 4GB limit

  • From: Theo Schlossnagle <jesus@xxxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Tue, 21 Oct 2014 08:49:32 -0400

On Tue, Oct 21, 2014 at 8:32 AM, Mike Pall <mike-1410@xxxxxxxxxx> wrote:

> Florian Weimer wrote:
> > From this, I infer that all valid userspace pointers on x86_64 are
> > representable as lightuserdata values.
>
> Solaris also uses the negative x64 address space in user mode (for
> stacks and default mmap). I have no plans to deal with this oddity.


Womp womp. Sad panda. This hasn't been a show stopper for us, but it is
pretty annoying.

I'll restate my idea for "solving" this 2/4GB issue.  Currently, when you
create a new lua state it expects to be able to manage its own memory in
0x00000000-0x100000000 (or less).  It would solve most (if not all) of or
problems if, when creating a new lua state, we could specify a base address
so that I could mmap into (e.g. 0xfffe00000000 - 0xffff00000000) which will
never collide with anything in my app...

In our particular app, we have many threads that each run their own
isolated lua states.  This would allow us to have each of them
self-contained in their own virtual memory segment.

Best regards,

Theo
-- 

Theo Schlossnagle

http://omniti.com/is/theo-schlossnagle

Other related posts: