- Apr 17, 2013
-
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
1. fix many races 2. use a mutex to protect access to callout data structure 3. delete callout->c_state and use the original callout->c-flags also update CALLOUT_PENDING and CALLOUT_ACTIVE accordingly. 4. support correct behaviour for callout_pending(), callout_active() and callout_deactivate() 5. implement a mutex version: callout_init_mtx() used by tcp syncache 6. add debug prints
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
these are used by TCP.
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
connect() fails due to these missing lines.
-
Guy Zana authored
log lines weren't reaching the console in a synchronized way
-
Guy Zana authored
-
Guy Zana authored
previousely, the len argument weren't handled correctly, it should be returned to the user and the sockaddr salen should be initialized with the api when possible.
-
Guy Zana authored
-
Guy Zana authored
the rwlock stub were written before our mutex were recursive, now we just don't need any extra recursive layer in rwlock
-
Guy Zana authored
-
Guy Zana authored
move have more work mark before the handler, during the handler execution another thread may signal the netisr worker thread, avoids a race.
-
Guy Zana authored
-
Guy Zana authored
-
Guy Zana authored
SOCK_RAW should be used with sosend() and not sosend_dgram(), same for soreceive_dgram()
-
Guy Zana authored
-
Guy Zana authored
The bufring was never used by any driver in OSv so it's not useful
-
Nadav Har'El authored
tst-leak.so now enables leak detection, runs a few things of interest, and disables leak detection. So "osv leak show" after running this test will show any leaks. I'm using this to confirm fixing the leaks I'm now trying to fix.
-
Avi Kivity authored
We want to reschedule if we woke a local thread, since it may have higher priority than us. However commit 31572c85 broke this by changing the preemption counter. Fix by adjusting the check to take this into account. Noted by Nadav.
-
Avi Kivity authored
Saves ~17MB.
-
Nadav Har'El authored
-
Avi Kivity authored
-
Avi Kivity authored
handle_incoming_wakeups() may not be called from preemptible context, since it manipulates per-cpu variables. Fix by eliminating these calls. In one call site, the call is removed, since it will be called immediately afterwards with interrupts disabled. In the other call site, push the call into an existing irq disabled region. Fixes livelocks where a thread is placed into an incoming_wakeups queue but has the wrong bit set in incoming_wakeups_mask.
-
Avi Kivity authored
-
Avi Kivity authored
Since wake() manipulates per-cpu variables, we need to disable preemption so the cpu pointers aren't invalidated by migration.
-
Avi Kivity authored
The recording mechanism aligns trace messages; replay needs to follow suit.
-
Avi Kivity authored
-
Nadav Har'El authored
Without adding this check, if you change the command line with to run file.so which doesn't exist, it would start using random garbage in memory and fail in mysterious ways. Better just let the user know we can't open the specified program.
-
Nadav Har'El authored
-
Nadav Har'El authored
Added rudimentary support for leak detection. When memory::tracker_enabled is true, an alloc_tracker object (see alloctracker.{cc,hh}) object keeps track of still-living memory allocations and the call chain that led to each. Using a new command in gdb, "osv leak show", a developer can analyze the remaining allocations, with the aim of finding memory leaks (noticing that memory leaks often result in repeptitive allocations from the same call chain). This implementation is a good start (and already found 8 leaks in our code), but it's far from being perfect. It severely slows down the workload, the analysis in gdb is not yet friendly enough (requiring manual inspection to look for the more serious leaks), and the backtrace() implementation also appears to be fragile: In more than one occasion, we noticed a yet-unexplained crash when backtrace() unwinds the stack, calls dl_iterate_hphdr() which throws exception and unwinds the stack again. So this code will probably need more work in the future.
-
Nadav Har'El authored
Add support for ICANON mode a.k.a. "cooked" mode (see termios(3)), where the user's input only reaches the reader after a newline, and until then, the erase character case be used to edit the line. This makes it easier for non-perfect typist to use rhino ;-) Various line-discipline features such as word-erase, line kill, flow control and signals, aren't yet supported in this version. Note how the echo and the line discipline (editing) are now both handled in the console_poll() thread, while previously the echo was handled in the read() implementation (console_read()). This means we now have full read-ahead, i.e., the user can now type before read() starts - even during the OSv boot. This patch also removes the old debugging read() function, which doesn't do anything useful.
-
Avi Kivity authored
-
- Apr 15, 2013
-
-
Guy Zana authored
OSv stalls when using romfs on certain machines so revert back to using bootfs until romfs get fixed
-