- May 08, 2014
-
-
Jaspal Singh Dhillon authored
This patch changes the definition of __assert_fail() in api/assert.h which would allow it and other header files which include it (such as debug.hh) to be used in mgmt submodules. Fixes conflict with declaration of __assert_fail() in external/x64/glibc.bin/usr/include/assert.h Signed-off-by:
Jaspal Singh Dhillon <jaspal.iiith@gmail.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- May 07, 2014
-
-
Takuya ASADA authored
Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
This change moves syncache_head construction to its constructor so that the timer can be nicely embedded in the structure. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Takuya ASADA authored
Now we enabled both VGA and serial, we nolonger need to add --vga cmdline for VMW/VBox. Reviewed-by:
Asias He <asias@cloudius-systems.com> Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Raphael S. Carvalho authored
According to the manual page, the nsec field from both it_value and it_interval must be checked, if wrong, return EINVAL. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Raphael S. Carvalho <raphaelsc@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Pawel Dziepak authored
The return values of LOCK() and UNLOCK() are never used. Besides, in the current Musl version these macros do not have return values at all. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Pawel Dziepak <pdziepak@quarnos.org> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
The script did not parse the response properly in case the symbol is unknown. That version of addr2line responds in two lines: ?? ??:0 but the script was assuming one line ?? ??:0, as returned by addr2line v2.24 Reported-by:
Asias He <asias@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 command shows a profile with amount of time threads were blocked on a mutex. This can be used to estimate lock contention. To use the profile the 'mutex_lock_wa*' tracepoints need to be enabled with backtrace. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Claudio Fontana authored
implement simple GIC class for interacting with the GIC distributor and CPU interface. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Jani Kokkonen authored
the class construction of the page_table_root must happen before priority "mempool", or all the work in arch-setup will be destroyed by the class constructor. Problem noticed while working on the page fault handler for AArch64. Signed-off-by:
Jani Kokkonen <jani.kokkonen@huawei.com> Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
dentry object represents a directory, vnode represent a file, so it is better to use vnode in the page cache. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
Elevated vnode reference count should not prevent rename() from working. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Gleb Natapov authored
It was accidentally changed to "write" by 4658e563. Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Claudio Fontana authored
includes an implementation of arch_early_console for x64 using isa-serial, and an implementation for aarch64 using the (for now write-only) pl011. This restores output functionality for AArch64 lost in commit 9bbbe9dc. Signed-off-by:
Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
- May 06, 2014
-
-
Pawel Dziepak authored
There is already defined (but unused before this patch) function that extracts binding type from Elf_Sym::st_info. Signed-off-by:
Pawel Dziepak <pdziepak@quarnos.org> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
It's just cluttering the backtrace. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
Fixes #255. The default OSv build has plenty of inlined functions. The tracing tool is using 'addr2line -Cfp' to resolve symbols. That mode of operation of addr2line yields one line per symbol and that line will only show the inlined function, even though the information about "logical" callers is also available. Example: $ addr2line -Cfp -e build/release/loader.elf 0x32963d lock_guard at (...) There is the '-i' switch we could use to also see code locations into which this function was inlined: $ addr2line -Cfpi -e build/release/loader.elf 0x32963d lock_guard at (...) (inlined by) lock_guard_for_with_lock at (...) (inlined by) mmu::vm_fault(unsigned long, exception_frame*) at (...) In this case, 'mmu::vm_fault' is much more interesting than lock_guard and thus we would like to show it in the backtrace. This change allows symbol resolvers to return multiple source addresses per raw address and changes the default implementation to return inlined-by functions by default. The new behavior can be suppressed with --no-inlined-by. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Boqun Feng authored
According to http://gcc.gnu.org/gcc-4.9/porting_to.html , gcc now warns about unused right-hand side of a comma expression that contains no side effects. Rewrite LOCK/UNCLOCK using inline funciton instead of comma expression. Signed-off-by:
Boqun Feng <boqun.feng@linux.vnet.ibm.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Boqun Feng authored
-Werror=unused-function complains symbol_binding is unused, add an attribute of unused to mark this function unused. Signed-off-by:
Boqun Feng <boqun.feng@linux.vnet.ibm.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Boqun Feng authored
-Werror=sign-compare complains about when comparing (unsigned)level with page_mapper.nr_page_sizes(). Since nr_page_sizes() is meaningful only when it's non-negative and the mmu::nr_page_sizes is unsigned, changing the return types of all nr_page_sizes functions to unsigned is reasonable. Signed-off-by:
Boqun Feng <boqun.feng@linux.vnet.ibm.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
- May 05, 2014
-
-
Tomasz Grabiec authored
The test fails when the problem described in issue #283 exists. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
The synchronizer allows any thread to block on it until it is unlocked. It is unlocked once count_down() has been called given number of times. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
Fixes #283. When backlog is full upon receiving ACK, keep the entry in SYN cache. The client will eventually retransmit unacknowledged data and the connection state promotion will be retried at later time. Dropping of SYN cache entries was causing connection resets on the client side. The entry will be dropped when either of these occurs: * The connection is successfully ACK'ed * Invalid packet is received for that connection * SYN+ACK retransmission limit is exceeded * SYN cache hashmap bucket fills up - oldest entry is removed. We could also implement yet another protection mechanism, as a next step. We could drop SYN requests when we know the backlog is full, but this patch makes the biggest difference. SYN-dropping might be needed to avoid resets when the number of sudden connections is so large that SYN cache buckets fill up. Assuming connection hashing is good, that's quite a lot of connections - the hash map has 512 entries with buckets of up to 30 elements. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
Tomasz Grabiec authored
This fixes lock order inversion problem mentioned in #287 for SYN cache. This problem may affect all places which use callout_init_mtx() or callout_init_rw(). The only place which is left after this change is in in_lltable_new(), which is creating a timer for expiring ARP entries. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Avi Kivity <avi@cloudius-systems.com>
-
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> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Reviewed-by:
Tomasz Grabiec <tgrabiec@gmail.com> 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> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
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> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
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> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
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> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
The current tracepoint coverage does not handle all situations well. In particular: * it does not cover link layer devices other than virtio-net. This change fixes that by tracing in more abstract layers. * it records incoming packets at enqueue time, whereas sometimes it's better to trace at handling time. This can be very useful when correlating TCP state changes with incoming packets. New tracepoint was introduced for that: net_packet_handling. * it does not record protocol of the buffer. For non-ethernet protocols we should set appropriate protocol type when reconstructing ethernet frame when dumping to PCAP. We now have the following tracepoints: * net_packet_in - for incoming packets, enqueued or handled directly. * net_packet_out - for outgoing packets hitting link layer (not loopback). * net_packet_handling - for packets which have been queued and are now being handled. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
This tracepoint is invoked whenever TCP state is changed. Example output: tcp_state tp=0xffffc0003dbb6c00, 6 -> 9 There is no pretty-printer yet for state numbers, they can be decoded using defines from tcp_fsm.h. It's useful when tracing reaction of the stack on particular network packets, when used together with net_packet* tracepoints and 'trace list --tcpdump'. We can also get information from which code location given state was changed, by enabling backtrace collection and using -b[-L][-F] flags to 'trace list'. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Tomasz Grabiec authored
This will allow to insert tracepoint invocation in the setter which will cover all occurrences of TCP control block state change. Signed-off-by:
Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Takuya ASADA authored
Signed-off-by:
Takuya ASADA <syuu@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-
Vlad Zolotarov authored
(u16)_avail_added_since_kick wrap-around should be avoided since we may loose an _avail_event update and thus miss the point where the HV should have been woken (kicked). We choose half a u16 range as a threshold since kick() is usually called for a bulk of buffers and not for every separate buffer. Number of buffers in such a bulk is limited by a size of a virtio ring. The virtio ring size is unlikely to have 32K entries in the nearest future (it has 256 entries now) thus kicking() at least every 32K buffers will ensure that we prevent the mentioned above wrap-around as a result of such a bulking. Reviewed-by:
Nadav Har'El <nyh@cloudius-systems.com> Signed-off-by:
Vlad Zolotarov <vladz@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
-