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 D68ED6530; Wed, 22 Jul 2026 02:16:49 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id C981064F5; Wed, 22 Jul 2026 02:16:47 +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-x1133.google.com (mail-yw1-x1133.google.com [IPv6:2607:f8b0:4864:20::1133]) by atuin.qyliss.net (Postfix) with ESMTPS id 661A564F4 for ; Wed, 22 Jul 2026 02:16:47 +0000 (UTC) Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-8114a4542b2so69993047b3.1 for ; Tue, 21 Jul 2026 19:16:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784686606; x=1785291406; 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=KW65pXQzUAxWc356yuAqBtV+k9nL4yKcoeP966IQSxu0BknP1jsMBWKskDQCvR85LZ eAmPsPUiyMoqnP1COHJ0XpNZe0S/8h1ssc+ICzLsaFUsLHWf4k7z28staJ8DI1hM3Ce9 QP7UoItuEUYTffkkgyvBT/o3L9bxv5g3zyBRSyqJoWQu3JBdve2TsCjSIAz+Cy5joE3C 1BPtdg4chCEZ4lMDIGBnLJqzV52MnS4tTQL2lvyZfqnpNot7u+767L8TN+A0jY9XwH/i dZpTKBFocHthxhYad75X8lvaaV978b4K45M8Qx4Hg2VWe+HDdsZieUATKZ2/S99Rw/Dq IGgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784686606; x=1785291406; 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=m7altJBs+3WG3SfodyGzuPdKvcK+470gdwhS2GOLpbQWnlQrZcUTbXfaiYlNxII4Pn wXkDUHeFx3vii02s0tH3w3rhDVCgTOxkD07vEJGJmc6tIjBBbbFqvrVlfsKY9rgZiCJM y5K790O3yeM9VMz9uA8EhfsTzmWHB5xDEkK9h5PRHeNgsazZ64H3FpjvSdcDm5sNsHLt ftmgyxQYF36FQKw3aA4mIONhemeWtWUoSLYmqu+wQYvYhO4A/uV892YrcdL6cmOBefjz eOtDneI9NsPpZR6bb7fl6mzZpnMPlI+O/Dr1mBUyRQxDB4D2hnd+XhFm6vxM2kGZfXNf fxcQ== X-Gm-Message-State: AOJu0Yy8okwlnkY71F8AqGKr3b1VeBEMUCVmS97qwh4h2NabYf2nVyFf V8V7kPitMV32CHnArF9Q5C7rVp0wQELeUQ3Mo5XYe6LZD6HPSzWkXCnuXs+ggQ== X-Gm-Gg: AR+sD11+dPIQECfhZUoHgdb7qlqRXaTYy5PYS4GV/2P0Jt0HAMsV6/9W4LTDS34P2/o b4Qu/HuWwVzxUQeSY/qxkQNxA1OCHjKAt/QhIlUWKRWgjp+p2Ajn447k5xlfMyCEIZ2v7bFOHwe Vw9YC0jWp0DKAQ7T7hGb+dxwviuVUN5VtO5nYLl0XTDAYpt++m1UFypXeXIjXOCV5xWhnF/0yLf Zu7qj+CiUOV8WVAGC0+4AkSmeNxcNhgi0M82EbXtc3rP1bFMCpAphjawc1XRPSfh89iFNS8U36R YYv8ueOJ+87d/aCIkFkRrvwfxqlG/GUTuVrpMwFl3OsAHIW4MupGArCDdzG9PBySF/YGuKY1417 Ql47pEGD6CpYlSxpgL+ji5aRolk3yX5Dpe5Aq6mHuzb5+rm4X10vBsR+JpXQsL2yLQcfv4cFlY3 vh6h2AkqFxtH7kAZY= X-Received: by 2002:a05:690c:c119:b0:81f:2825:de9 with SMTP id 00721157ae682-81f282510e0mr12591997b3.20.1784686605718; Tue, 21 Jul 2026 19:16:45 -0700 (PDT) Received: from localhost.localdomain ([185.98.168.14]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-81f33f35417sm6688647b3.47.2026.07.21.19.16.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 19:16:45 -0700 (PDT) From: Demi Marie Obenour Date: Tue, 21 Jul 2026 21:59:06 -0400 Subject: [PATCH v4 01/20] 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: <20260721-cgroups-v4-1-46b2e5fff7b6@gmail.com> References: <20260721-cgroups-v4-0-46b2e5fff7b6@gmail.com> In-Reply-To: <20260721-cgroups-v4-0-46b2e5fff7b6@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784685545; l=2434; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=jmfORfexXZaFkOAhN/ymO1GFsl+nYbqIaE6Q7oh6rYo=; b=+mAnOyvE8Z/Wd3otiHYqrm5uvOj69zOlp2yXOQL12GM25Bnk0dceu0RIzFkKRCej2ys8bdlqc We2SVxoaGXrCPGw2fIRX2+7QywyxCBnyu+jPS5L12juz7izNwN9b2zI X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: HZTILDCVIASN6BQBZL4DQBFVMVPBUKJO X-Message-ID-Hash: HZTILDCVIASN6BQBZL4DQBFVMVPBUKJO 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