hvc_console change results in corrupt oops output
Anton Blanchard
anton at samba.org
Mon Jul 4 20:57:38 EST 2011
Hi,
We've been struggling to debug a hang on a large ppc64 box. Every time
we collect oops output there are pieces of the oops output missing and
in some cases entire CPUs are missing.
Eventually I realised the hvc_console driver is dropping characters.
The commit that caused this is:
commit 3feebbb5492e9e463467cefb633e23a3dfcec132
Author: Hendrik Brueckner <brueckner at linux.vnet.ibm.com>
Date: Mon Oct 13 23:12:50 2008 +0000
hvc_console: Fix loop if put_char() returns 0
If put_char() routine of a hvc console backend returns 0, then the
hvc console starts looping in the following scenarios:
1. hvc_console_print()
If put_char() returns 0 then the while loop may loop forever.
I have added the missing check for 0 to throw away console
messages.
The hypervisor gives us a busy return, so we could retry a number of
times instead of dropping it on the floor. We'd need to do it in the
hvc_console driver - the tty drivers share the same backend
functions so we can't hide it in the pseries put_chars function.
Anton
More information about the Linuxppc-dev
mailing list