Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-08-16 | Remove useless comment | Richard Braun | |
2019-08-16 | Replace some barrier()s with local atomic fences | Richard Braun | |
2019-05-19 | kern/sref: rework | Richard Braun | |
Remove CPU registration, optimize manager weak-ups, replace the global review queue with local review queues. CPU registration and the global review queue were motivated by low power consumption, but considering how the kernel is evolving, this was likely overengineering. | |||
2019-01-17 | Replace "awaken" with "awoken" | Richard Braun | |
See https://www.merriam-webster.com/words-at-play/usage-awaken-awoken-awakened. | |||
2018-11-17 | kern/thread: fix suspend on dead threads | Richard Braun | |
2018-11-05 | kern/thread: implement suspend/resume operations | Agustina Arzille | |
2018-08-12 | kern/thread: make thread-specific data optional | Richard Braun | |
2018-07-30 | Rework assertive functions | Richard Braun | |
Instead of combining assertions and checking into single functions, rework those into pure checking functions usable with assert(). Those functions were introduced because of warnings about unused functions/variables caused by an earlier implementation of assert(). | |||
2018-07-25 | kern/{fmt,shell}: update from upstream | Richard Braun | |
The shell module has been "objectified" and now supports multiple instances with shareable command sets. | |||
2018-06-25 | kern/perfmon: new module | Richard Braun | |
2018-06-25 | kern/thread: new thread_cpu function | Richard Braun | |
2018-06-25 | kern/thread: slightly rework thread state handling | Richard Braun | |
2018-05-14 | kern/thread: make thread_create slightly more convenient | Richard Braun | |
Don't require the caller to pass a pointer to the newly created thread. | |||
2018-02-24 | kern/{cbuf,fmt,hash,hlist,list,plist,rdxtree,shell,slist}: update from upstream | Richard Braun | |
Note that this commit changes the order of some list operations without triggering warnings. | |||
2018-02-24 | New errno.h standard header | Richard Braun | |
Use standard errno codes. This change also adds strerror to string.h. | |||
2018-02-22 | kern/spinlock: add ownership tracking as a debugging feature | Richard Braun | |
2018-02-20 | kern/llsync: remove module | Richard Braun | |
2018-02-20 | kern/rcu: new module | Richard Braun | |
This module implements preemptible RCU. | |||
2018-02-20 | kern/thread: remove sref registration calls | Richard Braun | |
The upcoming RCU implementation requires scalable reference counters to be usable in interrupt context, and in particular, in the periodic tick handler, when an idle thread may be running, and the local processor is not registered. | |||
2018-02-12 | kern/thread: minor changes | Richard Braun | |
Make thread_runq_schedule() slightly more resilient by setting the next thread pointer to NULL after the context switch. | |||
2018-01-30 | Fix condition variable broadcasting | Richard Braun | |
The broadcast implementation is based on an invalid assumption, namely that the first mutex_unlock call following condition_wait would be invoked on the same mutex. Fixing this while guarding against the thundering herd effect requires augmenting mutexes with a pointer to the condition variable they may be associated with. Since the size of mutexes is currently more important than broadcast scalability, the implementation is simplified into one which suffers from the thundering herd effect. | |||
2018-01-29 | Fix undefined behavior in conditional macro replacement | Richard Braun | |
See C11 6.10.3 ยง11 : If there are sequences of preprocessing tokens within the list of arguments that would otherwise act as preprocessing directives, the behavior is undefined. | |||
2018-01-10 | kern/thread: minor name changes | Richard Braun | |
Call the various thread-local nesting counters "levels". | |||
2018-01-07 | kern/thread: fix initialization race | Richard Braun | |
2017-12-03 | Revert "Make assert have no side effects" | Richard Braun | |
This reverts commit d18d0e85596f90e0bd597b33d58209d0b3973c95. | |||
2017-09-21 | Merge branch 'xbuild' | Richard Braun | |
2017-09-21 | New build system | Richard Braun | |
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations. | |||
2017-09-20 | kern/thread: restore comment about thread destruction | Richard Braun | |
2017-09-07 | Use accessors when referring to global kernel objects | Richard Braun | |
The kernel_map/kernel_pmap/kernel_task/etc... names were reused as they were in the Mach source code. They've been a (mostly harmless) long-standing violation of the coding rules. | |||
2017-09-07 | kern/thread: fix thread stack guard selection | Richard Braun | |
2017-09-06 | Use new thread_check_intr_context function consistently | Richard Braun | |
2017-09-05 | x86/{pmap,tcb}: don't use tsd for the update oplist | Richard Braun | |
2017-09-02 | Rework the build system | Richard Braun | |
2017-09-02 | kern/thread: new preemption control macros | Richard Braun | |
These new macros take care of disabling/restoring interrupts in the appropriate order. | |||
2017-09-02 | Make assert have no side effects | Richard Braun | |
This makes sure symbols referenced by assert uses may not be generated if unused. The recently introduced __unused macro is used to suppress compiler warnings resulting from this change. | |||
2017-08-31 | kern/thread: fix atomic accesses to a thread's run queue | Richard Braun | |
2017-08-27 | Add TODO entries | Richard Braun | |
2017-08-27 | kern/thread: add the thread_delay function | Richard Braun | |
2017-08-27 | kern/thread: implement timed sleeps | Richard Braun | |
2017-08-27 | kern/clock: new module | Richard Braun | |
2017-08-25 | kern/thread: add a stack debugging assertion on scheduling | Richard Braun | |
2017-08-23 | kern/thread: really fix termination | Richard Braun | |
Change the semantics of thread_join so that it not only waits for thread_exit but also for the last reference to be dropped. | |||
2017-08-21 | kern/thread: fix and improve termination | Richard Braun | |
2017-07-30 | kern/thread: replace the reaper with deferred works | Richard Braun | |
2017-07-21 | Merge branch 'adaptive_spinning' | Richard Braun | |
2017-07-21 | kern/mutex: new adaptive spinning mutex implementation | Agustina Arzille | |
2017-07-13 | kern/thread: fix thread stack guard support | Richard Braun | |
Since the introduction of the kernel VM object, page referencing has become more strict, preventing the thread stack guard code to function. Work around the issue by keeping the physical pages at the stack boundaries. | |||
2017-07-13 | Switch to initialization operations | Richard Braun | |
2017-06-25 | Use the C11 alignas and noreturn macros | Richard Braun | |
2017-06-25 | Remove the param module | Richard Braun | |
Move the page properties into the new x86/page module, and the virtual memory layout macros into the x86/pmap module. |