Serial console and polled I/O
When using a serial console, kernel printfs end up calling into a polled I/O path, potentially stalling kernel operations until the output is finished being transmitted. This is a particular problem at 9600 baud. (Examples of kernel printfs include link state messages, aac(4) COMMAND TIMEOUT messages, etc.) Polled I/O is probably still needed for the debugger, panic handling, etc.
Printf() ends up invoking cnputc(), which calls siocnputc() in the default 6.x serial console case and uart_cnputc() in the default 8.x serial console case. These functions spin while waiting for the tx register to be ready.
(reqst00227383)
- Apparently jhb@ has been discussing approaches here
- Attilio has done related work in the past, related to messages output during boot
printf tprintf uprintf log sysctl kern.consmsgbuf_size sysctl kern.msgbuf sysctl kern.msgbuf_clear sysctl security.bsd.unprivileged_read_msgbuf /dev/klog
Netdump
See Netdump for details. Patch is being prepared for commit to head.
Debugging
Debugging data for binaries and libraries
Create .symbols files for libraries and binaries, referenced via with gnu-debuglink. Patch is under discussion on -hackers from Mark Johnston.
Kernel core enhancements
Be able to extract the following from a core:
- hostname
- hash (sha-1 etc.) of kern.bootfile to positively identify the kernel binary that was running
- uptime
- current time of day
reqst00277326 [debug] Include kernel ident data at panic time reqst00193848 Add softclock backlog text to sw watchdog panic to aid in debugging
Serial debugger use with conserver
A remote serial debugging session can be initiated by using "kgdb -r" if a local serial port is available and connected to the device under test. Extend this to communicate with a device under test connected via the Conserver port.
Memory search
Add a command to gdb to allow searching memory for a value or byte string.
Valgrind
kgdb 7.2
gdb 7.2
Jail enhancements
Per-jail release overrides
Allow release-related variables to be set on a jail-wide basis.
- uname
- kern.osreldate
- bz and kib interested
Filesystem support
Add support for mounting in jails:
- devfs
- nullfs
- unionfs
Comprehensive time accounting
Completely avoid statclock vs hardclock aliasing and other issues by switching from sampled CPU time accounting to comprehensive (i.e., by recording a CPU counter on each context switch).
- phk
- jhb