* Update all headers to reflect LGPL license.
* Add submodule for gcc test inputs
* Add submodule for lmbench-2.5
* Fix Travis build with submodules
* Migrate driver to sub repository
* Migrate driver to sub repository
Replace the atomics implementation.
* Change the PAL Semaphore to a Mutex, and fix some issues in the Mutex implementations
* Tweak the layout of a PAL Handle
* Rework some of the IPC helper synchronization
* Taking out waitpid03 - it is flaky, even on the commit where it was added to the PASSED list.
Replace the directory cache implementation.
* Fix unix domain socket lookup.
* Fix a bug in the getdents EINVAL case
* remove profiling code in dcache.c; cleaning up some style issues
* adding a note to the recursive path_lookupat() code
* remove a few compilation warnings
* Apply Chia-Che's suggested fixes; add more now-passing cases to LTP nice list.
* Ref counting bug for /proc/self/fd/. Document and implement expected behavior in relevant helper function.
* A bugfix for issue #80. The migration is not complete when a file-backed VMA is larger than
the file size, but the file size is not page-aligned. In Linux, if the file size is smaller
than the mapped memory, accessing the remaining memory that is not backed by the file will
trigger a SIGBUS. However, it is fine to access the remaining memory within the last page that
still overlaps with file, and won't trigger a SIGBUS. This area is commonly used in ELF binary
to store uninitialized, static variables. To improve fork latency, Graphene chooses to
truncate the migration size as the file size, but missed the memory which belongs to the last
file-backed page. The migration size should be aligned up to the page size.
* adding several test cases for mmap with files
* adding /tmp to the ltp manifest
* add documentation about the corner cases of mmap + fork
* Fix off-by-one in test_vma_overlap()
* Fix calloc crash when underlying malloc fails
* Use `bool` where possible
* Fix C-string null-termination in __set_comment
* Migrate running unit tests for Linux host to Jenkins. Add a unit test for the Linux host, Debug build
* Ignore files generated as part of unit testsing.
* A quick and dirty fix for port collisions during CI tests. Come back and do a better job if we continue having problems
* For some reason, the PAL Process regression tests fail using the default manifest under a debug build. Go ahead and explicate a template for the Process test.
* Fix a PAL unit test
* Make the PAL unit tests fail properly if one that should work doesn't.
* Get consistent indexes with and without graphene ipc module
* A little debugging output for ltp flakiness. Seems to make things a little more stable.
* A bugfix for issue #80. The migration is not complete when a file-backed VMA is larger than
the file size, but the file size is not page-aligned. In Linux, if the file size is smaller
than the mapped memory, accessing the remaining memory that is not backed by the file will
trigger a SIGBUS. However, it is fine to access the remaining memory within the last page that
still overlaps with file, and won't trigger a SIGBUS. This area is commonly used in ELF binary
to store uninitialized, static variables. To improve fork latency, Graphene chooses to
truncate the migration size as the file size, but missed the memory which belongs to the last
file-backed page. The migration size should be aligned up to the page size.
* Fix assertion lines in PAL and LibOS
* Make sure the return code is correct for the LTP script, bump up some timeouts
* Only run gipc tests when the module is loaded, for the purposes of getting CI to work.
* Build fix
* Remove the Linux linked list implementation, replace with a new implementation that adds some type-checking that list pointers (heads) and entries/nodes match.
* Fix the debug build by consolidating assertions into one header
* Several memory allocation fixes, primarily motivated by the fact that the Diffie-Hellman implementation in mbedtls is sensitive to misaligned allocations. All malloc's are now 16-byte aligned. This PR has several other points where remalloc was used instead of realloc, or memory needed to be zeroed upon allocation. Finally, this PR also standardizes the definition of assert across layers, so that code in the lib directory can both use assertions and link properly in the PAL and shim.