- Oct 30, 2013
-
-
Pekka Enberg authored
The tst-zfs-simple.so test case has serverd its purpose for bringup. As OSv build relies on working ZFS now, there's no need to run the tests. Furthermore, we have the full ztest stress test in the tree: bsd/cddl/contrib/opensolaris/cmd/ztest/ztest.c which we can use if needed. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Oct 29, 2013
-
-
Tomasz Grabiec authored
The call to namei("/dir/file/") currently fails with ENOENT when "/dir/file" exists. A more standard way is to return ENOTDIR instead. This way calls to stat, open, rename, etc. will be in line with the POSIX spec. It is also useful to rename() implementation which needs to differentiate behaviour between the case in which target does not exist and the case in which it does but the path has trailing slash and the last component is not a directory. In addition to that the check was performed in an inconsistent matter - only when dentry lookup failed. This change makes the check performed always. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com>
-
- Oct 24, 2013
-
-
Benoît Canet authored
Signed-off-by:
Benoit Canet <benoit@irqsave.net> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Oct 23, 2013
-
-
Tomasz Grabiec authored
Needed to link with boost_filesystem. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com>
-
- Oct 17, 2013
-
-
Tomasz Grabiec authored
strlcpy() expects buffer length not string length. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com>
-
- Oct 16, 2013
-
-
Avi Kivity authored
For the moment, it only creates a zpool, not a filesystem. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Oct 14, 2013
-
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
We don't want it in /usr, because it won't have been created yet. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Oct 06, 2013
-
-
Nadav Har'El authored
Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
- Oct 02, 2013
-
-
Tomasz Grabiec authored
Added missing bench.jar file back to the image. Fixed an obsolete description in the README file. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com>
-
- Sep 29, 2013
-
-
Nadav Har'El authored
This patch adds support for the Linux kill(2) function. The next patch will add alarm(2) support, which uses kill(2). To be honest, we sort-of implement kill(). This implementation is compatible with the API, but the semantics are somewhat different: While in Linux kill() causes the signal handler to run on one of the existing threads, in this implementation, the signal handler is run in a *new* thread. Implementing the exact Linux semantics in OSv would require tracking when OSv runs kernel code (i.e., code in the main executable, not a shared object) so we can delay running the signal handler until returning to the user code. Moreover, we'll need to be able to interrupt sleeping kernel code. This is complicated and adds overhead even if signals aren't used (and they aren't used in most modern code). I expect that this code will be "good enough" in many use cases. This code will *not* be good in enough in programs that expect one of the following: 1. A program that by using Posix Thread's "signal masks" tried to ensure that the signal is delivered to one specific thread, and not to an arbitrary thread. 2. A program that used kill() or alarm() not intending to run a signal handler, but rather intending to interrupt a sleeping system call like sleep() or read(). Our kill() does not interrupt sleeping OSv function calls, which will continue to sleep on the thread they run on. The support in this patch (and see next patch, for alarm()) is good enough for netperf's use of alarm(). P.S. kill() can be used only to send a signal to the current process, the only process we have in OSv (you can also use pid=0 and pid=-1 to achieve the same results). This patch also adds a test for kill() and alarm(). The alarm() test will fail until the next patch :-) Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
- Sep 26, 2013
-
-
Pekka Enberg authored
Add a basic test case for filesystem hard link support. You can run it as follows: ./scripts/run.py -e "tests/tst-fs-link.so" Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Sep 20, 2013
-
-
Nadav Har'El authored
Add a trivial sleep() test, which sleep()s for 2 seconds, and verifies that this finishes and has slept for roughly 2 seconds. I used this for debugging issue #26 - the attempts there ruined timers, and in particular this trivial test hangs, as sleep() never returns. (A note to our future automatic testing implementor: We need to allow for the possibility that a test doesn't cleanly fail, but rather hangs, and consider this a failure too). Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
- Sep 19, 2013
-
-
Sasha Levin authored
Having that implementation in the tree even though it was superceded is confusing and really unnecessary. Signed-off-by:
Sasha Levin <levinsasha928@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Benoît Canet authored
This regression test trigger issue #8 "Make Java InetAddress.getHostName() work" by exercising the DNS resolver on localhost and a dns root server. The test takes care of specifying NI_NOFQDN to resolve only the hostname part of localhost ip. It appears that the DNS ip is not communicated to the libc by core/dhcp.cci: /etc/resolv.conf is not filled. Test contributed while waiting for an fix idea to implement. Signed-off-by:
Benoit Canet <benoit@irqsave.net> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Sep 13, 2013
-
-
narkisr authored
clearing cloudius cli and sshd jar (they are replaced by crash jar in usr.manifest) and moving tmp and crash into usr.manifest
-
- Sep 12, 2013
-
-
Nadav Har'El authored
This is a test for the effectiveness of our scheduler's load balancing while running several threads on several cpus. A full description of the test and its expected results is included in comments in the beginning of the code. but briefly, the test runs multiple concurrent busy-loop threads, and an additional "intermittent" thread (one that busy-loops for a short duration, and then sleeps), and expects that all busy threads will get their fair share of the CPU, and the intermittent thread won't bother them too much. Testing the current code, this tests demonstrates the following problems we have: 1. Two busy-loop threads on 2 cpus are 5%-10% slower than just one. This is not kernel overhead (profiling show 100% of the time in the test's inner loop), and I see exactly the slowdown when running this test on the Linux host, so it might be related to the host's multitasking? For now, let's not worry about that. 2. Much more worrying is that the intermittent thread sometimes (in about half the tests) causes us to only fully use one CPU, and of course get bad performance. 3. In many of the tests involving more than 2 threads (2 threads + intermittent, or 4 threads) load balancing wasn't fair and some threads got more CPU than the others. Later I'll send patches to fix issues 2 and 3, which appear to happen because the load balancer thread doesn't run as often as it should, because of vruntime problems.
-
- Sep 11, 2013
-
-
narkisr authored
-
- Sep 10, 2013
-
-
Or Cohen authored
Parsed by JLine (in CRaSH) Console should now better understand keys like home/end/arrows
-
- Sep 08, 2013
- Sep 02, 2013
-
-
Pekka Enberg authored
Add simple tests for munmap() for file-backed memory maps. This exposes a limitation in munmap() not writing out MAP_SHARED mappings.
-
- Aug 29, 2013
- Aug 26, 2013
-
-
Pekka Enberg authored
-
- Aug 21, 2013
-
-
Or Cohen authored
-
- Aug 06, 2013
-
-
Nadav Har'El authored
The previous commit (fix symbol resolution order) caused a regression - tst-pipe.so stopped working, aborting on segfault while handling an expected exception (one of the only places in OSV where we use an exception to signal an error - running out of file descriptors). However, it turns that commit just exposed an already existing bug in our exception unwinding support. The following trivial test of exceptions, throwing an integer and catching it, crashes both with the previous commit, and without it.
-
- Aug 05, 2013
-
-
Nadav Har'El authored
Christoph discovered a bug in our dynamic linker, where symbols which exist in the kernel cannot be used in a shared object, which can cause nasty bugs when trying to run existing programs. This test demonstrates this bug, and verifies its fix (in the previous commit).
-
- Jul 28, 2013
-
-
Guy Zana authored
-
- Jul 08, 2013
-
-
Guy Zana authored
2 threads are created on 2 different vcpus, one consumer and one producer. Both threads are pushing and popping concurrently 1,000,000,000 elements, the producer is pushing a random number between 0 and 7 and consumer pops those numbers. Both of the threads keeps track on the values they pushed/popped. per each value, the number of pushed elements should be equal to the number of popped elements. - ring_spsc: 14.8 Mop/s per core
-
- Jul 02, 2013
-
-
Christoph Hellwig authored
-
- Jun 25, 2013
-
-
Nadav Har'El authored
Add tst-epoll.cc for testing the epoll_*() functions. This test finds a bug, which will be fixed in a separate patch.
-
- Jun 24, 2013
-
-
Dor Laor authored
- Jun 19, 2013
-
-
Nadav Har'El authored
Added a test for wake_with(). It tries to ensure that the problematic case solved by wake_with() actually happens quickly, by: 1. Spin a long time between the setting of the flag and t->wake() 2. Do a spurious wake() to ensure that the waiting thread is woken up right after setting the flag, before the intended wake. 3. Use mprotect() to ensure that working with an already join()ed thread crashes immediately, instead of just maybe crashing. This test fails when wake_with() doesn't use ref()/unref(), and succeeds with the full wake_with(). tst-wake contains a second test, which does the same thing but without the additional measures we used to show the bug (spinning, spurious wake and mprotect). Without these additional measures the test iteration is much faster, which allows us to stress wake/join much more.
-
- Jun 18, 2013
-
-
Avi Kivity authored
Usage: perf list (lists all tracepoints) perf stat tp... (counts tracepoints) Example: [/]$ perf stat mutex_lock ctxsw=sched_switch mutex_unlock wake=sched_wake mutex_lock ctxsw mutex_unlock wake 40 3 1909 2 2075 147 190 82 193 138 193 78 146 139 146 92 317 179 317 78 146 139 146 78 146 139 186 78 205 139 165 78 146 139 146 78 146 139 146 78 146 139 146 80 193 143 193 81 151 147 151 78 146 139 146 78 146 139 146 78 146 139 146 78 159 139 159 78 149 139 149 78 146 139 146 78 164 139 164 78 146 139 176 78 176 139 146 78 149 139 149 78 146 139 146 78 146 139 146 78 mutex_lock ctxsw mutex_unlock wake 146 139 146 79 715 147 715 80 188 139 204 78
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
- Jun 17, 2013
-
-
Avi Kivity authored
Exposes tracepoints and counters
-