Re: Workarounds for LuaJIT's 4GB limit

  • From: Sean Conner <sean@xxxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Tue, 21 Oct 2014 13:17:44 -0400

It was thus said that the Great Florian Weimer once stated:
> * Sean Conner:
> 
> > It was thus said that the Great Florian Weimer once stated:
> >> * Mike Pall:
> >> 
> >> > 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.
> >> 
> >> Wow.  I didn't know this was even supported by the silicon.
> >
> >   Why not?  Addresses presented to processes are virtual and as long as, for
> > example, address $FFC0000012345670 is mapped into the process I don't see a
> > problem with "negative" addresses.  
> 
> The architecture is limited to 48 bits, 

  Physical.  There's a difference between virtual (or logical) addresses and
physical addresses.

> and you can't map stuff at
> arbitrary addresses (the topmost 16 bit must all be equal).  

  Is that a hardware limitation, or an OS limitation?

  -spc


Other related posts: