Re: [PATCH] s390/fault: use wake_up_klogd() in bust_spinlocks()

Heiko Carstens
2018-10-25T06:28:10Z

On Wed, Oct 24, 2018 at 01:34:25PM +0900, Sergey Senozhatsky wrote:
> On (10/24/18 13:30), Sergey Senozhatsky wrote:
> From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
> Subject: [PATCH] s390/fault: use wake_up_klogd() in bust_spinlocks()

...

> From the comment it seems that s390 wants to just poke klogd.
> There is wake_up_klogd() for this purpose, so we can replace
> that printk(" ").
>
> Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
> ---
> arch/s390/mm/fault.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
> index 2b8f32f56e0c..53915c61ad95 100644
> --- a/arch/s390/mm/fault.c
> +++ b/arch/s390/mm/fault.c
> @@ -92,16 +92,12 @@ void bust_spinlocks(int yes)
> oops_in_progress = 1;
> } else {
> int loglevel_save = console_loglevel;
> - console_unblank();
> - oops_in_progress = 0;
> - /*
> - * OK, the message is on the console. Now we call printk()
> - * without oops_in_progress set so that printk will give klogd
> - * a poke. Hold onto your hats...
> - */
> +
> console_loglevel = 15;
> - printk(" ");
> + console_unblank();
> console_loglevel = loglevel_save;
> + oops_in_progress = 0;
> + wake_up_klogd();
> }

With your patch this looks nearly like the common code variant. I did
some code archaeology and this function is unchanged since ~17 years.
When it was introduced it was close to identical to the x86 variant.
All other architectures use the common code variant in the
meantime. So if we change this I'd prefer that we switch s390 to the
common code variant as well.

Right now I can't see a reason for not doing that, but I might be
wrong of course. So, could you please provide a new version which just
removes this variant and makes s390 use the generic one too.

We'll see if there is any fallout...