160 Commits
Author SHA1 Message Date
Don Porter 0433461802 License change to LGPL (#140)
* 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
2017-12-08 10:02:36 -08:00
Don Porter b2b20cfde7 Move regression script down one level 2017-12-08 09:18:05 -05:00
Don Porter 8c5340a9dd Remove two dead files. 2017-12-07 17:08:37 -05:00
Don Porter d04f172e89 Replace the atomics implementation (#83)
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.
2017-12-07 11:30:48 -08:00
Don Porter 62f07c7181 Reimplement directory caching (#78)
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.
2017-12-07 08:51:30 -08:00
Chia-Che Tsai 468b33becd adding rules to build manifests in LibOS/shim/test/regression 2017-12-07 08:44:16 -05:00
Don Porter 9682c9dec1 This unit test needs a manifest template 2017-12-07 08:21:57 -05:00
Chia-Che Tsai e583b39cd6 A bugfix for issue #80 (os.fork() sigfaults in Python) (#81)
* 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
2017-12-06 20:16:05 -08:00
Michał Kowalczyk f7f07fe520 Fix variadic functions implementation (#119) 2017-12-05 13:25:27 -08:00
Michał Kowalczyk e781b047ea Various allocator bugfixes (#128)
* 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
2017-12-05 16:33:45 +00:00
Don Porter ce49dcb03d Migrate unit tests to jenkins (#122)
* 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.
2017-12-03 14:04:39 +00:00
Don Porter 96b2cbfdc2 More CI debugging 2017-11-28 05:57:17 -05:00
Don Porter f7ab5bf363 More timeouts. 2017-11-26 18:13:11 -05:00
Michał Kowalczyk 3a24ad56d4 Add lacking .PHONY to Makefiles (#118) 2017-11-25 08:56:36 +00:00
Don Porter c0e272998f More CI debugging 2017-11-23 07:36:21 -05:00
Don Porter 0785ac10be More CI tweaking 2017-11-22 11:38:45 -05:00
Jaehyun Han d782947948 Fix the limitation on the number of trusted files (#87)
* Support a large number of trusted files. (Issue #9)

* Config counts overall key size of entries
2017-11-21 09:09:45 +00:00
Don Porter e03239bcf8 More timeout tweaking 2017-11-16 10:20:57 -05:00
Don Porter 775395212b More timeout and gitignore tweaks 2017-11-16 08:17:10 -05:00
Don Porter 70b5bf8191 Finish the list of third party sources and licenses. Clean up gitignore for apache. 2017-11-16 07:17:45 -05:00
Don Porter 809982b99a One more timeout 2017-11-15 14:50:01 -05:00
Don Porter ba1c8a2a28 One more timeouts 2017-11-15 14:26:25 -05:00
Don Porter 8b6a333581 More CI debugging 2017-11-15 14:01:37 -05:00
Don Porter b9396b4bab More CI debugging 2017-11-15 13:00:24 -05:00
Don Porter b12758ba1c More CI debugging 2017-11-15 12:34:55 -05:00
Don Porter 62302518e8 Remove the wolfssl code (#77)
Delete wolfssl from the code base

A few minor issues with build, CI timeouts, and gitignores.
2017-11-15 16:58:10 +00:00
Don Porter b5b403225c More timeouts 2017-11-13 16:50:10 -05:00
Don Porter 8631631c39 Bump up a few LTP timeouts 2017-11-13 16:18:41 -05:00
Don Porter f67fe09124 Fix a bug introduced by commit 3a40af399d (#94)
* 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
2017-11-10 11:46:11 +00:00
Don Porter 8d99e037ea Replace rsa implementation, from wolfssl to mbedtls. (#76)
Switch the RSA implementation from wolfssl to mbedtls
2017-10-23 01:41:24 +01:00
Don Porter 2e9438f71c Replace Linux List code with a new implementation (#71)
* 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
2017-10-21 13:35:26 +01:00
Michał Kowalczyk 26eae52106 Fix signess bug in the syscall dispatcher (#88) 2017-10-16 13:45:03 +01:00
Chia-Che Tsai bf5022544e add a python test script 2017-10-11 04:21:54 -04:00
Chia-Che Tsai f9428485cc update regression scripts 2017-10-03 10:29:56 -04:00
Chia-Che Tsai d003dc2ecc update regression scripts 2017-10-03 10:26:10 -04:00
Chia-Che Tsai 339f07f54e update openjdk and python scripts 2017-10-03 10:03:59 -04:00
Chia-Che Tsai 45c6f193df update openjdk and python scripts 2017-10-03 10:00:37 -04:00
Chia-Che Tsai e6bd5af342 reverse changes to the OpenJDK 7 directory 2017-09-29 20:14:40 -04:00
Don Porter 64a57f2241 Malloc fixes (#70)
* 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.
2017-09-23 17:17:40 +01:00
Don Porter fd9a3aca5d Fix a few library versions for the latest 16.04. We probably want a better way to handle this across systems. 2017-09-23 06:50:52 -04:00
Don Porter 0cfc35aa1b Drop heap_min. 2017-09-22 15:34:20 -04:00
Don Porter c2b68d79d3 Merge branch 'master' into sha256 2017-09-21 16:13:23 -04:00
Chia-Che Tsai 41c1500f52 Add "make regression" rule to the Python directory 2017-09-20 19:39:19 -04:00
Chia-Che Tsai b06cdcdfcc fix the problem that hello.token is not created whe running make SGX_RUN=1'' in the lmbench directory 2017-09-20 18:26:12 -04:00
Don Porter 927e7c4dc9 Link the script for apache 2017-09-10 09:58:31 -04:00
Don Porter 8b703b1c2c Save the web server benchmarking script for regression testing. 2017-09-10 09:45:56 -04:00
Chia-Che Tsai 736b465319 fix the building scripts of apache 2017-08-25 16:32:09 -04:00
Chia-Che Tsai 580e465b39 add Graphene-SGX building and non-SGX regression tests into .travis.yml 2017-08-25 15:56:41 -04:00
Chia-Che Tsai 384c273353 a minor typo in GCC's manifest 2017-08-25 11:04:53 -04:00
Chia-Che Tsai d2185bace0 a trivial change in LTP Makefile 2017-08-25 11:00:29 -04:00