Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-03-02 | kern/spinlock: fix direct use of CONFIG_SPINLOCK_DEBUG | Richard Braun | |
2018-02-24 | kern/kmem: new KMEM_DEBUG option | Richard Braun | |
2018-02-24 | kern/log2: fix naming | Richard Braun | |
2018-02-24 | Update license note about modules from librbraun | Richard Braun | |
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 ENOENT error code | Richard Braun | |
2018-02-24 | New errno.h standard header | Richard Braun | |
Use standard errno codes. This change also adds strerror to string.h. | |||
2018-02-24 | Don't use reserved identifiers | Richard Braun | |
2018-02-22 | kern/spinlock: add ownership tracking as a debugging feature | Richard Braun | |
2018-02-21 | kern/rcu: comment the loop in rcu_cpu_data_check_gp_state | Richard Braun | |
2018-02-20 | kern/clock: include stdalign.h | Richard Braun | |
2018-02-20 | kern/rcu: fix !SMP builds | Richard Braun | |
2018-02-20 | kern/llsync: remove module | Richard Braun | |
2018-02-20 | Rework the initialization operations of some kernel modules | Richard Braun | |
In order to avoid workarounds that check whether a module is ready or not, break the initialization of some core modules into a bootstrap step for basic BSP initialization, and a setup step that completes initialization. Most users only need the bootstrap operation as a dependency, especially since scheduling isn't enabled yet. | |||
2018-02-20 | Merge branch 'preemptible_rcu' | 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-20 | kern/timer: coding style fix | Richard Braun | |
2018-02-12 | kern/xcall: optimize and improve documentation | Richard Braun | |
Don't uselessly align to the CPU cache line size. Remove the useless array of preallocated cross-calls, and allocate from the caller stack instead. Since that array was the only object protected by disabling preemption, leave preemption enabled accordingly. Document locking keys, and describe memory ordering guarantees and enforcing. Add TODO entry about asynchronous cross-call support. | |||
2018-02-12 | Add TODO entries | Richard Braun | |
2018-02-12 | kern/xcall: declare the xcall_setup init operation | Richard Braun | |
2018-02-12 | kern/sref: declare the sref_setup init operation | Richard Braun | |
2018-02-12 | kern/percpu: add TODO entry | Richard Braun | |
2018-02-12 | kern/atomic: new atomic_fence_acq_rel macro | Richard Braun | |
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-02-07 | kern/sref: allow custom initial values | Richard Braun | |
2018-02-07 | kern/sref: allow usage from interrupt context | Richard Braun | |
2018-02-07 | kern/syscnt: new syscnt_set method | Richard Braun | |
2018-02-07 | kern/work: improve description of work_schedule | Richard Braun | |
2018-02-07 | kern/sleepq: make sleepq_broadcast real-time friendly | Richard Braun | |
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-24 | kern/atomic: add thread fences | Agustina Arzille | |
2018-01-16 | Clean up init op dependencies between syscnt and mutex | Richard Braun | |
2018-01-16 | kern/percpu: improve initop descriptions and fix dependencies | Richard Braun | |
2018-01-16 | kern/percpu: use ARRAY_SIZE in percpu_area | Richard Braun | |
2018-01-15 | kern/sref: document locking keys | Richard Braun | |
2018-01-12 | kern/sref: relax memory ordering on weak reference operations | Richard Braun | |
2018-01-12 | kern/macros: minor comment update | Richard Braun | |
2018-01-12 | kern/fmt: remove useless assignment | Richard Braun | |
2018-01-12 | kern/rtmutex: add comments | Richard Braun | |
2018-01-12 | kern/macros: remove left-over debugging code | Richard Braun | |
2018-01-10 | Merge branch 'sref_rework' | Richard Braun | |
2018-01-10 | kern/sref: minor style updates | Richard Braun | |
2018-01-10 | kern/sref: flip queues on epoch end | Richard Braun | |
Make epoch management slightly faster by replacing the "cascading" of queue0 into queue1 with queue flipping. | |||
2018-01-10 | kern/sref: optimize cache flushing | Richard Braun | |
Track valid deltas in a list instead of walking the entire hash table. | |||
2018-01-10 | kern/sref: use an slist for review queues | Richard Braun | |
2018-01-10 | kern/sref: rework delta cache synchronization | Richard Braun | |
Instead of using a mutex, disable preemption when accessing a delta cache, but reenable it when flushing a cache to keep latencies low. | |||
2018-01-10 | kern/thread: minor name changes | Richard Braun | |
Call the various thread-local nesting counters "levels". | |||
2018-01-08 | kern/xcall: handle spurious interrupts | Richard Braun | |