Commit Graph

10 Commits (master)

Author SHA1 Message Date
Shuxin Yang 8259273340 o. clean up.
o. add support multiple-mode support: user mode mmap, kernel mode mmap, hybrid modes.
2014-12-06 11:46:44 -08:00
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
Shuxin Yang 1db717f783 some cleanup 2014-08-27 17:00:21 -07:00
Shuxin Yang f6c4ca0d94 This change introduces "block cache" to avoid the cost of TLB manipulation,
and page initialization via zero-filling.

  Suppose a allocated block B1, whose virtual address is [ad1, ad2], is going
to deallocated. One Linux, it seems the only way to deallocate the pages
associated with the block is to call madvise(..MADV_DONTNEED...) (
hereinafter, call it madvise() for short unless otherwise noted).

 madvise() *immediately* remove all the pages involved, and invalidate the
related TLB entries. So, if later on we allocate a block overlapping with
B1 in virtual address; accessing to the overlapping space will result in
re-establishing TLB entries, and zero-fill-pages, which is bit expensive.

 This cost can be reduced by keeping few blocks in memory, and re-use the
memory resident pages over and over again. This is the rationale behind the
"block cache". The "cache" here may be a misnomer; it dosen't cache any data,
it just provide a way to keep small sum of idle pages in memory to avoid
cost of TLB manipulation and page initialization via zero-filling.
2014-08-26 22:24:30 -07:00
Shuxin Yang 7ba100395c This change include two parts:
1. replace misnomer "trunk" with "chunk".
2. add a stress testing and benchmark infrastructure.
2014-08-22 11:28:53 -07:00
Shuxin Yang ca0d7fa94d - Add a unit-test for lm_remap().
- Find few minor bugs.
2014-08-18 17:03:58 -07:00
Shuxin Yang 252b87f9fd Enable unit test 2.
Add files which should have been committed eariler.
2014-08-18 11:35:26 -07:00
Shuxin Yang c6cfc27f43 pass the 1st unit test 2014-08-15 16:04:47 -07:00
Shuxin Yang 76f82f6ad4 enable unit-test infra-structure 2014-08-15 13:06:49 -07:00
Shuxin Yang b6f1258162 Divide page_alloc.c into two parts: one is still for page allocation, the other part is to implement
lm_mmap(), lm_munmap() and lm_remap().
2014-08-14 14:09:14 -07:00