- 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>
-
- 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>
-
Jani Kokkonen authored
Signed-off-by:
Jani Kokkonen <jani.kokkonen@huawei.com> Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
rename processor::halt_no_interrupts to cli_hlt, which logically matches existing processor::sti_hlt. Make use of arch::halt_no_interrupts in core/power.cc, enclose x64-specific code in ifdefs, as well as putting code on AArch64. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
virt_to_phys just returns the virtual address again for AArch64 for now, while mmu_unmap will abort. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
use %wn when referring to the non-extended register n, and %n when referring to the extended register n, emit the right memory barrier instructions, get the semantics of atomic_store_rel hopefully right. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Claudio Fontana authored
this contains still prototyped code, which if reached either hangs (setjmp, longjmp), aborts (all that requires mmu::), or implements differently (allocating with malloc instead of mmap) This is enough libc AArch64 support for reaching the end of premain. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
https://github.com/gleb-cloudius/osvAvi Kivity authored
" This is write page cache implemented on top of ARC read cache. On a read fault pages are initially mapped from ARC directly, but they are marked as RO in a page table. On a write fault pages are copied into small write page cache for shared mapping, or into anonymous page for private mappings. Pages are removed from write cache and written back into a file in a FIFO order. This passes "make check", misc-mmap-big-file modified to do write in addition to read and "cassandra-stress -d". " Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
This reverts commit 64889277. The structure is not longer used. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
This patch adds write page cache implementation. On a read fault pages are initially mapped from ARC directly, but they are marked as RO in a page table. On a write fault pages are copied into small write page cache for shared mapping, or into anonymous page for private mappings. Pages are removed from write cache and written back into a file in FIFO order. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
File page allocator needs to know fault type (read/write) and mapping type (shared/private) to handle page allocation correctly. It also needs a way to communicate to a caller that some pages need to be mapped RO for COW. This patch adds required functionality without using it yet. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
It holds offset into file, not mapping. Also to be consistent with map_file_page_read. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Page allocator may return shared page that needs to be COWed during write access. There is not way to notify page mapper that such page should be mapped read only currently. This patch allows page allocator to control that. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Page allocation may behave differently depending on a type of a fault. Read fault may return ARC page, but write may do cow for instance. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Currently flags are saved for anon_vma, but not for file_vma. Examining those flags in gdb proved to be helpful. Remove _shared since it no longer needed, the information is in the flags. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Private mapping are also done from ARC cache and have same problem as shared mappings. Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
This allows those function to be called on const object. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-