mirror of
https://github.com/torvalds/linux.git
synced 2026-05-13 00:28:54 +02:00
ktest: Stop dropping console output during power-cycle reboot
The POWER_CYCLE fallback added to reboot() flushes monitor output at the wrong time. In the untimed reboot path, flushing immediately after start_monitor() can consume the first output from the new boot before monitor() begins reading it. In the timed path, flushing after POWER_CYCLE can eat the "Linux version" banner or REBOOT_SUCCESS_LINE from the new kernel. That makes ktest miss the boot it is waiting for and can trigger an unnecessary second power cycle. Start the monitor before POWER_CYCLE so the reference counting stays balanced, but only flush when reboot() was asked to wait for a timed reboot. Perform that flush before issuing POWER_CYCLE so it drains stale output from the old kernel instead of consuming the next boot. Cc: John Hawley <warthog9@eaglescrag.net> Cc: Andrea Righi <arighi@nvidia.com> Cc: Marcos Paulo de Souza <mpdesouza@suse.com> Cc: Matthieu Baerts <matttbe@kernel.org> Cc: Fernando Fernandez Mancera <fmancera@suse.de> Cc: Pedro Falcato <pfalcato@suse.de> Link: https://patch.msgid.link/20260307-ktest-fixes-v1-6-565d412f4925@suse.com Signed-off-by: Ricardo B. Marlière <rbm@suse.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
fcfc25725a
commit
eae247f65d
|
|
@ -1499,12 +1499,13 @@ sub reboot {
|
|||
}
|
||||
|
||||
if ($powercycle) {
|
||||
run_command "$power_cycle";
|
||||
|
||||
start_monitor;
|
||||
# flush out current monitor
|
||||
# May contain the reboot success line
|
||||
wait_for_monitor 1;
|
||||
if (defined($time)) {
|
||||
# Flush stale console output from the old kernel before power-cycling.
|
||||
wait_for_monitor 1;
|
||||
}
|
||||
|
||||
run_command "$power_cycle";
|
||||
|
||||
} else {
|
||||
# Make sure everything has been written to disk
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user