- Apr 08, 2014
-
-
Gleb Natapov authored
Number of to be released balloons is calculated as a difference between current number of balloons and sof max. If they are equal no balloons are released and the loop repeats. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Raphael S. Carvalho authored
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Gordon Ross <gordon.ross@nexenta.com> Approved by: Richard Lowe <richlowe@richlowe.net> Reference: https://illumos.org/issues/3581 Patch taken from Illumos and slight changes were needed to port it to OSv. This patch targets improvement on taskq lock contention by dispatching work over independent task queues. ZFS on Linux devops mention that it's not clear whether or not this issue affects their port, but profile results showed that time spent on taskq_thread() was reduced by about 11%. Apart from getting performance benefits, the number of threads in OSv was nicely reduced (from ~344 threads to ~224; so possibly saving a good amount of memory footprint). Also good for stepping towards our synchronicity with ZFS upstream. Addressing the issue #247. 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>
-
Tomasz Grabiec authored
There are several issues with current code. Firstly, the LENGTH_OK macro was used in the condition in while(). This macro was checking if options + op_len does not exceed packet limit. This macro works fine when used from PARSE_OP() inside the switch, but because 'options' is bumped up by op_len at the end of the loop body, use of this macro in the while condition may result in premature exit of the loop. This was causing that some times OSv was not parsing network mask and gateway leaving them at 0.0.0.0 when started on Goodle Compute Engine. As a result OSv was not responding over network. See issue #254. Another issue was that the stop condition which checks for op == DHCP_OPTION_END was using 'op' from the outer context, which was never overwritten. The actual variable which was changed based on the packet content was redeclared inside the loop. A third problem, spotted by Vlad, is that the code was not handling DHCP_OPTION_PAD properly. This option has only opcode byte and no following length byte. Currrent code would attempt to read the length byte and skip by that amount, which would yiled incorrect parsing result. Reviewed-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
The lookup_opcode() function is incorrect. It was mishandling DHCP_OPTION_PAD, which does not have a following length byte. Also, the while condition is reading 'op' value which never changes. This may result in reads beyond packet size. Since this function is unused the best fix is to remove it. Reveiwed-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Apr 07, 2014
-
-
Pekka Enberg authored
The typo in commit 425c5ce7 ("build-standalone-img: Add version number to image filename") caused the shell script to evaluate "version" command instead of expanding the "version" variable. Fix that. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Add OSv version number to image filename so that we can actually have more than one release available for download... Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
This reverts commit df30ec8d. It breaks building "osv.vdi" altogether. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Make scripts/build-osv-release support both Capstan and standalone images. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
This script is similar to build-capstan-img. Later we can hook this script to scripts/build-osv-release to build images used without capstan. It takes the same args with build-capstan-img. Example output: $ find build/standalone build/standalone/cloudius/ build/standalone/cloudius/osv-iperf build/standalone/cloudius/osv-iperf/osv-iperf.esx.ova build/standalone/cloudius/osv-iperf/osv-iperf.qemu.qcow2 build/standalone/cloudius/osv-iperf/osv-iperf.vbox.ova build/standalone/cloudius/osv-iperf/osv-iperf.vmw.zip build/standalone/cloudius/osv-iperf/osv-iperf.gce.tar.gz Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Claudio Fontana authored
commit 82f881a2 "zfs: mmu: take vma_list_mutex" introduces code that needs to be stubbed for now for AArch64. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Claudio Fontana authored
lots of mmu related changes require fixups for AArch64. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Gleb Natapov authored
Without the lock page mapping and buffer eviction can run in parallel which may cause following race: page mapper thread thread calling arc_evict() map_addr() { page = arc_get_page(); add_mapping(page, ptep); evict(page) { ptep = get_mapping(page); ptep.write(0); free(page); } ptep.write(page); } ARC code has no well defined order for taking its mutexes. It uses trylock() and skips a buffer if required locks cannot be acquired. This patch uses same approach for vma_list_mutex: if evicted buffer is shared try to lock vma_list_mutex and skip the buffer if this fails. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Apr 06, 2014
-
-
Tomasz Grabiec authored
thread_list was populated with references to sched::thread* rather than sched::thread. The commands were assuming the latter. As a result the commands were printing and comparing not against sched::thread address but against address of the pointer to sched::thread in sched::thread_map. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
Looks like gdb.Value() cannot be implicitly converted to int by range() on GDB with python3: for qidx in range(0, vb['_num_queues']): TypeError: 'gdb.Value' object cannot be interpreted as an integer Error occurred in Python command: 'gdb.Value' object cannot be interpreted as an integer Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Apr 04, 2014
-
-
Vlad Zolotarov authored
Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Apr 03, 2014
-
-
Nadav Har'El authored
For a long time we've had the bug summarized in issue #178, where very rarely but consistently, in various runs such as Cassandra, Netperf and tst-queue-mpsc.so, we saw OSv crashing because of some corruption in the timer list, such as arming an already armed timer, or canceling and already canceled timer. It turns out the problem was the schedule() function, which basically did cpu::current()->schedule(). The problem is that if we're unlucky enough, the thread can be migrated right after calling cpu::current(), but before the irq disable in schedule(), which causes us to do a rescheduling for one CPU on a different CPU, which is a big faux pas. This can cause us, for example, to mess with one CPU's preemption_timer from a different CPU, causing the timer-related races and crashes we've seen in issue #178. Clearly, we shouldn't at all have a *method* cpu->schedule() which can operate on any cpu. Rather, we should have only a *function* (class-static) cpu::schedule() which operates on the current cpu - and makes sure we find that current CPU within the IRQ lock to ensure (among other things) the thread cannot get migrated. Another benefit of this patch is that it actually simplifies the code, with one less function called "schedule". Fixes #178. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
Changes: commit 29ae2430f0e2b538477b49b4b9f8432780ddf60e Author: Tomasz Grabiec <tgrabiec@cloudius-systems.com> httpserver: add missing module.py Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
-
Tomasz Grabiec authored
This also bumps up mgmt submodule HEAD to the version which has httpserver as separate module.
-
Raphael S. Carvalho authored
Specific output: Reading directory entries at /proc... dentry name: . dentry name: .. dentry name: self Reading directory entries at /proc/self... dentry name: . dentry name: .. dentry name: maps Signed-off-by:
Raphael S. Carvalho <raphaelsc@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Raphael S. Carvalho authored
This patch fixes applications that read directory entries of a procfs, e.g. ls /proc. Modeled after ramfs. Closes #243 Signed-off-by:
Raphael S. Carvalho <raphaelsc@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Currently, "mgmt.httpserver" pulls the entire OpenJDK which is not what we want for osv-base image which is supposed to be around 10 MB. Switch to "empty" image configuration until the problem is resolved. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Apr 02, 2014
-
-
https://github.com/hw-claudio/osv_aarch64Avi Kivity authored
"This is v3 of the patch series that enables first stubbed support for AArch64." Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Conflicts: bsd/porting/mmu.cc build.mk fs/vfs/vfs_fops.cc
-
Claudio Fontana authored
get the command line and elf header start, then try to stay clear of apparent random limitations during boot early stage with the model, and set up vectors as soon as possible, to enable some minimal post-mortem info. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
This should build and reach end of premain. See PORTING for some initial build instructions. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
include/api/x64/atomic.h is not used anywhere. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
implementation includes only for the few rels that are actually encountered during elf::get_init(). Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
protect x64 machine code in #ifdef __x86_64__ Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
stub console_init for AArch64. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
the functions debug_early, debug_early_u64 and debug_early_entry can be used very early, before premain. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-