- Sep 24, 2013
-
-
Pekka Enberg authored
The assertion in object::relocate_pltgot uses assignment instead of comparison. Fix that up. Spotted by Coverity. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
JavaVMOption has extraInfo member that's not initialized in mkoption(). It only used by few special case options that provide a function pointer hook to the JVM so it's harmless but fix it anyway. Spotted by Coverity. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Liu Yuan authored
This will generate cscope index for the source files. Signed-off-by:
Liu Yuan <namei.unix@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Sep 23, 2013
-
-
Nadav Har'El authored
Currently, OSv's "make" builds both the kernel, using a normal Makefile, and the sample management framework, using the "Gradle" tool. We carefully hid Gradle's progress under one output line "GRADLE", but this leads to the "make" process hanging for a long time - up to several minutes, and all the puzzled user sees is the line "GRADLE". Users who didn't go for coffee will likely kill the build at this point ;-) Even worse, when Gradle fails, or just hangs (e.g., a bad or slow network connection), the user won't even know why. So let's just run Gradle normally, and let the user see its full output. This output is rather pretty and organized, so no real reason to hide it. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
Nadav Har'El authored
Each of the "tags" and "TAGS" make targets was done in a different way, causing each to have a different problem: 1. "tags" (ctags) used the "-L" option which turns out is nonportable (only available in Exuberant Ctags). 2. "TAGS" (etags) ran the etags command separately for each source file, slowing it down. The best of both worlds is to use xargs to have ctags/etags operate on multiple files in each run using xargs. Because we cannot be sure xargs will run ctags/etags only once, we must delete the file first and use the "-a" (append) option. Also, this patch reduces code duplication - there is now one rule for both "tags" and "TAGS" targets that uses the correct tool (ctags or etags, respectively). Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
Nadav Har'El authored
Update devices-and-drivers.txt
-
Nadav Har'El authored
to do. However, it did several things wrong that this patch fixes. Thanks to Paolo Bonzini for finding these problems (see issue #35). 1. When poll() returned a bare POLLHUP, without POLLIN, our select() didn't return a read event. But nothing in the manpages guarantees that POLLHUP is accompanied by POLLIN, and some special file implementations might forget it. As an example, in Linux POLLHUP without POLLIN is common. But POLLHUP on its own already means that there's nothing more to read, so a read() will return immediately without blocking - and therefore select() needs to turn on the readable bit for this fd. 2. Similarly, a bare POLLRDHUP should turn on the writable bit: The reader on this file hug up, so a write will fail immediately. 3. Our poll() and select() confused what POLLERR means. POLLERR does not mean poll() found a bad file descriptor - there is POLLNVAL for that. So this patch fixes poll() to set POLLNVAL, not POLLERR, and select() to return with errno=EBADF when it sees POLLNVAL, not POLLERR. 4. Rather, POLLERR means the file descriptor is in an error state, so every read() or write() will return immediately (with an error). So when we see it, we need to turn on both read and write bits in this case. 5. The meaning of "exceptfds" isn't clear in any manual page, and it seems there're a lot of opinions on what it might mean. In this patch I did what Paolo suggested, which is to set the except bit when POLLPRI. (I don't set exceptfds on POLLERR, or any other case). Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
- Sep 22, 2013
-
-
Joel Nider authored
Fixed some minor spelling mistakes
-
- Sep 21, 2013
-
-
Glauber Costa authored
Now that we have an efficient interrupt handler, use it.No need to delete the old bsd code, just to avoid disrupting the file too much. Make sure through an assertion that it is never used, though. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
This version of the Xen interrupt handler tries to do as less work as possible in the interrupt itself. The previous version and my previous fix attempt would still clean the channels during interrupt. Because now we have pending_sel still set in the irq thread, we can ditch _irq_pending completely. There is now only one xen_irq for the entire system, and therefore I am registering one per cpu, since we will eventually have to process this in different cpus. (for different event channels). With this, in my (very course, host to guest) netperf test, I am achieving 9600 * 10^6 bps, while linux can reach ~10000 * 10^bps. So we're getting close: Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 65536 16384 16384 10.00 9589.32 Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
Some of the fields in the xen shared structure need to be accessed atomically. Move them to std::atomic so we can do that using C++11 primitives. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Pekka Enberg authored
Fix up the error message as suggested by Nadav. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
This adds a user-friendly error message to run.py if QEMU/KVM is not installed. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Benoît Canet authored
After 5f0e9733 htonl was called twice: once before calling dhcp_mbuf::compose_request and once more inside this function. Fix this, verified on wire packets with wireshark and audited code. Signed-off-by:
Benoit Canet <benoit@irqsave.net> Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
- Sep 20, 2013
-
-
Pekka Enberg authored
support etags
-
Benoît Canet authored
Some IP fields are stored in host order and some other in network order. It makes discovery of the code difficult. Convert all IP fields to host order and propagate to callers. Signed-off-by:
Benoit Canet <benoit@irqsave.net>
-
Glauber Costa authored
All the other fields of the pcpu structure BSD expects are initialized by the event channel. Except for the cpu id, which the code expects to be already initialized. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Yang Bai authored
Added comments to explain the target tags and TAGS, also ignore the output file of ctags. Signed-off-by:
Yang Bai <hamo.by@gmail.com>
-
Pekka Enberg authored
Update to latest mgmt.git: * mgmt 97be48e...7a4db4e (1): > crash: Remove Rhono imports that are not used It removes the last dependency to the old Rhino-based CLI... Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
Some trivial comment cleanup and line-breaks in queue-mpsc.hh. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
Nadav Har'El authored
Trivial fixes to comments in lock-free mutex implementation. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com>
-
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>
-
Pekka Enberg authored
Switch to the mmu::page_size constant instead of inventing our own. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
The 'offset' variable is first assigned to "bio->bio_offset" and then immediately overwritten with "bio->bio_data & 0xfff". Fix that up. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Update to latest mgmt.git: * mgmt 76f0e7e...97be48e (5): > md5sum: fix ugly spew when file doesn't exist > ls: handle non-existing files correctly > mgmt/crash: Fix printf format string in test.groovy > mgmt: Kill obsolete Rhino-based CLI code > mgmt/perf: Fix "perf callstack" usability gitch if there are no traces The important part is Rhino-based CLI removal which seem to cause lot of problems for people building OSv on other distributions. The usability fixes to perf, ls, and md5sum commands are also worth the update. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Sasha Levin authored
Port 22 is usually taken on the host, so use port 2222 instead. Signed-off-by:
Sasha Levin <levinsasha928@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Yang Bai authored
add TAGS target to Makefile to support etags. Signed-off-by:
Yang Bai <hamo.by@gmail.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>
-
Pekka Enberg authored
If Apache Ant is not found, the build fails with a cryptic error message: [penberg@localhost osv]$ make ANT tests/bench Traceback (most recent call last): File "scripts/silentant.py", line 14, in <module> stderr = subprocess.PIPE) File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__ errread, errwrite) File "/usr/lib64/python2.7/subprocess.py", line 1308, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory make: *** [all] Error 1 Make it more human friendly: [penberg@localhost osv]$ make ANT tests/bench Apache Ant not found. Please install the 'ant' package. make: *** [all] Error 1 Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Benoît Canet authored
OSerror exceptions throwed by subprocess.call are made silent using pass. Fix this by properly catching the exception and pretty print it. Signed-off-by:
Benoit Canet <benoit@irqsave.net>
-
- Sep 18, 2013
-
-
Sasha Levin authored
percpu had too little space allocated to support 64 vcpus, which lead to a crash when booting with more than 13 vcpus. Fix it by using a correct size to support 64 vcpus. Signed-off-by:
Sasha Levin <levinsasha928@gmail.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Zhi Yong Wu authored
make[1]: Entering directory `/home/zwu/virt/osv/build/release' GEN gen/include/bits/alltypes.h AS arch/x64/boot16.o LD boot.bin AS arch/x64/boot.o CXX loader.o In file included from <command-line>:0:0: ./../../compiler/include/intrinsics.hh:10:127: error: new declaration ‘unsigned char __builtin_ia32_addcarryx_u64(unsigned char, long unsigned int, long unsigned int, long long unsigned int*)’ [-Werror] ./../../compiler/include/intrinsics.hh:10:127: error: ambiguates built-in declaration ‘unsigned char __builtin_ia32_addcarryx_u64(unsigned char, long long unsigned int, long long unsigned int, long long unsigned int*)’ [-Werror] cc1plus: all warnings being treated as errors make[1]: *** [loader.o] Error 1 make[1]: Leaving directory `/home/zwu/virt/osv/build/release' make: *** [all] Error 2 Signed-off-by:
Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
-
Pekka Enberg authored
Fix ant dependency on Debian
-
Raphael S.Carvalho authored
the ant package must also be explicitly specified, otherwise the following error will raise when building osv. raphaelsc@debian:~/Desktop/osv_dir/osv$ make ANT tests/bench Traceback (most recent call last): File "scripts/silentant.py", line 14, in <module> stderr = subprocess.PIPE) File "/usr/lib/python2.6/subprocess.py", line 623, in __init__ errread, errwrite) File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory make: *** [all] Error 1
-
Pekka Enberg authored
Fix few minor but annoying coding style issues in drivers/virtio-blk.cc. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Sep 17, 2013
-
-
Or Cohen authored
-
Nadav Har'El authored
runtime.cc included a verbatim copy of the structure __locale_data from glibc. We don't need it (not to mention that we're not supposed to copy anything from glibc, it has the wrong license). We previously believed that libstdc++ pokes into this structure, so it needs to be in the exact format of glibc, but now I believe this is not the case, and it only uses __nl_langinfo_l, which in our implementation doesn't even adhere to the locale, and just uses the C locale.
-
Pekka Enberg authored
Running "ctags -R" takes a long time because of git submodules: [penberg@localhost osv]$ time ctags -R real 0m35.076s user 0m18.770s sys 0m3.929s Add a "make tags" target that's much faster to run: [penberg@localhost osv]$ time make tags find . -name "*.cc" -o -name "*.hh" -o -name "*.h" -o -name "*.c" | ctags -L - real 0m0.980s user 0m1.033s sys 0m0.158s Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-