summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-11Re-enable LINUX_COMPAT in GENERIC for easier testabilitylockdoc-10.99.5-0.1Merlin Scholz
2023-07-10Remove function we backportet from NetBSD 10 earlierMerlin Scholz
2023-07-10Add file, line, func logging for memory allocs/freesMerlin Scholz
2023-07-10Change asm logging to specify line -1 so that FAIL* doesn't replace it with NULLMerlin Scholz
2023-07-10Fix incorrect IRQs for serial ports in the kernel configMerlin Scholz
2023-07-10Fix GENERIC build and add proper bootloader configMerlin Scholz
2023-07-10Fix wrong logged function name for asm calls and pointer sizeMerlin Scholz
2023-07-10Add tracing for interrupts/exceptionsMerlin Scholz
2023-07-10Code cleanup to prepare for proper interrupt handlingMerlin Scholz
2023-07-10Fix kmutexes in the same way we fixed rwlocks in the last commitMerlin Scholz
2023-07-10Fix rwlock_exit logging order bugMerlin Scholz
2023-07-10Add IRQ tracingMerlin Scholz
2023-07-10Implement missing Mutex and RW loggingMerlin Scholz
2023-07-10Implement logging for rwlock_enter() and rwlock_exit(), move from do-while ↵Merlin Scholz
macros to dedicated functions to allow for return values.
2023-07-10Implement file and line logging for mutex locksMerlin Scholz
This commit implements proper file and line logging as a proof of concept for mutex locks. The previous versions only logged the location inside the mutex_enter function, which was useless. To get correct filenames, calls to mutex_enter (which usually go directly to ASM) are replaced through the macro defined in lockdoc.h. This logs the according information and passes on the function call to the old ASM code. Furthermore, some other things like apm.c or patch.c had to be modified, to keep the code compilable, even with this new replacement macro. Also, the old logging methods in lockdebug.h have been removed, since we can not get the proper file and line by going through there. This commit only implements these changes for mutex_enter, mutex_spin_enter, mutex_exit and mutex_spin_exit, and serves as a template for changes in the other lock functions and types.
2023-07-10Implement sending of LOCKDOC experiment information on startupMerlin Scholz
2023-07-10Fix broken wait-methods in lockdoc-testMerlin Scholz
2023-07-10Implement stubbed out lockdoc functions; update lockdoc_event.hMerlin Scholz
2023-07-10Remove tsleep timeout from lockdoc-test to adapt to the recent changes in ↵Merlin Scholz
the FreeBSD port
2023-07-10Ignore Carrier Detect on tty when runngin under LOCKDOC kernel to curcumvent ↵Merlin Scholz
Bochs's interesting implementation
2023-07-10Implement lockdoc_test kernel module; hook run-bench.sh in/etc/rc; add ↵Merlin Scholz
network drivers to LOCKDOC config
2023-07-10Decouple LOCKDEBUG and LOCKDOC kernel flagsMerlin Scholz
2023-07-10First working lock logsMerlin Scholz
2023-07-10Undo previous log_lock functions only used for testingMerlin Scholz
2023-07-10Hook into lockdebug.hMerlin Scholz
2023-07-10Separate LOCKDEBUG and LOCKDOG kernel flagsMerlin Scholz
2023-07-10First proper lockdoc hooksMerlin Scholz
2023-07-10Fix memory padding by replacing char with enum in log_actionMerlin Scholz
2023-07-10Continue implementationMerlin Scholz
2023-07-10Port over code skeletonMerlin Scholz
2023-07-10Add sterilized LOCKDOC kernel configMerlin Scholz
2023-07-07sys/param.h: Welcome to 10.99.5, courtesy of heartbeat(9).riastradh
2023-07-07heartbeat(9): Fix grammaro in man page.riastradh
2023-07-07Replace main(9) reference with code locationwiz
2023-07-07Sort SEE ALSOwiz
2023-07-07amd64/ALL: Turn on heartbeat checks.riastradh
2023-07-07heartbeat(9): New mechanism to check progress of kernel.riastradh
This uses hard interrupts to check progress of low-priority soft interrupts, and one CPU to check progress of another CPU. If no progress has been made after a configurable number of seconds (kern.heartbeat.max_period, default 15), then the system panics -- preferably on the CPU that is stuck so we get a stack trace in dmesg of where it was stuck, but if the stuckness was detected by another CPU and the stuck CPU doesn't acknowledge the request to panic within one second, the detecting CPU panics instead. This doesn't supplant hardware watchdog timers. It is possible for hard interrupts to be stuck on all CPUs for some reason too; in that case heartbeat(9) has no opportunity to complete. Downside: heartbeat(9) relies on hardclock to run at a reasonably consistent rate, which might cause trouble for the glorious tickless future. However, it could be adapted to take a parameter for an approximate number of units that have elapsed since the last call on the current CPU, rather than treating that as a constant 1. XXX kernel revbump -- changes struct cpu_info layout
2023-07-07crashme(9): New crash methods with raised ipl or kpreempt disabled.riastradh
2023-07-07doc/HACKS: Document PR port-alpha/57511rin
2023-07-07PR port-alpha/57511 Temporally disable secure PLT for alpharin
until support is added to ld.elf_so(1).
2023-07-07Fix locking error when setting the multicast filter to accept allmartin
multicast frames, pointed out by Lwazi Dube.
2023-07-07virtio(4): Fix byte order of DMA data for armeb in the same manner asrin
aarch64eb. Fix comments to explain what is going on for {arm,aarch64}eb on QEMU. This is not due to QEMU bugs; it correctly configures everything for little-endian environment, and we forcibly change byte order only for CPU cores during kernel bootstrap.
2023-07-07Remove extra whitespace inserted during merge. No binary changes.rin
2023-07-07Remove duplicate OpenBSD RCSID.rin
2023-07-07lint: only skip 'unused' warnings after errors, not other warningsrillig
Previously, in -w mode, any warning suppressed further 'unused' warnings, even though there was no need to do that. This can be seen in the test gcc_attribute_var.c, where only the last unused variable from a function was marked as unused, the others slipped through. Fixed by counting the errors and the warnings separately and only combining them if actually desired.
2023-07-07tprof(8): Add support for Skylake-X and Cascade Lake.msaitoh
2023-07-07Modify comment. No functional change.msaitoh
2023-07-07select(2), poll(2): Clarify return values.riastradh
2023-07-07tests/lint: test all combinations of {func,obj}_{decl,def}rillig
For a non-static function definition that is not declared in a header, lint doesn't currently warn. The previous test didn't notice this.
2023-07-07tests/lint: merge duplicate tests for C11 _Atomicrillig