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)

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:

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.

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.

Filesystem support

Add support for mounting in jails:

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).

Installation packaging and deployment

EdMaste/Projects (last edited 2012-02-15 19:38:42 by EdMaste)