- Mar 21, 2014
-
-
Nadav Har'El authored
drivers/libtsm includes a bunch of Doxygen comments, and worst of all, a "@mainpage" tag controlling Doxygen's main page. Since libtsm isn't really part of the API we intend to advertise, let's exclude this directory from being scanned by doxygen. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
Don Martin writes: I'm experimenting with Capstan, trying to rule out some things for getting a bigger application working. I have a simple program to recursively list directory contents, here... https://github.com/dmarti/mini-ls It works on the host, but when I build the .so, the "capstan build" step works, and then when I do "capstan run"... $ capstan run OSv v0.05-501-gdbdf4f7 Failed looking up symbol alphasort This is missing libc functionality in OSv. To fix that, add the alphasort function from musl. Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Mar 20, 2014
-
-
Avi Kivity authored
When we discard a bad buffer, we don't advance to the next one, so we'll free it again on the next pass, resulting in a double-free. Tested-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pekka Enberg authored
The API is listening to port 8000, not 8080. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Mar 19, 2014
-
-
Tomasz Grabiec authored
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>
-
Asias He authored
Add similar function of the following route command in Freebsd to OSv. $ route add -host $host_ip -interface $interface_name e.g. $ route add -host 10.240.0.1 -interface eth0 This is useful when the gateway is not reachable within the network specified by the interface. For instance, GCE's DHCP server provides: ip=10.240.10.15, netmask=255.255.255.255, gw=10.240.10.1 A host route entry is needed before we can add the default route entry. With this patch, the route table looks like: Destination Gateway Flags Netif default 10.240.0.1 UGS eth0 10.240.0.1 42:01:0a:f0:e0:c5 UHS eth0 10.240.10.15 link#2 U eth0 10.240.10.15 link#2 UHS lo0 127.0.0.1 link#1 UH lo0 Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Mar 18, 2014
-
-
Sanidhya Kashyap authored
Fixes #198. Signed-off-by:
Sanidhya Kashyap <sanidhya.k@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Sanidhya Kashyap authored
Fixes #198. Signed-off-by:
Sanidhya Kashyap <sanidhya.k@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Avi Kivity authored
tcp_close() related bug fix switch virtio to page buffers Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
Python3 no longer has "long" type, and what was "long" on python2 is now "int". To make the code portable commit eb5eb910 switched long() conversions to int() conversion, which should be equivalent. It turns out that GDB's implementation of gdb.Value, when compiled against python 2, has a slight difference between int() and long() conversions. The long conversion can be used on pointers whereas int conversion cannot. I don't about any reason it should be like this, maybe it is a GDB bug: This is int() handler: if (!is_intlike (type, 0)) error (_("Cannot convert value to int.")); l = value_as_long (value); This is long() handler: if (!is_intlike (type, 1)) error (_("Cannot convert value to long.")); l = value_as_long (value); Note the second argument to is_intlike() differs between variants, "1" means "pointers allowed". Since on python3 int() conversion calls the long handler, it works as expected. As a workaround for this I defined to_int() function which performs the conversion in a portable way. This needs to be done only when the value may be a pointer. Places which check: if int(x) != 0: can be simplified to: if x: which works with both pointers and numbers in both versions. Reported-by:
Raphael S. Carvalho <raphaelsc@cloudius-systems.com> Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
https://github.com/gleb-cloudius/osvAvi Kivity authored
" System V shared memory implementation It looks like fio needs it although with single address space any memory is shared anyway. " Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Mar 17, 2014
-
-
Gleb Natapov authored
Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Implement shmget/shmat/shmdt/shmctl function required by System V shared memory interface. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
shmdt() is defined to get const pointer. Next patch implements shmdt using unmap(), so const qualifier either need to be casted off or unmap() and friends need to get const pointer as a parameter too. This patch implement the later. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
shmfd is a pseudo file that allows sharing of anonymous memory. Each mapping for this file points to the same memory. Only huge pages are supported for now. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Implement page_allocator specialization that delegates page allocation/deallocation to mmaped file. It will be used to mmap files that support get_page/put_page calls. Others fall back to old way of reading file. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
map_page_ops is used by page mapper to managed individual page allocations and freeing, but the name is not reflects that. page_allocator describes better the purpose of the structure. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Some kind of files may want to handle mmap differently. By delegating file_vma creation to the file class it is possible for each file to create customized vma. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
https://github.com/asias/osvAvi Kivity authored
"Scsi fix and improvements". Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
It will be used outsize of mmu code. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Avi Kivity authored
Curently virtio uses MCLBYTES (2KB) buffers for virtio. This hits a weakness in our UMA and memory allocation implementations: - UMA appends a 4-byte reference count to the allocation, resulting in an 2052 byte allocation request - Our allocator only services requests up to 2048 bytes from the mempool allocator; larger requests are serviced by the large allocator, which is significately slower, and is also serialized by a mutex. Switch to an EXT_EXTREF mbuf with the buffer and refcount allocated separately. This also allows us to switch to 4K allocations serviced by the page allocator (memory::alloc_page()), which is our fastest allocator, and halves the lengths of the mbuf chains on streaming workloads. Increases iperf stream (host->guest) results from ~12Gbps to ~34Gbps on my desktop. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Avi Kivity authored
tcp_do_segment() has a nasty habit of sometimes closing the tcp connection. This plays havoc with the locking rules (as updated for net channels), since tcp_do_segment() is supposed to return with the lock held, yet tcp_close() will unlock if the connection is disassociated from a socket. Fix by having tcp_do_segment() not close the connection, and instead indicate its desire to do so to its caller. Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
Currently it fails with: Traceback (most rTraceback (most recent call last): File "scripts/trace.py", line 433, in <module> args = parser.parse_args() ... File "/usr/lib/python2.7/argparse.py", line 601, in _expand_help return self._get_help_string(action) % params ValueError: incomplete format Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Mar 16, 2014
-
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
https://github.com/gleb-cloudius/osvAvi Kivity authored
"This series fixes problems that we see with Glaubers glommer/zfsbuffers branch. The branch has code that maps read only pages directly from zfs ARC cache. During heavy testing there are a lot of tlb flushes and page faults and at some point test fails with stack corruption." Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
Page fault handler may call into zfs and in some cases this causes exception stack overflow. Enlarge exception stack to 16k to prevent overflow. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
Interrupt may happen after exception stack is switched, but before exception handler returns. If interrupt handler will causes exception it will overwrite current stack. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Gleb Natapov authored
switch_to() always sets exception pointer in tss to primary exception stack, so when scheduling happens from an exception nested stack configuration is lost. Fix it by saving and restoring current exception stack from tss. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
https://github.com/asias/osvAvi Kivity authored
Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Nadav Har'El authored
This patch fixes "perf stat memory_malloc". This used to crash: When the tracepoint was first reached, we called per_cpu_counter::increment(); If this was the first time this function was called, the lazy symbol resolution caused program::resolve() to be called, which among other things allocates memory again - yielding endless recursion. The fix is to call per_cpu_counter::increment() once, on some silly junk counter, before setting the tracepoint probe. This will ensure that this function will have already been resolved by the time it is called in an actual tracepoint. Fixes #239. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- Mar 14, 2014
-
-
Asias He authored
This line is useless. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Asias He authored
Writing to PORT_SACT is need for NCQ cmd only. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Asias He authored
Currently, only one cmd will be pending at most. The device is always ready when we send the next cmd. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Asias He authored
This simplifies the cmd completion code a bit. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Asias He authored
This is a preparation for next patch. We will need the slot number in wait_cmd_poll and wait_cmd_irq. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Asias He authored
Instead of wait for hardcoded slot 0, add slot parameter. Signed-off-by:
Asias He <asias@cloudius-systems.com>
-
Tomasz Grabiec authored
It is cumbersome to have to type "file" on every trace command. Let's use "tracefile" by default. Before: trace extract file trace summary file trace prof file After: trace extract trace summary trace prof Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
Instead of: trace list | less just do: trace list Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
Often profile has only one tracepoint, let's save users some typing by showing all by default. Before: trace prof -t sched_wait After: trace prof Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-