- Mar 24, 2014
-
-
Takuya ASADA authored
Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> [ penberg: fix formatting ] Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Gleb Natapov authored
Rescheduling in nested exception is not supported since nested exception stack is per cpu, but without the assert such reschedule will cause stack corruption which will be hard to debug. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
AHCI has 32 cmd slots to issue cmd. Only first slot is used currently which makes the queue-depth 1. This patch uses all the cmd slots and makes the cmd completion async. Now, the queue-depth is 32. Test with "/tests/misc-bdev-write.so" on VBOX shows improvements: Before: ~10MB/s After: ~20MB/s 1000 round of "/tests/misc-bdev-rw.so" tests passed on VBOX and QEMU. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
Assert to make sure the data buffer address satisfies the AHCI spec's data alignment requirement. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
AHCI spec '4.2.2 Command List Structure' says 'Command Table Descriptor Base Address' must be aligned to 128-byte cache line, indicated by bits 06:00 being reserved. All the 32 cmd_table are allocated in one linear space. The size of cmd_table is 144 bytes for now which is larger than 128 bytes. So we pad cmd_table to 256 byes. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
One PRDT entry can contain 4MB buffer at most, we currently only use one PRDT per AHCI cmd. Limit the size of a bio request to respect it. Larger bio will be split into smaller bios by multiplex_strategy. Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
Add missing scandir() function from musl 1.0.0. Fixes #237. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Asias He authored
We now print disk probe information like: virtio-scsi: Add scsi device target=1, lun=0 as vblk0, devsize=10842275840 Disable it by default. The --verbose option will make this info available which is useful when debug. Reported-by:
Pekka Enberg <penberg@cloudius-systems.com> Signed-off-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- Mar 21, 2014
-
-
Glauber Costa authored
It will create a file on-disk twice as large as memory, and then will map it entirely in memory. The file is then read from using 3 different sequential patterns, and then later on 2 threaded patterns. This test does not handle writes. It goes in misc because it takes a very long time to run (especially with a random pattern) Example output: Total Ram 586 Mb Write done Double Pass OK (13.6323 usec / page) Recency OK (3.35954 usec / page) Random Access OK (640.926 usec / page) Threaded pass 1 address ended OK Threaded pass many addresses ended OK PASSED Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
Gleb have noticed a problem with the buffer mapping logic, that would make unrelated mappings that would be adjacent to the file mapping be invalidated as well. This is because we were invalidated an area as large as the buffer. If the mapping would, for instance, end in the middle of the buffer, we would keep invalidated adjacent regions. The solution is to change the code to handle per-page, not per-buffer mappings. We would likely need something like that anyway for COW maps, so let's just start handling it now. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
This case is not supposed to be utterly common, but we have to handle it anyway. This implementation is slightly naive, but it should be okay if the number of mappings is small. We should revisit it this number start growing too much Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
Historically, we only call vma::set() for non-fixed mappings. The reason is that for fixed mappings, we already know and set which address we are putting the map at. However, now that we have more operations tagging along vma::set(), it is better to call it unconditionally. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
The vma class has a method to update its range. Use it during split, instead of naked coding it. It will be particularly important if we want to tag other operations along the range update. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
To better deal with shared buffers, we should expand the interface to get_page/put_page. Three changes are needed: first, the start of the virtual address is passed to both. Together with the offset, it can be used to uniquely identify the virtual address being mapped. That will be used to manage the mapping list. Regarding the offset itself, there is need to also pass the file offset downwards, the one specified by the mapping. Reading that from the file pointer is not enough, because not only this is not what the user has asked for, but it can change during the map's lifetime. It also should be a separate parameter from the in-mapping offset, not summed together with it. Doing otherwise would make impossible for the mapping function to differentiate between those two concepts Also, put_page is called from the free operation, but does not receive the actuall address from it. Knowing the physical address will be important to shut down our mapping list. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
Provide a map and unmap function that maps directly into the ARC cache. Most of the boilerplate code is inspired in the read function, but I have decided to leave it separate to avoid complicating the original functions. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
We won't require all filesystems to implement it, those who don't should return ENOSYS. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
That will allow us to read a dmu arc-backed buffer and acquire a pointer to it, instead of copying it somewhere else. This function will both do mapping and unmapping, depending on its last parameter. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
I am using the same name as solaris code expect. The first field is an uio, and the rest is something that we will use in specialized functions. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
The underlying filesystem won't be able to back it with huge pages, so force small. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
To avoid overloading "change_perm"'s meaning, and taking advantage of our nice template based page walker, this patch creates another walker that will unmap a range of pages, marking them all as non present. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
This comes together with the placeholder in the mmu-side to get this warning. The actual functionality is not yet implemented Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Glauber Costa authored
A new (private) flag is added that marks a buffer as shared between ZFS and the page cache. It indicates that before evicting this buffer, ZFS will have to take some action. Right now no action is taken besides clearing the flag. Signed-off-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Gleb Natapov authored
If the flags is set on vma it is backed by small pages only. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Reviewed-by:
Glauber Costa <glommer@cloudius-systems.com>
-
Pekka Enberg authored
Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
Add support for SA_RESETHAND signal handler flag, which means that the signal handler is reset to the default one after handling the signal once. I admit it's not a very useful feature (our default handler is powering off the system...) but no reason not to support it. Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
This script list up missing libc function called from a shared library. Usage: ./scripts/check-libcfunc-avail.sh release apps/memcached/memcached.so Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tzach Livyatan authored
In a case of nested submodules, like swagger-ui inside mgmt inside osv, only the --recursive update all the submodules, all the way down. Signed-off-by:
Tzach Livyatan <tzach@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Gleb Natapov authored
Thread pointed to by tlb_flush_waiter may exit before tlb_flush_ipi() calls wake() on it which will cause access to freed memory. Fix that by using thread_handle which was introduces to handle exactly those kind of races. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Nadav Har'El authored
After commit 5c652796, our thread id is 32 bit, not 64 bit. This patch fixes the return type of the id() function, and replaces an incorrect comment (which claimed that the ids are unique during the lifetime of the system) with a more accurate description on this function, using a doxygen comment (so it can be seen in our doxygen API documentation). Signed-off-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
This variable is for keeping value of uint32_t shiftcode[n], so it should be uint32_t as well. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Fixes #219. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
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>
-