Go to file
Shuxin Yang 6821a07f94 o. Add testing cases for
c1) lazily call lm_init*()
    c2) the hybrid-mode which prefer calling mmap(2) to calling user-mode lm_mmap().
    c3) the user-mode which exclusively call lm_mmap()

o. fix a bug about c1) mentioned above
2014-12-11 11:49:06 -08:00
obj rudimentary implementation luajit mem-managment for taking full advantage of lower 2G memory 2014-08-07 11:05:29 -07:00
tests o. Add testing cases for 2014-12-11 11:49:06 -08:00
.gitignore add .gitignore 2014-12-03 16:19:31 -08:00
LICENSE Initial commit 2014-08-07 10:48:40 -07:00
Makefile Fix a problem in make recipe. The recipe used to have only one 2014-12-06 17:54:27 -08:00
README.md rudimentary implementation luajit mem-managment for taking full advantage of lower 2G memory 2014-08-07 11:05:29 -07:00
block_cache.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
block_cache.h o. clean up. 2014-12-06 11:46:44 -08:00
chunk.c Capitalize mode enum value 2014-12-09 10:22:37 -08:00
chunk.h o. clean up. 2014-12-06 11:46:44 -08:00
demo.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
lj_mm.h Capitalize mode enum value 2014-12-09 10:22:37 -08:00
mem_map.c o. Add testing cases for 2014-12-11 11:49:06 -08:00
page_alloc.c Add one system-mode testing case. 2014-12-09 13:23:07 -08:00
page_alloc.h o. clean up. 2014-12-06 11:46:44 -08:00
rbtree.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
rbtree.h This change introduces "block cache" to avoid the cost of TLB manipulation, 2014-08-26 22:24:30 -07:00
util.h Add comment; correct comment; all about comment. 2014-10-28 11:31:01 -07:00

README.md

luajit-mm

Luajit take full advantage of lower 2G memory on AMD64 platform.

Rumdimentary implementation. Not yet fully tested. Not yet cleanup the code. Quite a few optimizatio is not yet implemented.

Immediate todo

o.Refine and finish this README.
o.test, add enhancements.

problem statement:

On Linux/x86-64 platform, Luajit can use no more than 1G memory due to the combination of bunch of nasty issues. 1G is way too small for server-side application.

This package is trying to replace mmap/munmap/mremap with hence provide up to about 2G space.

Basic ideas

o. When a application, which contain luajit, is launched, reserve the the space
   from where `sbrk(0)` indidate all the way to 2G.

o. Perform page allocation on the reserved space. the mmap/munmap/mremap is built
   on this page allocation. Currently, we use buddy allocation for page allocation
   with some optimizations in an attemp to reduce working set.