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 34BBB1B19; Sat, 11 Jul 2026 20:14:20 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id C10821A87; Sat, 11 Jul 2026 20:14:15 +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.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com [IPv6:2607:f8b0:4864:20::1130]) by atuin.qyliss.net (Postfix) with ESMTPS id BE0A119FC for ; Sat, 11 Jul 2026 20:14:14 +0000 (UTC) Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-81e86df8987so16217097b3.3 for ; Sat, 11 Jul 2026 13:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783800853; x=1784405653; darn=spectrum-os.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=FZb/w6gIhqjEYPLOIvfPIlazBkVcm0kr3KTRCGwI7yY=; b=dfR4PW63JA9eJAUEshZ5WWLJB/F/2sLQyKXDCdBDD83wdN5FElE8IjMABtYodEIoxM VQd0n36CcMB/MpbaX9+5YfgBXH+ypgdVNu3wZmcKhNDvG181LncfoxlqW0a7VvBtBkuH G4j8kg4Mh3qNgZSKtrqY5S+pffxl/Yzxds7tX4tWLzLJLnJ/DhynAe6Ozt7PLrFhCRdy V3r3qDKgGXp66dchfko/jKjiUkglS0PYBoiwARrLZMVZWuRwxFkC3JR5hiVVj3DfZbom sZ2mMLI6NOvAb81BopDQxFnYXfkbvk5SaWAGkIXTcpYhsi1gnJEJ8yin87tEP2plHI7c OOxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783800853; x=1784405653; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=FZb/w6gIhqjEYPLOIvfPIlazBkVcm0kr3KTRCGwI7yY=; b=VqNGP5iH5h3Ew4Kxdc5V3m+twqCfYdzooNiU3Kn+6uegS8AKCABSGue3BZfosTS0ZE r99bv80KkF1njJCAkh12bpJMeYpaL6SMi7tWdnOG2LNDKfj35Z65oRkbsa2bgIeitud9 CQXnnlPzXUtYztlF185ZdKZDrUfSRA2/KHIIQ6CpmSR6X50PO15ojwGYxV0aEtcLNqZY PlBIZQrHQEkstyiHJ2mj8WkBhG4dBoqBgCXOVCn7IZk2nwGfDSATbXIc+WgvDAvgCtAP 44XWjqAEqtu4qgTDbSJkrPMigc7MsiCxx2PBtX3fFJzscLd1IbO9N04/0elMaUjcR+W2 esfw== X-Gm-Message-State: AOJu0YyW35Bn2YMdqpFGuDoTJhnKXgwKVhKfBgVgkbNZk2ZspDc7vGAD yml4J8zVJJrSdvCrPna7bCvbefjB8zS+ODbfBXo9CrSwaJUEB6V7VKmzlbFG4Q== X-Gm-Gg: AfdE7ckwLpj4/1ulzxJRln9dG4PHsvFThaekHtx6Zrj0dhZYwilqKkN+g+WClZXYLpR P8NfOMr0qsjNgDqLc+dHkOwkx2VSNTYT0H3Q6MF2Ch7CqUC+GKo/AbAHnOYJWXjPuHitPJgJbfZ 6fB+XF0GrivYT/KM9BJiLhyyBj1iYQA9MZYmXhvkL3O/M5vwuFqzWqPsMAvOdj3JlxM5Av+M0a8 mQmKVqbLwn7bJ6H6BCc4u4fandpRXcz94768fnWY6sWQDRn4yi3dYf/wNDEzFg/iGtTr8OjVzxH /tdFnuT4eAWMBL4GbGwRdVeHpcs0rmmfGPV6rnfrOxcDQ2WHd58b3rTjI3cjXm5iOc884WDftSx W/LvlJpFCtJrmVAYnvnmo+AcPgBGL6IH0kBE+cytH542+US2PzhFUvlChpP1Zv7OTCwYAwhmuQ/ ZA3nFZ/99zgAXj2BJyNj3J6mTOCg== X-Received: by 2002:a05:690c:6f12:b0:80b:9114:3b7e with SMTP id 00721157ae682-81e900322femr29984177b3.12.1783800853500; Sat, 11 Jul 2026 13:14:13 -0700 (PDT) Received: from localhost.localdomain ([185.98.168.14]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-81e6be98397sm77934457b3.6.2026.07.11.13.14.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 13:14:12 -0700 (PDT) From: Demi Marie Obenour Date: Sat, 11 Jul 2026 16:12:05 -0400 Subject: [PATCH v3 01/22] host/rootfs: Mount filesystems before s6-rc-init MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260711-cgroups-v3-1-5cba61a20cba@gmail.com> References: <20260711-cgroups-v3-0-5cba61a20cba@gmail.com> In-Reply-To: <20260711-cgroups-v3-0-5cba61a20cba@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783800724; l=2380; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=n45E6nFRTHz0GRasEcqq5xW4yuVPF7WrcYVGkx+BD/g=; b=Qx06lH0H1dolRkRmy99nfjgx6L8MsTZOAe0InmOlSanz+1MMoDSDmptjCoqbzQClAO0t14XcG 6QeMkwWqsAaAjkBJyM6eclNc3DowlcV2OC8voW0Wv25w1h/sThKTfyx X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: RFI2FED2ZPAXCLRPQHRD2PJ2VTPVSNSH X-Message-ID-Hash: RFI2FED2ZPAXCLRPQHRD2PJ2VTPVSNSH X-MailFrom: demiobenour@gmail.com X-Mailman-Rule-Hits: member-moderation 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 CC: Demi Marie Obenour , Alyssa Ross 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: cgroup-setup is written in Rust and uses the Rust standard library. It also relies on cgroupfs being mounted at /sys/fs/cgroup. Furthermore, it runs very, *very* early on, since it sets up the cgroups in which s6-svscan and s6-supervise processes run. This allows setting up sub-cgroups without having to worry about name collisions. While it would be possible to only mount the bare minimum necessary, it's simpler to just mount everything before starting any services. These mounts are all pseudo-filesystems or tmpfs instances, and none have any dependencies. Signed-off-by: Demi Marie Obenour --- host/rootfs/image/etc/init | 11 ++++++++++- host/rootfs/image/etc/s6-linux-init/scripts/rc.init | 9 +-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/host/rootfs/image/etc/init b/host/rootfs/image/etc/init index db8a6d9c747e3d212c21b6c983c8f7e299822abe..8ec7859ab00e24007a93d4000c8f34e353de50ae 100755 --- a/host/rootfs/image/etc/init +++ b/host/rootfs/image/etc/init @@ -1,6 +1,15 @@ #!/bin/execlineb -Ws0 # SPDX-License-Identifier: EUPL-1.2+ -# SPDX-FileCopyrightText: 2022 Alyssa Ross +# SPDX-FileCopyrightText: 2020-2022, 2024 Alyssa Ross /bin/setpriv --no-new-privs -- + +if { /bin/ln -s /proc/self/fd /dev } +if { /bin/ln -s /proc/self/fd/0 /dev/stdin } +if { /bin/ln -s /proc/self/fd/1 /dev/stdout } +if { /bin/ln -s /proc/self/fd/2 /dev/stderr } + +if { /bin/mount --make-shared / } +if { /bin/mount -a --mkdir } + /bin/s6-linux-init -c /etc/s6-linux-init -s /run/param -- $@ diff --git a/host/rootfs/image/etc/s6-linux-init/scripts/rc.init b/host/rootfs/image/etc/s6-linux-init/scripts/rc.init index f638e373589884acb959c868462fdf532380a851..fba305c4e9cbb9f7535f11bb4c06d8da8a34837b 100755 --- a/host/rootfs/image/etc/s6-linux-init/scripts/rc.init +++ b/host/rootfs/image/etc/s6-linux-init/scripts/rc.init @@ -4,13 +4,6 @@ if { s6-rc-init -c /etc/s6-rc /run/service } -if { ln -s /proc/self/fd /dev } -if { ln -s /proc/self/fd/0 /dev/stdin } -if { ln -s /proc/self/fd/1 /dev/stdout } -if { ln -s /proc/self/fd/2 /dev/stderr } - -if { mount --make-shared / } -if { mount --make-shared /run } -if { mount -a --mkdir } +if { /bin/mount --make-shared /run } s6-rc change ok-all -- 2.55.0