summaryrefslogtreecommitdiff
path: root/kern
AgeCommit message (Collapse)Author
2019-08-19kern/thread: fix typoHEADmasterRichard Braun
2019-08-16kern/thread: rename thread_boot_barrierRichard Braun
2019-08-16kern/latomic: implement fences as atomic signal fencesRichard Braun
2019-07-11kern/types: add TODO entry about cpu_flags_tRichard Braun
2019-06-08kern/sref: remove left-over macroRichard Braun
2019-06-08kern/log: add printf-specific warnings to log_printf_fn_tRichard Braun
2019-06-08kern/sref: track epoch durationsRichard Braun
2019-06-05kern/sref: reduce minimum epoch durationRichard Braun
2019-05-29kern/sref: schedule noref works with a high priorityRichard Braun
2019-05-29kern/sref: fix when to process review queuesRichard Braun
2019-05-28kern/sref: add optional debuggingRichard Braun
2019-05-26kern/log: fix bulletin publicationRichard Braun
2019-05-22Add a log print function type for information reportingRichard Braun
This type allows the use of either printf-based or log-based functions when reporting information.
2019-05-19kern/{log,shell}: use a bulletin for initial log dump notificationRichard Braun
2019-05-19kern/sref: reworkRichard 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-05-05kern/log: fix log writesRichard Braun
Erase old messages when the message buffer gets full.
2019-05-05kern/timer: fix high priority work scheduling flagsRichard Braun
2019-04-24kern/log: rework with a message bufferRichard Braun
2019-04-24kern/mbuf: new moduleRichard Braun
2019-04-23New EMSGSIZE error codeRichard Braun
2019-01-25kern/log: fix overrun handlingRichard Braun
2019-01-17Replace "awaken" with "awoken"Richard Braun
See https://www.merriam-webster.com/words-at-play/usage-awaken-awoken-awakened.
2019-01-17kern/sleepq: fix wake-up chainingRichard Braun
Thanks to Simon Venken for reporting this issue.
2019-01-10kern/semaphore: reworkRichard Braun
The previous implementation, which uses a combination of fast and slow paths around accessing an atomic integer, suffers from a bug triggered when two or more posts are performed back-to-back, without a waiter decrementing the semaphore value in between. The first post would be the only one signalling a waiter. In addition, having a fast path that expects the absence of waiters probably doesn't make sense, as semaphores are expected to be used for signalling threads. As a result, it was decided to remove the fast path altogether, and protect the semaphore value with sleep queues. Finally, as part of the rework, semaphores now have a user-defined maximum value, in order to make the implementation of, e.g. wrappers for binary semaphores, convenient. Thanks to Simon Venken for reporting the bug.
2019-01-10kern/sleepq: update acquire/lend documentationRichard Braun
2019-01-10New EOVERFLOW error codeRichard Braun
2019-01-07kern/cbuf: update from upstreamRichard Braun
2018-11-21kern/turnstile: fix assertionRichard Braun
Commit 5f202c9f744a5d9c5b751038edd2379b3d244227 reworked the way some assertions were performed, and introduced a mistake in an assertion in the turnstile module.
2018-11-17kern/thread: fix suspend on dead threadsRichard Braun
2018-11-17kern/turnstile: improve commentsRichard Braun
2018-11-12kern/rdxtree: fix warning when assertions are disabledRichard Braun
2018-11-05kern/thread: implement suspend/resume operationsAgustina Arzille
2018-08-12kern/thread: make thread-specific data optionalRichard Braun
2018-08-12kern/mutex/mutex_plain: fix macro namesRichard Braun
2018-08-12kern/rcu: explain the need for separate work/reader window flipsRichard Braun
2018-07-31kern/rcu: add TODO entryRichard Braun
2018-07-30kern/symbol: work around clang aggressive optimization behaviorRichard Braun
2018-07-30kern/log: minor changeRichard Braun
Insignificant coding style fix.
2018-07-30Rework assertive functionsRichard 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-25kern/{fmt,shell}: update from upstreamRichard Braun
The shell module has been "objectified" and now supports multiple instances with shareable command sets.
2018-07-10kern/sleepq: make disabling interrupts optionalRichard Braun
Commit d2a89f7f6e976d022527c2a5a1c75268aab8cd49 changed sleep queues to allow semaphores to be signalled from interrupt handlers, but this implied disabling interrupts for all synchronization objects, and most of them do not require interrupts to be disabled. The sleep queue interface is augmented with interrupt-related versions.
2018-07-10kern/panic: remove initialization operationRichard Braun
Maintaining correct dependencies for the panic function is too complicated. It may be used very early, but would depend on the console, which is normally available quite late during initialization. Instead, the behavior of panic is now "best effort", i.e. if called at a time where it works, good, otherwise, the behavior is undefined, but should result in a freeze or a reset most of the time.
2018-07-08kern/latomic: fix circular inclusionsRichard Braun
2018-07-07kern/thread: add thread name accessorRichard Braun
2018-07-07x86: refactor interrupt/exception handlingRichard Braun
This commit merges the trap module into the cpu module in order to solve interface problems caused by the degree to which those two modules are actually coupled, i.e. it just makes a lot more sense to not separate them at all. The cpu module is also internally reworked with improved object and method definitions, that clarify the double fault handling code, among other things.
2018-06-26Merge branch 'symtab'Richard Braun
2018-06-26x86/strace: rework to use the embedded symbol tableRichard Braun
2018-06-26Add support for an embedded symbol tableRichard Braun
2018-06-26kern/macros: new __weak macroRichard Braun
2018-06-26kern/perfmon: fix PMC ID allocation descriptionRichard Braun