- Feb 20, 2013
-
-
Christoph Hellwig authored
Imported from prex. Note that the test isn't wired up yet as we'll need more infrastructure changes to run it.
-
Christoph Hellwig authored
-
- Feb 19, 2013
-
-
Avi Kivity authored
Don't waste power during idle.
-
Avi Kivity authored
Wastes power.
-
Avi Kivity authored
Instead, spin for a bit looking for work to do, then enter a low-power state and wait for an interrupt to pull us out of it.
-
Avi Kivity authored
Also add an arch independent name for it.
-
Avi Kivity authored
-
Avi Kivity authored
The whole idea of namespaces is to prevent namespace pollution, using a "using namespace" in a header negates that. Remove.
-
Guy Zana authored
-
Avi Kivity authored
Noticed by Guy.
-
Avi Kivity authored
-
Avi Kivity authored
Add a detached thread class (with a private destructor, so it can only be allocated on the heap). The implementation uses a reaper thread to wait until the detached thread is dead, and then ->join() and delete it.
-
Avi Kivity authored
fixes loading unit tests with "main" as the entry point.
-
- Feb 18, 2013
-
-
Guy Zana authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
This is like printf() but prints straight to the console instead of going through the stdio library, the VFS and the device layer. To be used for debugging outout in the kernel.
-
- Feb 17, 2013
-
-
Dor Laor authored
* 'master' of github.com:cloudius-systems/osv: interrupt manager: use range-based for loop instead of manually looping sched: optimize scanning the incoming_wakeups array sched: add an atomic cpu_set type
-
Dor Laor authored
-
Dor Laor authored
-
Dor Laor authored
-
Dor Laor authored
-
Dor Laor authored
of the pci virtio config size to a function using the first.
-
Avi Kivity authored
-
Avi Kivity authored
Protect the array with a cpu_set (bit set -> corresponding queue non-empty). This means we need to scan one word, instead of nr_cpus (plus of course all the cpus for which an incoming is waiting).
-
Avi Kivity authored
Supporting up to 64 cpus for now.
-
Dor Laor authored
-
Avi Kivity authored
This fixes an issue where a symbol exists in multiple objects; when just one is loaded it is resolved to one of the modules, but after the second is loaded, it resolves to the second. To the program this appears as if the address or contents of a static variable has changed. In our case this was triggered by both statically and dynamically linking a library.
-
Avi Kivity authored
The glibc headers define those as macros, need to undefine before declaring as functions.
-
Avi Kivity authored
Found with mode=release.
-
Avi Kivity authored
Found with mode=release.
-
- Feb 14, 2013
-
-
Avi Kivity authored
-
Avi Kivity authored
Atomic thread state and related work.
-
Avi Kivity authored
If we failed the initial trylock, that does not mean the mutex is locked, as it could have been unlocked right before we grabbed the wait list lock. Retry with the wait list lock held, as the unlock path must grab it before unlocking.
-
Avi Kivity authored
-
Avi Kivity authored
Currently, we have an atomic _waiting state for a thread, and additional non-atomic _on_runqueue and _terminated states. This is problematic since a ->wake() racing with a ->stop_wait() can cause a thread to be simultaneously running and queued. Fix by using a single atomic variable for all theses states.
-
Avi Kivity authored
When we migrate a thread, remove its timers from the cpu-local timer list, and move them back when we complete migration.
-
Avi Kivity authored
A mutex will also call wait_until, which doesn't tolerate nesting.
-
- Feb 13, 2013