- Feb 07, 2013
-
-
Avi Kivity authored
This makes it easy to configure a thread with various parameters. The first is the existing stack_info parameter.
-
Avi Kivity authored
The apic needs to be programmed on each cpu that is brought up.
-
Avi Kivity authored
We used cpu_arch::init_on_cpu() instead of the arch-indepdendent version.
-
Avi Kivity authored
-
Avi Kivity authored
Maintain the list of active timers per-cpu, instead of globally. This removes the need for locking (other than disabling preemption). The clock_event interface is awkward in that the callback is global, not per-cpu. This requires us to have a global dispatch object that then uses cpu::current() to pick up the current cpu and dispatch the event. We should probably make clock_event explicitly per-cpu in the future.
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
This ones handles the current working directory in relative pathnames, and supports the POSIX.1-2008 case where the resolved_path argument is passed a NULL and then allocated by realpath internally.
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Avi Kivity authored
Since timers are per-cpu constructs, we need to migrate them when a thread migrate. To do that, we need to keep a list of a thread's active timers.
-
Avi Kivity authored
If a timer is expired already, don't remove it from lists.
-
Avi Kivity authored
No functional changes - prepare for making timer lists cpu local.
-
Avi Kivity authored
Each cpu has its own event timer; we rely on this. Document the requirement.
-
Avi Kivity authored
-
Avi Kivity authored
Also remove other timers that expired simultaneously.
-
- Feb 06, 2013
-
-
Avi Kivity authored
remote wakeups
-
Avi Kivity authored
-
Avi Kivity authored
current_pthread was somehow not thread-local, so pthread_self() returned the last thread to initialize itself. The bug manifested itself with a jvm thread querying its own stack, finding another thread's stack instead, and reaching the conclusion that it was in a stack overflow, and throwing an exception. Fix by making current_pthread thread local.
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Dor Laor authored
-
Avi Kivity authored
Each cpu has a queue (actually an array of queues, one for each "waking" cpu) of threads that are to be woken. A thread can be queued locklessly, so a runqueue lock is not needed. As we don't IPI yet, the queues are polled at strategic points.
-
Avi Kivity authored
-
Avi Kivity authored
While generally useful, it helps now to avoid wakeups to threads that are no longer there.
-
Avi Kivity authored
-
- Feb 05, 2013
-
-
Dor Laor authored
* 'master' of github.com:cloudius-systems/osv: stop adding libm.so.6 from glibc to bootfs warn when we can't load ELF libraries from DT_NEEDED warn on unknown ELF section types fix up library pathnames in the ELF loader fix sem_wait add a __fprintf_chk implementation add popen/pclose stubs
-
Dor Laor authored
-
Christoph Hellwig authored
Now that we actually look for DT_NEEDED libraries in the right place we fail loading it because we don't support STT_GNU_IFUNC symbols. But by now we already have a feature complete libm implementation in our tree so we don't actually need it anymore.
-
Christoph Hellwig authored
-
Christoph Hellwig authored
-
Christoph Hellwig authored
We want to look for /usr/lib/libfoo instead of /usr/liblibfoo
-
Christoph Hellwig authored
We need to use a spinlock to protect the semaphore waiting list as the wakeups can deadlock otherwise. Also make sure to only wait when we actually have to. Found during python bringup.
-