Re: [PATCH v3] printk: add halt_delay parameter for printk delay inhalt phase

From: Andrew Morton
Date: Mon Jun 08 2009 - 17:39:55 EST


On Mon, 8 Jun 2009 19:15:01 +0200
Ingo Molnar <mingo@xxxxxxx> wrote:

> > questions: is it possible for interrupts to be disabled at this
> > time? If so, can we get an NMI watchdog hit?
>
> no, we generally turn off the nmi watchdog during shutdown, disable
> the lapic and io-apic, etc.

Is x86 the only architecture which implements an NMI watchdog?

> > Is the softlockup detector still running and if so, can it
> > trigger?
>
> in (non-emergency) reboot, last i checked, we stopped all other CPUs
> first, and then killed the current one. There's no chance for the
> watchdog thread to run.

OK, but... See below.

> Anyway ... you seem to be uncomfortable about this patch - should i
> delay it for now to let it all play out? We are close to the merge
> window.

I'm OK - I'm just bouncing ideas and questions off you guys, to make sure
that we've thought this through all the way.

Here's another: why is it a boot option rather than a runtime-tunable?
A /proc tweakable is generally preferable because it avoids the
oh-crap-i-forgot-to-edit-grub.conf thing. And we could perhaps then
remove all those system_state tests: userspace sets printk_delay
immediately prior to running halt/reboot/etc?

Plus the feature becomes more general - perhaps there are use cases
where people want to slow down printks, such as: kernel goes oops, data
scrolls off, serial console/netconsole unavailable. pause_on_oops is
supposed to help here but last time I tried it, it kinda didn't work,
plus pause_on_oops doesn't solve the data-scrolled-off problem.

Thirdly, if we do this as a general /proc/printk_delay thing, perhaps
it can be consolidated with the existing boot_delay= implementation.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/