Go to file
Shuxin Yang 7dbfb668f1 Fix bunch of bugs!
As of this revision. We are able to run CPU2000int with refernece input
successfully! These benchmarks are linked against ptmalloc3 (not part of
this project) and the libadaptor.so.

Running CPU2000int is just a way to stress test this work.
2014-09-02 10:30:04 -07:00
obj rudimentary implementation luajit mem-managment for taking full advantage of lower 2G memory 2014-08-07 11:05:29 -07:00
tests Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
LICENSE Initial commit 2014-08-07 10:48:40 -07:00
Makefile Fix bunch of bugs! 2014-09-02 10:30:04 -07: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 some cleanup 2014-08-27 17:00:21 -07:00
chunk.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
chunk.h some cleanup 2014-08-27 17:00:21 -07:00
demo.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
lj_mm.h Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
ljmm_conf.h Miscellaneous minor tweaks 2014-08-24 10:42:35 -07:00
mem_map.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
page_alloc.c Fix bunch of bugs! 2014-09-02 10:30:04 -07:00
page_alloc.h Fix bunch of bugs! 2014-09-02 10:30:04 -07: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 Fix bunch of bugs! 2014-09-02 10:30:04 -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.