- Feb 07, 2014
-
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
I am proposing a mechanism here that will allow us to have a better idea about how much time do we spend booting, and also how much time each of the pieces contribute to. For that, we need to be able to get time stamps really early, in places where tracepoints may not be available, and a clock most definitely won't. With my proposal, one should be able to register events. After the system boots, we will calculate the total time since the first event, as well as the delta since the last event. If the first event is early enough, that should produce a very good picture about our boot time. Signed-off-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>
-
Glauber Costa authored
This patch provides a way to, given a measurement from tsc, acquire a nanosecond figure. It works only for xen and kvm pvclocks, and I intend to use it for acquiring early boot figures. It is possible to measure the tsc frequency and with that figure out how to convert a tsc read to nanoseconds, but I don't think we should pay that price. Most of the pvclock drivers already provide that functionality, and we are not planning that many users of that interface anyway. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Feb 06, 2014
-
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Conflicts: build.mk external/x64/acpica external/x64/gcc.bin external/x64/glibc-testsuite external/x64/glibc.bin external/x64/misc.bin external/x64/openjdk.bin
-
- Feb 05, 2014
-
-
Nadav Har'El authored
The current code the trace_log - a 4MB array which stores tracepoint data - is a global array. In other words, as explained in issue #96, it is part of the BSS, which always adds 4MB memory usage to OSv - whether or not tracepoints are actually enabled. This patch changes trace_log to be a dynamically-allocated array, allocated when the first tracepoint is enabled (e.g., with a --trace=... boot option). This will also allow us (in the future) to choose the size of the trace log at run time rather than compile time. This patch reduces 4 MB of BSS (from 13MB to 9MB), and correspondly lowers our minimum memory use by 4 MB. Whereas the minimum memory requirement of the "rogue" image used to be 59 MB, now it is 55 MB. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Claudio Fontana authored
First step towards moving x64-specific stuff into arch subdirectories: move the submodules in external/ to external/x64/, rename amd64->x64 in opensolaris, rename x86_64->x64 in include/api, adapt build.mk to reference the updated paths, and improve detection of include dirs and libs in the external submodules. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Hopefully this will reduce porting efforts. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Feb 04, 2014
-
-
Avi Kivity authored
bba6263 apps: Added netperf3 module 19d0873 Fix "haproxy" module 09f8699 apps: drop obsolete netperf patch Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Feb 03, 2014
-
-
Glauber Costa authored
In the end, all uses ended up being done by the object itself. Remove the public accessors. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
list_time can currently be sorted by duration. Since we read things from the buffer in buffer order to construct the trace list, the list is already quasi-sorted by its timestamp key: it is per-cpu sorted, but globally we have not a lot of guarantees and some samples will get reordered. It would be useful to have a list that is strongly sorted as well. Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
I think the current code is broken in 'GB' case because it trims memory string twice. Spotted during skimming over the file. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
It is useful when trying to detect IP assigned to guest using the arp table: `arp -n` Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Raphael S. Carvalho authored
Currently, a file path always need to be specified as an argument, so let's make things easier by providing a default file path. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Raphael S. Carvalho <raphaelsc@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
The first entry in a backtrace tends to be the point in which we arrived at the trace, which is a logtrace function. That only clutters output, because that is a long named function that is basically adding no meaningful information While we could pop the first element unconditionally, that would not be robust against function inlining by the compiler. We can also add more trace functions in the future, so I'm popping elements in a loop until we're out of trace stuff in the beginning of the backtrace. Backtrace traces are a lot easier to follow with this patch. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
Currently when object file cannot be located GDB fails with enigmatic: Python Exception <type 'exceptions.TypeError'> cannot concatenate 'str' and 'NoneType' objects It's better to read as much as we can and warn about what we failed to locate. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
We need to add mgmt/ to the search list. Otherwise it fails like this: gdb$ osv syms None 0x100000000000L Python Exception <type 'exceptions.TypeError'> cannot concatenate 'str' and 'NoneType' objects: Error occurred in Python command: cannot concatenate 'str' and 'NoneType' objects Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
For page-sized allocations, it is better to use alloc_page than it is to use malloc. The reason is that malloc for that size will arrive at malloc_large, which is a locked operation, while alloc_page will proceed locklessly if there is room in the per-cpu buffers. Although it is just a test, since the goal is to saturate the disk, doing so will allow us to get a closer picture, since the completion handler won't block. In KVM with my weird disk I see now ~65 Mbps where I previously saw ~45Mbps. Interestingly enough, it doesn't seem to make a whole lot of difference for Xen. There is a difference, but it is not nowhere as near. Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Glauber Costa authored
This test is similar in spirit to misc-bdev-write, but instead of pushing as many bios as we can, we'll push one bio at a time. Example output for Xen: OSv v0.05-118-g0f2973c Min 50% 90% 99% 99.99% 99.999% Max [msec] --- --- --- --- ------ ------- --- 0.2344 0.3240 0.2847 0.8185 2.4095 6.5230 13.6572 Example output fo KVM: OSv v0.05-118-g0f2973c Min 50% 90% 99% 99.99% 99.999% Max [msec] --- --- --- --- ------ ------- --- 0.2626 0.3976 0.3273 0.4791 0.5993 7.6401 15.9672 (Hint: the current xen blkfront slowness is not related to RT latency...) Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
If abort() called the result of an exception (ex: segv), my backtrace-on-abort patch outputs incorrect symbol name on exception handler. Because it doesn't have enough information on elf header. This patch adds the information. Before the patch applied: page fault outside application [backtrace] 0x2f3b31 <mmu::vm_sigsegv(unsigned long, exception_frame*)+37> 0x2f3d4d <mmu::vm_fault(unsigned long, exception_frame*)+215> 0x325b34 <page_fault+157> 0x324797 <void std::__introsort_loop<fault_fixup*, long>(fault_fixup*, fault_fixup*, long)+1129> <-- This is incorrect ! 0x312a05 <vmware::vmxnet3::vmxnet3(pci::device&)+473> After applied: page fault outside application [backtrace] 0x2f3b31 <mmu::vm_sigsegv(unsigned long, exception_frame*)+37> 0x2f3d4d <mmu::vm_fault(unsigned long, exception_frame*)+215> 0x325b34 <page_fault+157> 0x324797 <ex_pf+35> <-- Correct name 0x312a05 <vmware::vmxnet3::vmxnet3(pci::device&)+473> Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Avi Kivity authored
wake_lock() prevents a race with the target thread waking up after wake_lock() and attempting to take the mutex by itself, by changing the thread status to sending_lock. However, it doesn't prevent the reverse race: t1 t2 ========================= ====================== wait_for() mutex::unlock() thread::wait() t1->wake() mutex::lock() mutex::lock() [A] thread::wait() t1->wake_lock() [B] After [A], t1 is waiting on the mutex, and after [B], it is waiting twice, which is impossible and aborts on an assertion failure. Fix by detecting that we're already waiting in send_lock() aborting the send_lock(). Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Consumer-side iteration only; pop() invalidates iterators. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Feb 02, 2014
-
-
Or Cohen authored
Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Or Cohen authored
Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Or Cohen authored
This is the old and obsolete sshd implementation. Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Or Cohen authored
This was previously added to Stty under the mgmt tree. Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Or Cohen authored
Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Or Cohen authored
Combined java/cli and java/cloudius packages into one. Added java/cloudius.jar as a jar to the build. Signed-off-by:
Or Cohen <orc@fewbytes.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Thread names Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Conflicts: core/sched.cc libc/timerfd.cc
-
Avi Kivity authored
Useful for debugging. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
idle, load balancer, init. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-