Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 May 2025 04:46:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        sysinstall@FreeBSD.org
Subject:   [Bug 286703] During bsdinstall, pkg hangs outputting to serial console
Message-ID:  <bug-286703-8135-EqwUDxw1ME@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-286703-8135@https.bugs.freebsd.org/bugzilla/>
References:  <bug-286703-8135@https.bugs.freebsd.org/bugzilla/>

index | next in thread | previous in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286703

--- Comment #4 from Ravi Pokala <rpokala@panasas.com> ---
Some additional observations:

1. Apart from `bsdinstall', I found that one of our internal utilities would
consistently cause the serial console to go non-responsive. The same utility
run via the KVM works without issue. Interestingly, redirecting the output of
the utility to a file and then `cat'ing it on the serial console, does *not*
cause the console to go non-responsive.

2. If running that utility on the serial console causes it to go
non-responsive, breaking into the debugger (NMI or video console) causes it to
emit the output from the utility to the console, before it brings up the
debugger. This means that characters directed to the serial console were
continuing to be buffered, but the buffer was not actually being flushed to the
console.

My colleagues and I agree that (2) in particular has the feel of a missed
interrupt.

And then, serendipity!

While we were debugging this problem, @cpercival committed:
https://cgit.freebsd.org/src/commit/?id=9a685c09f06a
which disabled a workaround from a dozen years ago:
https://cgit.freebsd.org/src/commit/?id=1c60b24baa50
and a more recent related change
https://cgit.freebsd.org/src/commit/?id=7e7f7beee732

That is talking about an emulated UART from QEMU and Xen and EC2, but it seems
to describe our issue with the physical hardware: TX FIFO didn't interrupt
while emptying, stopping further flushing. And when something force the flush
to happen -- NMI via BMC, or video console debugger sequence -- the buffer
finishes flushing.

We added 'hw.broken_txfifo="1"' to /boot/loader.conf to enable the workaround,
and that solved the problem. We completed several dozen successful
installations with `bsdinstall', and as many runs of the utility which
previously triggered the hang.

We need to do some testing to see if the fix causes latency spikes on real
hardware the way it did on EC2, which is why @cpercival disabled it there.

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-286703-8135-EqwUDxw1ME>