Look ma, I found a kernel bug!

Oh great. I have experienced random hangups of my Laptop recently, and I had absolutely no clue what caused them, even after a reboot and looking into the logfiles. Today, after another hangup/crash I think I found the problem (but not the solution):

May 16 00:08:35 localhost kernel: NETDEV WATCHDOG: eth0: transmit timed out
May 16 00:08:35 localhost kernel: sky2 eth0: tx timeout
May 16 00:08:35 localhost kernel: x45 [sky2]
May 16 00:08:35 localhost kernel:  [pg0+943960755/1069376512] sky2_poll+0x469/0x548 [sky2]
May 16 00:08:35 localhost kernel:  [pg0+953407031/1069376512] nv_kern_isr+0x31/0x63 [nvidia]
May 16 00:08:35 localhost kernel:  [net_rx_action+82/199] net_rx_action+0x52/0xc7
May 16 00:08:35 localhost kernel:  [__do_softirq+52/125] __do_softirq+0x34/0x7d
May 16 00:08:35 localhost kernel:  [do_softirq+34/38] do_softirq+0x22/0x26
May 16 00:08:35 localhost kernel:  [irq_exit+41/52] irq_exit+0x29/0x34
May 16 00:44:32 localhost syslogd 1.4.1#17.2: restart.
May 16 00:44:32 localhost kernel: klogd 1.4.1#17.2, log source = /proc/kmsg started.

Note that I could do absolutely nothing on the laptop anymore, no moving the mouse, no typing on the keyboard, no switching from X11 into a text console, no CTRL+ALT+BACKSPACE to kill X11, no CTRL+ALT+DELETE to reboot, nothing.

I think sky2 (network driver) or the NVIDIA driver may be the culprit (or a combination of both). After some searching it seems other people have/had similar problems, but not quite the same...

I guess I'll have to file a bugreport somewhere...

The Underhanded C Contest 2006

The Underhanded C Contest 2006 has started.

We hereby announce our second annual contest to write innocent-looking C code implementing malicious behavior. In many ways this is the exact opposite of the Obfuscated C Code Contest: in this contest you must write code that is as readable, clear, innocent and straightforward as possible, and yet it must fail to perform at its apparent function. To be more specific, it should do something subtly evil.

This year's challenge: ridiculous performance degradation

For this year's challenge, imagine you are an application developer for an OS vendor. You must write portable C code that will inexplicably taaaaaake a looooooong tiiiiime when compiled and run on a competitor's OS. The program is supposed to read a set of words on stdin, and print a frequency count of unique words in lexicographical order. Essentially the output should match the command line

tr "[:space:]" "[\n*]" | sort | awk 'length($0)>0' | uniq -c

Try to write a simple C program that does this, but produces as wide a disparity as possible between its runtime on one platform and runtime on another (your "competitor.")

This sounds like a lot of fun ;-) I have participated last year and will most probably do so this year...

Deadline: July 4th, 2006

Syndicate content