Re: printk() problems? [2.0.34]

David Luyer (luyer@ucs.uwa.edu.au)
Tue, 09 Jun 1998 10:46:05 +0800


> I think you should try to comment out all printk() in interrupt handlers
> and see if the machine will continue to lockup.
>
> Andrea[s] Arcangeli

I put all the printk()'s in there because the machine was locking up.
Anyway, the printk() problem was actually a klogd problem (wasn't reading
the buffer as fast as it was filling) and I'm now starting to suspect my
Xircom card more than the software since it seems to process the last
interrupt perfectly fine, do an enable interrupts, then never recieve
another interrupt (while transmitting still works, tho). I'm about to
try and lock it up in Win95 before putting yet more debugging in.

Also, printk() does a cli() at the beginning and a restore_flags() at the end;
while it may not be SMP-safe, that sure seems interrupt-safe to me.

asmlinkage int printk(const char *fmt, ...)
{
va_list args;
int i;
char *msg, *p, *buf_end;
static char msg_level = -1;
long flags;

save_flags(flags);
cli();
[...]
restore_flags(flags);
wake_up_interruptible(&log_wait);
return i;
}

Am I missing something obvious here?

David.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu