summaryrefslogtreecommitdiff
path: root/kern
AgeCommit message (Collapse)Author
2018-05-03perfmon: register a pmu_driver in place of pmu_ops.Remy Noel
Replace pmu_get_width with a property. Prepare the default overfow handling.
2018-04-29Minor changesRichard Braun
2018-04-21perfmon: fix overflo test only working on 64 bit counters.Remy Noel
2018-04-21perfmon: various cosmetics.Remy Noel
2018-04-21perfmon: Test overflow in cpu test.Remy Noel
Adds perfmon_event_write as a test-only API.
2018-04-21perfmon: Add overflow handling.Remy Noel
Only architectural version 1 handled so far.
2018-04-21kern/perfmon: add perfmon_cpu_pmc get/setters.Remy Noel
2018-04-21kern/perfmon: Handle overflow on sync.Remy Noel
Add new perfmon driver method "get_pmc_width".
2018-04-21kern/perfmon.c: Add pmc id to index map.Remy Noel
Will be used to handle calls from the pmu implementations.
2018-04-21Merge branch 'master' into perfmonRemy Noel
2018-04-19kern/atomic: remove shortcutsRichard Braun
These shortcuts just don't bring enough value.
2018-04-18Merge branch 'master' into perfmonRemy Noel
2018-04-14kern/rcu: make the window check interval configurableRichard Braun
2018-04-14kern/atomic: fix consume memory orderRichard Braun
The consume memory order is known to be problematic in the C11 specification, and as a result, most compilers alias it to acquire. Based on the assumption that the kernel doesn't run on architectures with an Alpha-like memory model, the consume memory order was aliased to relaxed, letting the CPU identify data dependencies. But there may also be issues at compile time, making this hack is dangerous. As a result, the actual consume memory order as implemented by the compiler is now used to define the kernel consume memory order. See https://lwn.net/Articles/588300/.
2018-04-14Rename variables in function-like macrosRichard Braun
2018-04-14Fix left-over reserved identifiersRichard Braun
For some reason, commit be5b9d6ab9f7e7a81c367e4bb0823ba11f85940f didn't take care of all reserved identifiers.
2018-04-14Merge branch 'master' into perfmonRemy Noel
2018-04-13kern/xcall: upgrade spurious interrupts to errorsRichard Braun
2018-04-01Merge branch 'bulletin'Richard Braun
2018-04-01kern/bulletin: new moduleRichard Braun
2018-04-01kern/rcu: add assertion in rcu_deferRichard Braun
2018-04-01kern/{hash,list}: update from upstreamRichard Braun
This commit fixes undefined behavior in hash_str, and RCU linked list walking.
2018-03-13Merge branch 'master' into perfmonRemy Noel
2018-03-12perfmon: Coding style & cosmetic fixesRemy Noel
2018-03-03kern/spinlock: minor comment fixRichard Braun
2018-03-02kern/spinlock: fix and optimizeRichard Braun
Making the unlock operation block allows tricky deadlocks to occur in case a thread is interrupted right before announcing itself as the first waiter in the queue. Since locking is expected to block, the spinlock implementation is reworked to move the hand-off performed by the unlock operation into the lock operation. As a side effect, the common case of a single waiter is also optimized.
2018-03-02kern/spinlock: fix direct use of CONFIG_SPINLOCK_DEBUGRichard Braun
2018-02-25Merge branch 'master' into perfmonRemy Noel
2018-02-25Merge branch 'master' into perfmonRemy Noel
2018-02-24kern/kmem: new KMEM_DEBUG optionRichard Braun
2018-02-24kern/log2: fix namingRichard Braun
2018-02-24Update license note about modules from librbraunRichard Braun
2018-02-24kern/{cbuf,fmt,hash,hlist,list,plist,rdxtree,shell,slist}: update from upstreamRichard Braun
Note that this commit changes the order of some list operations without triggering warnings.
2018-02-24New ENOENT error codeRichard Braun
2018-02-24New errno.h standard headerRichard Braun
Use standard errno codes. This change also adds strerror to string.h.
2018-02-24Don't use reserved identifiersRichard Braun
2018-02-22perfmon: split pmu into amd and intel architectures.Remy Noel
pmu_driver handling is now perfmon's responsibility.
2018-02-22kern/spinlock: add ownership tracking as a debugging featureRichard Braun
2018-02-21kern/rcu: comment the loop in rcu_cpu_data_check_gp_stateRichard Braun
2018-02-20kern/clock: include stdalign.hRichard Braun
2018-02-20kern/rcu: fix !SMP buildsRichard Braun
2018-02-20kern/llsync: remove moduleRichard Braun
2018-02-20Rework the initialization operations of some kernel modulesRichard 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-20Merge branch 'preemptible_rcu'Richard Braun
2018-02-20kern/rcu: new moduleRichard Braun
This module implements preemptible RCU.
2018-02-20kern/thread: remove sref registration callsRichard 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-20kern/timer: coding style fixRichard Braun
2018-02-12kern/xcall: optimize and improve documentationRichard 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-12Add TODO entriesRichard Braun
2018-02-12kern/xcall: declare the xcall_setup init operationRichard Braun