Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit fixes undefined behavior in hash_str, and RCU linked list
walking.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
* 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
|
|
|
|
|
|
|
|
Note that this commit changes the order of some list operations without
triggering warnings.
|
|
|
|
|
|
Use standard errno codes. This change also adds strerror to string.h.
|
|
|
|
|
|
pmu_driver handling is now perfmon's responsibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This module implements preemptible RCU.
|
|
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.
|
|
|
|
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.
|
|
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.
|