summaryrefslogtreecommitdiff
path: root/kern
AgeCommit message (Collapse)Author
2018-05-04perfmon: fix broken global pmc counting.HEADperfmonRemy Noel
When a pmc was freed, the total amount of pmc was not decreased.
2018-05-03Merge branch 'master' into perfmonRemy Noel
2018-05-03perfmon: Remove useless accessors.Remy Noel
Also rename pmc oveflow handling function.
2018-05-03perfmon: add polling overflow implementation in perfmonRemy Noel
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-27kern/atomic: minor improvementRichard Braun
Remove the need from architecture-specific code to check alignment.
2018-04-26kern/atomic: minor reworkRichard Braun
Allow architectures to specifically override any of the overloaded functions. This removes the need from architecture-specific code to implement selection.
2018-04-24Fix missing kern/syscnt.h inclusionsRichard Braun
2018-04-24kern/atomic: fix alignment checkRichard Braun
2018-04-21kern/mutex/mutex_adaptive: fix atomic operation callsRichard Braun
2018-04-21kern/atomic: reworkRichard Braun
This commit restricts atomic operations to 32-bit and 64-bit (when supported). It keeps a similar source interface, but adds restrictions on the supported types. The main drive behind this change is portability, and in particular, upcoming local atomic operations.
2018-04-21Fix atomic operations argument typesRichard Braun
In preparation of the rework of atomic operations, all atomic function calls are fixed to use fully supported, compatible types. This means that atomic operations ar erestricted to 32-bit and 64-bit, and that value types must be strictly compatible with pointer types.
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