Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
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.
|
|
|
|
Add CONFIG_CC_EXE and CONFIG_64BITS to the small (default) set of options
to test since they are among the most important options a developer should
mechanically check when using the tool.
|
|
These shortcuts just don't bring enough value.
|
|
This makes reading the command line easier in the kernel log.
|
|
|
|
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/.
|
|
|
|
For some reason, commit be5b9d6ab9f7e7a81c367e4bb0823ba11f85940f didn't
take care of all reserved identifiers.
|
|
|
|
Make the lapic_ipi function interrupt-safe.
|
|
|
|
This change makes QEMU directly boot the kernel, using the -kernel option.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|