summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-08Makefile: normalize linker options passingRichard Braun
2018-04-01tools/build_configs.py: add bulletin testRichard Braun
2018-04-01doc/intro(9): list kern/bulletinRichard 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-21Fix builds with ClangRichard Braun
2018-03-20Makefile: force correct interpretation of / in assembly filesRichard Braun
2018-03-13Merge branch 'master' into perfmonRemy Noel
2018-03-12perfmon: Coding style & cosmetic fixesRemy Noel
2018-03-05tools/build_configs.py: fix filteringRichard Braun
2018-03-05tools/build_configs.py: style fixesRichard Braun
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-24Merge branch 'build_configs_python3'Richard Braun
2018-02-24tools/build_configs.py: add TODO entry, style fixesRichard Braun
2018-02-24tools/build_configs.py: fix -l optionRichard Braun
2018-02-24tools/build_configs.py: break python2 compatibilityRichard Braun
2018-02-24tools/build_configs.py: improve pep8 and pylint complianceGabriel Ganne
pep8 fixes: * remove whitespaces in dict declarations (E203 whitespace before ':') * two blank lines between functions (E302 expected 2 blank lines, found 1) * no spaces in set function arguments (E251 unexpected spaces around keyword / parameter equals) pylint fixes: * rename some variables to fix some redefined-outer-name warnings passing <- passing_filters_list blocking <- blocking_filters_list * explicit config file name (invalid-name warning) * fix many map/filter deprecated-lambda warnings [1] eg. for values as below, replace map/lambda by comprehension as follow # values = [1, 2, 3] # doubles = map(lambda x: x * 2, values) # doubles = [x * 2 for x in values] * un-name some unused variables with '_' to silence unused-variable eg. # for used_val_1, used_val_2 in my_list: # ... # for used_val_1, _ in my_list: [1] https://docs.quantifiedcode.com/python-anti-patterns/readability/using_map_or_filter_where_list_comprehension_is_possible.html
2018-02-24tools/build_configs.py: add python3 compatibilityGabriel Ganne
* dict.itervalues() and dict.iteritems() have been removed from python3 use dict.values(), and dict.items() instead. * both map and filter return values have changed to return a different type of structure in some cases. Enforce a list as return value. * prefer list.append() to l1 + l2 syntax * use the new print function syntax. add the print_function from future for python2 compatibility * use str.format() to read integers directly instead of concatenating their string conversion
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-24test/test_xcall: include assert.hRichard 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-24doc/intro(9): describe cbuf as a circular byte bufferRichard 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-21test/test_rcu_defer: don't bind threads to processorsRichard Braun
2018-02-21x86/pmap: add TODO entryRichard 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-20doc/style(9): remove any reference to llsyncRichard Braun
2018-02-20doc/intro(9): replace llsync with rcuRichard 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-12tools/build_configs.py: implement passing filtersRichard Braun
Reduce the complexity of generating exclusive boolean filters, in which only one option can be enabled, by supporting passing filters, filtering out configurations which do not match the filter.