- Jan 20, 2014
-
-
Gleb Natapov authored
Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
Remove the extra check on size just like the remark above implies. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
The check is moved to bdev_read and bdev_write. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Asias He authored
setup_features() is called twice, once in virtio_driver constructor and once in virtio device driver constructor. Doing it in driver constructor is enough. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Asias He authored
This would be useful for device with mmio bar, e.g. AHCI controller. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Nadav Har'El authored
The OSv loader has a "--verbose" option to enable debug() output to be printed to the console and not just to a memory buffer. However, needing to pass this option in the "-e" string is annoying, and even worse when you want to use the default command line and didn't even want an explict "-e" option. So this patch adds a --verbose to run.py, which can be used whether or not a "-e" option is given. For example: run.py --verbose or run.py --verbose tests/tst-timerfd.so As a shorthand for --verbose, I used "-V". Unfortunately, lowercase "-v" was already taken (by the "vhost" option). Fixes #173. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
As issue #128 explains, it is annoying that once the "-e" option was used in run.py, it overrides the default command line, so that running run.py again without -e reruns the same modified command line, and not the default one as usual. This simple patch changes this behavior: On every run of run.py, the command line is set - if "-e" is given it is set to the given command line, but if "-e" is absent, the command line is reset to the default one. This is basically the behavior that people always wanted from run.py. This patch, and the behavior it performs, are much simpler than any of the alternatives proposed in issue #128. Please don't complain that this can only be used for development, and not for EC2, for creating images to distribute, and so on. After all, this is a patch to *run.py*, and it is obviously not relevant to anyone who is running an OSv image not through run.py. This patch only makes run.py more convenient to use. Fixes #128. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Jan 19, 2014
-
-
Nadav Har'El authored
sysinfo() until now was a stub. This patches fills some of the information we can already provide, namely the uptime in seconds (through the recently added osv::clock::uptime()), the total and free memory (through the recently added memory::stats::free()/total() functions), and number of processes (always 1 on OSv). This patch also changes a couple of types from unsized names (like "unsigned") to fixed-sized ones (like "u32"), to match the definition of this structure on Linux. It won't make any difference on x86_64, but perhaps in some future architecture it will. Tested-by:
Amnon Heiman <amnon@cloudius-systems.com> Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
sysinfo() used sizeof(struct sysinfo) to decide how many zeros to write. The problem is that our struct was much larger than Linux's (we had a much larger padding at the end), so if we run code compiled on Linux, that code would allocate a small structure on the stack and then zero a much larger structure, causing the stack to be corrupted. Drop the "reserved" field making our structure larger. It's not needed. Fixes #174. Tested-by:
Amnon Heiman <amnon@cloudius-systems.com> Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Fix object::lookup_addr to lookup correct symbol. It should returns the nearest symbol which is s_addr < addr, but it compares opposite way. Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Jan 17, 2014
-
-
Dmitry Fleytman authored
This patch introduces support for MTU option as described in RFC2132, chapter 5.1. Interface MTU Option Amazon EC2 networking uses this option in some cases and it gives throughput improvement of about 250% on big instances with 10G networking. Netperf results for hi1.4xlarge instances, TCP_MAERTS test, OSv runs netserver: Send buffer size Throughput w/ patch (Mbps) Throughput w/o patch (Mbps) Improvement (%) 32 4912.29 1386.28 254 64 4832.01 1385.99 249 128 4835.09 1401.46 245 256 4746.41 1382.28 243 512 4849.04 1375.23 253 1024 4631.8 1356.69 241 2048 4859.59 1371.92 254 4096 4864.99 1383.67 252 8192 4627.07 1364.05 239 16384 4868.73 1366.48 256 32768 4822.69 1366.63 253 65536 4837.67 1353.87 257 Signed-off-by:
Dmitry Fleytman <dmitry@daynix.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
Fixes #116. Because modules add files to which cannot be handled by our build system incremental build fails with messages like this: make[1]: *** No rule to make target `/home/tgrabiec/src/osv \ /apps/cassandra//upstream/jna-3.` Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Zhi Yong Wu authored
Total time: 30.77 secs make -r -C build/release/ all make[1]: Entering directory `/home/zwu/osv/build/release' CXX bsd/sys/xen/gnttab.o In file included from /home/zwu/osv/bsd/sys/xen/hypervisor.h:40:0, from /home/zwu/osv/bsd/sys/xen/gnttab.cc:29: /home/zwu/osv/bsd/machine/xen/hypercall.h: In function ‘int HYPERVISOR_set_trap_table(const trap_info_t*)’: /home/zwu/osv/bsd/machine/xen/hypercall.h:146:9: error: unable to find string literal operator ‘operator"" STR’ /home/zwu/osv/bsd/machine/xen/hypercall.h: In function ‘int HYPERVISOR_mmu_update(mmu_update_t*, unsigned int, unsigned int*, domid_t)’: /home/zwu/osv/bsd/machine/xen/hypercall.h:154:9: error: unable to find string literal operator ‘operator"" STR’ /home/zwu/osv/bsd/machine/xen/hypercall.h: In function ‘int HYPERVISOR_mmuext_op(mmuext_op*, unsigned int, unsigned int*, domid_t)’: ...... make[1]: *** [bsd/sys/xen/gnttab.o] Error 1 make[1]: Leaving directory `/home/zwu/osv/build/release' make: *** [all] Error 2 Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Zhi Yong Wu <zwu.kernel@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
This reverts commit 59563357 which causes significant slowdown on first time boot to a QCOW2 image: [penberg@localhost osv]$ time ./scripts/run.py OSv v0.05-rc1-108-g0639dd8 OpenJDK 64-Bit Server VM warning: Can't detect initial thread stack location - find_vma failed ^D^D^D [/]% real 0m9.954s user 0m4.958s sys 0m1.309s [penberg@localhost osv]$ git revert 59563357 [penberg@localhost osv]$ time ./scripts/run.py OSv v0.05-rc1-108-g0639dd8 OpenJDK 64-Bit Server VM warning: Can't detect initial thread stack location - find_vma failed ^D^D^D [/]% ^D real 0m4.441s user 0m3.785s sys 0m0.530s Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add a simple manual test case for checking "/proc/self/maps" output. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add a '/proc' directory to OSv image and mount procfs on it. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
This patch adds a simple Linux compatible procfs filesystem. It currently implements a "/proc/self/maps" file which is looked up by OpenJDK during startup. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add procfs_maps() function to core/mmu.cc that returns all the VMAs formatted for Linux compatible "/proc/<pid>/maps" file. This will be called by the procfs filesystem. Limitations: * Shared mappings are not identified as such. * File-backed mmap offset, device, inode, and pathname are not reported. * Special region names such as [heap] and [stack] are not reported. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add 'struct file' to VOP_READ API. This is needed for procfs which generates file contents at open() time and read() must operate on it, not the vnode. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Currently, RLIMIT_STACK is 64 KB. This is too small for the JVM which limits stack size to RLIMIT_STACK if a VMA range that covers address found in '__libc_stack_end' in /proc/self/maps. In preparation for procfs support, switch to pthread_attr_getstacksize() for RLIMIT_STACK. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add pthread_attr_getstacksize() in preparation for fixing RLIMIT_STACK. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Jan 16, 2014
-
-
Glauber Costa authored
As noted by many of you, we need a mechanism to control whether or not the balloon mechanism is enabled. A trivial way is to allow for a boot option that will control it, and that may (or may not) be the right route in the future. But (at least) right now the safest way to proceed is to view -Xmx as a declaration of intent. In that case, we disable the balloon, leaving it enabled only for people who didn't went through the trouble of calculating a value. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
This code should not be here. I am 100 % positive that I removed it in my testings, but I must have forgotten to git add the remove before I sent out the patch and it ended up in tree. This is simply a test leftover, it will have the effect of having threads to loop forever and never waiting because the initial value won't be 0. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
isa-serial.hh don't need to include vga.hh, but it's required on console.cc, so move it. Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Remove the copyright statement from boot log but keep the OSv version banner there to tidy up boot. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
OpenJDK looks up "/dev/urandom" at startup but works just fine without it. There's no need to display an error message in OSv if that happens. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
OSv debugging and trace analysis are much better covered in the Wiki pages. Replace the text in README with links to the more up-to-date Wiki. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Take the latest mgmt.git which has fixes to make OSv boot less verbose. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
This reverts commit 4af010f1. This change causes OSv to abort when JVM is started with the following options: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 Result: ERROR: transport error 202: setsockopt TCPNODELAY failed: Protocol not available ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) Aborted I think it's best to revert it until the root cause is solved. See issue #167 Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
Since recently, debug() messages are by default not visible. This means they are not a good way to print error messages :-) This patch fixes two error messages from loader.cc, that were no longer visible. For example, "scripts/run.py -e xyz" completed without any message instead of telling the user that "xyz" doesn't exist. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
Output to stdout normally goes to file descriptor 1. However, during early boot, before the console is opened on file descriptor 1, we also want printf() to work. So this case is specially treated in libc/stdio/__stdout_write.cc, where in this early case, we used debug_write directly, instead of write to the file descriptor. However, recent patches changed debug_write to write to a memory buffer, instead of to screen (unless "--verbose" option is given to the loader). This made early printf() break too. This patch changes __stdout_write to use console::write(), not debug_write(). To use console::write(), I had to convert that source file to C++. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add a 'trace extract' command that hides the gdb magic and is future-proof when we change the trace transport protocol. Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
This adds a '--graphics' option to run.py that enables QEMU's graphics mode using SDL. This is needed for testing OSv's VGA support. Requested-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Dor Laor authored
Drop echoing: "SCRIPT, tap0" Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Jan 15, 2014
-
-
Avi Kivity authored
The timeout test sets a 2 second timeout and a 1 second alarm, and expects the timeout to happen first. Change the timeout to 0.5 seconds. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Avi Kivity authored
Microsecond values were passed as is instead of being scaled by hz. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-