From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 02579B674; Fri, 31 Jul 2026 14:43:30 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id EC935B5F9; Fri, 31 Jul 2026 14:43:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 Received: from fout-a7-smtp.messagingengine.com (fout-a7-smtp.messagingengine.com [103.168.172.150]) by atuin.qyliss.net (Postfix) with ESMTPS id 49EB3B5F8 for ; Fri, 31 Jul 2026 14:43:25 +0000 (UTC) Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47]) by mailfout.phl.internal (Postfix) with ESMTP id EDC48EC0015; Fri, 31 Jul 2026 10:43:23 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-07.internal (MEProxy); Fri, 31 Jul 2026 10:43:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1785509003; x=1785595403; bh=p3ksImcAr+ xID0pNv96ATt76YolvnWwi+2YAsa1nRQM=; b=Lq99sXWs/A0BHXlvs+imejDBzH Imm7QohY1k/3Oj1Dwhyc6Vhrm8A8IVjW07RuPGEaONmRx2Hz34EqT1K2QieoTTw0 mT7mY/UiDBldlIqDHm9JF6Ew9P+XUDxu3cgji4YD+lhdWUYvLyJWPXgz0X7VmD8I Kwa34M3qa8NWFANiLGJmMPX3DVqCr8SrbSmz3gM+0iyrvnnDdkJ6DEX6qHxM+yXA hYxYWNQYNB5/UNDlia8y+EVLbDsug8lF1RZZREEs4CJeVLPB9Y/d0kmCsp9IVZR/ 71WEOKd3/KM1XJsDqyWwOdKrP5yyXS5tzcZvMf69MexYtYdOwGM7P2LSJ0eA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1785509003; x=1785595403; bh=p3ksImcAr+xID0pNv96ATt76YolvnWwi+2Y Asa1nRQM=; b=PEHrSfB6XUdW9vSPPHp5T/NR3gOQ9QwUyH9dsRR8IroXBJrVh6O YRiYRaiZfGM5qFVGovUVxCod2g2baSmWxaH4SKBk05/Ir36VcSXXqIAiLqS9Cbu5 lvzQ+9bHaYf/B1J7NWf8rkAEwm57927HJOlmUVv/6q6pDlSqRzuAua/5SFcxzlBY B0BWkdnugPJ8GhrUZWebbXLyGdpdf6XmLPSpuc6ajZT/7KuxYlrfjZExeqYcuv39 1a6HooUTQjrTjkg65FUTVK3ky0JL7G+eUGXhcAAyzt21jnt2haADaQsq+8w6vPJu gMWaIuUE7OOKNgQgI7eLLZNBTEtXXvDTD1A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGECYN4AdZ4Je/qO4SUMSYixKuuvf0taAtDtpNZr3TTveT8KKKQG8Sjv+e/Mhy4M5 axnalAfQJwR2Bv1e8TqCSMWLN247EM6JCDJRhrXeIS0oA0toYegK70YYHfbZO1YI3QBN4g mUm7KLs5sGyk6edBhHpGPdph5NlpYBldd4MtcEKqWqE7F4YJ843q1EY+qTNp3YEaJCo8mo AFJ11iYSBHpj54RwqvUUjYwxyTC8mXmzrztgFN5vqS1ES/Rl0JpZpQFsES+OIr/xfRhL5x YRHFXpOByoFs+gJQw9LRdxFzD3vHLwi02uzBDb325HnhoI5OSSzJMHIYAn/JKy4Ylghnal uGSmj2PBjK8WTRT/54SLvUkGwo2OGKRMZJduKG7UnhYl/OmQEgQHf0tqtUzwP/4pyIrFOC q0akAf1gBBWO/38noqBf1C/3pkyvF9SrFPfOzFKfTkiIJteS+FEIWsQm1fuPnFo1neJKdK wYdDNECUU50q7W0M/0A9FjWNaPjVgFKYIRzi9R2gektk8MsR9eDK2u2HlrvmR7i1z0AW6P XuW05QEg90vfJllrQJ8gTVcxl7YoOmoG4m06NjLosXDn5C6qGeTsGu3yoEpZlx/Q6Q5F5H 728ZfZKd7WemZx3W3FJILWuwhe/NC8K/rDb3xHeddbvXotojJLFV6qhXUwcg X-ME-Proxy: Feedback-ID: i12284293:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 31 Jul 2026 10:43:23 -0400 (EDT) Received: by fw12.qyliss.net (Postfix, from userid 1000) id 0A3F1C601619; Fri, 31 Jul 2026 16:43:22 +0200 (CEST) From: Alyssa Ross To: colbyt Subject: Re: [PATCH v4] installer: suppress boot console status noise In-Reply-To: <20260730193547.1928166-1-colby@colbyt.com> References: <20260730192043.1900866-1-colby@colbyt.com> <20260730193547.1928166-1-colby@colbyt.com> Date: Fri, 31 Jul 2026 16:43:19 +0200 Message-ID: <874ihf2pa0.fsf@alyssa.is> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Message-ID-Hash: QWECLPWC4H7YXVST23I4KBSHGAJBP6XY X-Message-ID-Hash: QWECLPWC4H7YXVST23I4KBSHGAJBP6XY X-MailFrom: hi@alyssa.is X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: devel@spectrum-os.org X-Mailman-Version: 3.3.10 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable colbyt writes: > Add quiet and systemd.show_status=3Dfalse to the installer's kernel > parameters. These are the two parameters that measurably change what > reaches the video console; a leave-one-out boot over the v1 > parameter set (frame captures of the virtual console per configuration) > showed the rest were redundant or inert. v1's loglevel=3D3 in particular > never took effect: boot.consoleLogLevel appends loglevel=3D2 after it and > last-wins. The QEMU runner's serial forwarding is left alone. > --- Thanks for paring it down. To accept patches I need them to have a Signed-off-by line to indicate the submitter has accepted the Developer Certificate of Origin and taken responsibility for the code being submitted[1]. [1]: https://spectrum-os.org/doc/contributing A couple of other things too: =E2=80=A2 The text above the "--- "is what gets recorded in the commit log. It should stand on its own, without referring to previous versions of the same patch, to make it easier to understand when looking back from the future. > v4/v3: no code change =E2=80=94 drop a stray in-body From line that would= have > misattributed authorship when applied. (v2 changes below.) > > Answers to your review questions - from one build of > the installer, thirteen boots differing only in -append, one video- > console frame capture per second per boot: > > Why loglevel=3D3? It turns out it never took effect: boot.consoleLogLevel > (mkDefault 2 in the same file) appends loglevel=3D2 AFTER the explicit > loglevel=3D3, and last-wins =E2=80=94 so the shipped v1 installer actuall= y ran at > console loglevel 2, and the "3" did nothing anyway. For the general > question: the boot-time kernel spew is all KERN_INFO, so quiet alone > (console loglevel 4) already suppressed it in every run; loglevel=3D4 and > =3D3 were indistinguishable on this platform, =3D5 admitted two early > warnings. > > Are all six needed at once? No =E2=80=94 leave-one-out showed: > - quiet: handles the kernel messages and the stage-1 script. > - systemd.show_status=3Dfalse: handles PID 1's status lines > (proven by the control run below). > - rd.systemd.show_status / rd.udev.log_level: inert =E2=80=94 stage-1 is = the > script initrd; nothing consumes them. > - udev.log_level=3D3: no observable console difference in any run; udev > logs to the journal, and the udev-era text in the baseline was kernel > printk. > > The run-vm.nix change is gone from v2 =E2=80=94 agreed the serial forward= ing > divergence is useful in dev, and serial output never factored into the > flicker measurements anyway. > > One finding you may care about beyond this patch: with the full v1 > parameter set, ~5-8s of systemd status text still reached the video > console. A control run with plymouth.enable=3D0 was perfectly black =E2= =80=94 > so systemd.show_status=3Dfalse IS honored =E2=80=94 which isolates the ca= use: > when plymouthd starts before the DRM device exists (virtio-gpu binds > mid-boot in the VM; any hardware with a slow GPU probe behaves the > same), it falls back to details mode and force-enables PID 1 status > output, overriding systemd.show_status=3Dfalse. So true flicker-free boot > on slow-probe machines is a plymouth-fallback issue; happy to dig at that= separately if it's of interest sometime. Interesting. I guess we need to delay the start of Plymouth until a DRM device exists, then? It's probably not worth looking more into that now, because it sounds like we will move towards installing from Spectrum rather than having a separate NixOS installer system. The way to delay Plymouth starting would be different between the two systems, so it's probably not worthwhile (from a Spectrum point of view) to spend time on it before then. (If you're motivated by fixing Plymouth on NixOS, though, then it could be worthwhile, because I imagine other NixOS systems would have the same problem.) (In contrast, the work on finding the right kernel command line things is likely to carry over when we integrate Plymouth into Spectrum, at least for the non-systemd ones.) > I kept the evidence for review later (frame PNGs + serial logs per config= uration) and can share if needed. > > spectrum/release/installer/configuration.nix | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/release/installer/configuration.nix b/release/installer/conf= iguration.nix > index 3f9ef247..c5ec1af2 100644 > --- a/release/installer/configuration.nix > +++ b/release/installer/configuration.nix > @@ -11,7 +11,11 @@ in > imports =3D [ (modulesPath + "/profiles/all-hardware.nix") ]; >=20=20 > boot.consoleLogLevel =3D lib.mkDefault 2; > - boot.kernelParams =3D [ "udev.log_priority=3D5" ]; > + # quiet raises the kernel console threshold past the INFO chatter that > + # reaches the video console during boot (and silences the stage-1 scri= pt); > + # systemd.show_status=3Dfalse stops PID 1's status lines. Every other > + # parameter from v1 measured as redundant or inert =E2=80=94 see the c= over letter. Comments shouldn't refer to information in the patches/commits that introduce them, so that readers don't have to dig those out to understand them. > + boot.kernelParams =3D [ "udev.log_priority=3D5" "quiet" "systemd.show_= status=3Dfalse" ]; Do we definitely want systemd.show_status=3Dfalse? According to systemd(1), the default behaviour if "quiet" is on the command line is for systemd to only show errors. Setting systemd.show_status=3Dfalse also hides errors, which sounds like it would be undesirable. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQQGoGac7QfI+H5ZtFCZddwkt31pFQUCamy0iAAKCRCZddwkt31p FZPSAP9AqpDKzLJR3TJvXnMjNheKA8OEYthKFceWJClgw7/OnQD/cCf4i668et/r Kgl2jUyWxEsP5vO0J/EsrvdJCyHoXgY= =CBC4 -----END PGP SIGNATURE----- --=-=-=--