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 C3EC59129; Thu, 06 Aug 2026 01:19:46 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 0CF6490BB; Thu, 06 Aug 2026 01:19:43 +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-x1131.google.com (mail-yw1-x1131.google.com [IPv6:2607:f8b0:4864:20::1131]) by atuin.qyliss.net (Postfix) with ESMTPS id DE5CA9101 for ; Thu, 06 Aug 2026 01:19:41 +0000 (UTC) Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-81f36179dd5so24292917b3.2 for ; Wed, 05 Aug 2026 18:19:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785979180; x=1786583980; 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=AlsWchy1ww9vJmQAMAaHAwnFkel/E7/G5BKAuAGHdUA=; b=UTgD74JaGf7RC+LvlagrZlRtHJ85Votqi5ledhjGMnWuAzVFIM1f957x9S7zMPzzBu DzollDUrepK+XGvRRZPYaUg1dXyQn0oiO8LKGLNpOHoEASnfrhW/VShF3z0M2S3Lj4H2 BraShMD4+6SXbwi5NtnToUwoinddZt0NCca69K78tO9bC5uImX0AsMegm0epG5YYLQep NWme3Q2BYma8+jtmsp0aHRoS0Dp3OwBTlJ0ed7b4EomhJGUEMv9ZW7ljLKXTDld0hPeQ FHFzPPzXWVrQh1vkuZDv6eraut7lg3fPEX+GDBgS7cUc8eDkPeTEF6hBZRgQhPKnKe46 BU/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785979180; x=1786583980; 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=AlsWchy1ww9vJmQAMAaHAwnFkel/E7/G5BKAuAGHdUA=; b=MAuA1w5oiGPVGvZR9OCqt+x50eaofEdYwCuTMIUL1299VIX9s7y1Qz9QNoxfG/ueZJ /DmqKcJ9dzaq3pSHkNvE0624guZkAsYlRtQcIHbYmvgmjCLGSYPhhJr0GvTz7mJECwOU Z4mMZl+2cfDht1PLyn8lufBIaER4YFzlT9/rs/d9BonAHoFzEtdYWPQj8L321A63JaA5 Jsc6/9+CZ0j8aHPfQcJNb33XGz6lRVMwbov6L+1UPrrZQUIZenTdD9IpmoP5Q5v5tgkj zQ/KC2K90sw5Oz7FHDFJVrjSs00GIfAJs2Q79pwAV1M0R9McCrM8fk8fbirxSQwjHPqI 7QDg== X-Gm-Message-State: AOJu0Yy0pNwOoOs1vo8f2b3WFmzylzzfXWUOgVomPh4drIfiZjfj3OwM 7yAE0RpPkUV6odbDCnnyG0Dq6rgypV1PWGxgcvHghaHC+OO5VSuVGmiIfklFkA== X-Gm-Gg: AR+sD13c2wmUDt7dntiAGWj93l7Bh+ib7D8sIyyHiExGGMlc/dKXyRd+yGxaWqCD1Z1 DQYAUzh9K49fMs5RPYGpAVMiJHDyXhrWq7gNEmYvHnsE1ddyoqHX0DVOdgLSokNp/Yp3fvXbR4n 6NO2tg22vuiHLzRD2ONK9mLz3azJIopekdxEEYUwzBxP9Es5okfQsCwvXN23+J6h9s3Jcp8jKaH c1v2WFah4ezukfyUjRyxKTrOg66ccpEMfeToZL6zUK9tit+iQWcstKxUkF2hh8oytnv9NkePkEZ m2pmxjbEEuBtkBfYh0bpaW3z9r2jcLQ9s7bgEzWOsFJY5kAo8TkDGY0UR99E4xpb6e1Td4GVSBu 1LzTUl520Sf/Q3roL49AXpxuWaTXkfziFZXqLlMv8+GHvshKePobdU3jiZg5mbpY+oMuEHXSck6 usCyPVjVBld0m8AWtW21FwH7QBktCjGpEkMGFfjhGAfHakdXqqFTvkJNm8MUOwv/mTMeGzxprQ2 Q== X-Received: by 2002:a05:690c:e3f2:b0:81e:b981:3eb5 with SMTP id 00721157ae682-820223480c6mr68022917b3.23.1785979180632; Wed, 05 Aug 2026 18:19:40 -0700 (PDT) Received: from localhost.localdomain ([185.98.168.14]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-820131db36csm30243637b3.1.2026.08.05.18.19.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2026 18:19:39 -0700 (PDT) From: Demi Marie Obenour Date: Wed, 05 Aug 2026 21:16:08 -0400 Subject: [PATCH v6 01/19] 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: <20260805-cgroups-v6-1-086c0f00f55f@gmail.com> References: <20260805-cgroups-v6-0-086c0f00f55f@gmail.com> In-Reply-To: <20260805-cgroups-v6-0-086c0f00f55f@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785978967; l=2434; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=jmfORfexXZaFkOAhN/ymO1GFsl+nYbqIaE6Q7oh6rYo=; b=DLc7/Vd4ek2F0JNqd632j6r8n7+Z2Nxe8uDsbHdS5Uf10OFJE5hvxr4nqIv/sSGiNOKn64vir S1SaQHOisisAV6N4bn7emCDFZGGGjgcWYMYTIjMJbqDoqYiztHjj4E0 X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: LE5R3PF3MJG2L6VZQAXNM3BIFBTQCFVP X-Message-ID-Hash: LE5R3PF3MJG2L6VZQAXNM3BIFBTQCFVP 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, a tool which will be introduced in a later patch, 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 Reviewed-by: Alyssa Ross --- host/rootfs/image/etc/init | 11 ++++++++++- host/rootfs/image/etc/s6-linux-init/scripts/rc.init | 7 ------- 2 files changed, 10 insertions(+), 8 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..db766ba0ca0a11982f5b55497c17eaf5e95afb2c 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 } s6-rc change ok-all -- 2.55.0