From: Gao Xiang <xiang@kernel.org>
To: Giuseppe Scrivano <giuseppe@scrivano.org>
Cc: linux-erofs@lists.ozlabs.org, xiang@kernel.org,
linux-fsdevel@vger.kernel.org, amir73il@gmail.com,
brauner@kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz,
hch@infradead.org
Subject: Re: [PATCH v7 2/2] erofs: reuse superblock for file-backed mounts
Date: Mon, 12 Oct 2026 18:23:00 +0200 [thread overview]
Message-ID: <as0JZCSfTBo0e3Lq@XiangdeMacBook-Pro.local> (raw)
In-Reply-To: <20261002163225.1258203-3-giuseppe@scrivano.org>
On Fri, Oct 02, 2026 at 06:31:44PM +0200, Giuseppe Scrivano wrote:
> When the same file-backed image is mounted multiple times (via path or
> fd) with the superblock_share mount option, reuse the existing
> superblock instead of creating a new one. This allows multiple mounts
> of the same image to share in-kernel data structures more efficiently.
>
> The backing file is identified by its inode and fsoffset. If mount
> options conflict or extra devices are used, a separate superblock
> is created transparently as a fallback. Remount is not allowed on
> shared superblocks.
>
> Tested by mounting a 177M Fedora EROFS image 20 times with full
> traversal:
>
> #!/bin/sh
> IMG=${1:-/root/fedora.erofs}
> OPTS=${2:+-o $2}
> N=20
> DIR=$(mktemp -d)
> trap "umount $DIR/m* 2>/dev/null; rm -rf $DIR" EXIT
>
> sync; echo 3 > /proc/sys/vm/drop_caches
> INODES_BEFORE=$(grep erofs_inode /proc/slabinfo | awk '{print $2}')
> MEM_BEFORE=$(grep ^Slab: /proc/meminfo | awk '{print $2}')
>
> for i in $(seq 1 $N); do
> mkdir $DIR/m$i
> mount -t erofs $OPTS "$IMG" $DIR/m$i
> find $DIR/m$i > /dev/null
> done
>
> echo "Superblocks: $(grep $DIR /proc/self/mountinfo | \
> awk '{print $3}' | sort -u | wc -l)"
> echo "erofs_inode delta: +$(( $(grep erofs_inode /proc/slabinfo | \
> awk '{print $2}') - INODES_BEFORE ))"
> echo "Slab delta: +$(( $(grep ^Slab: /proc/meminfo | \
> awk '{print $2}') - MEM_BEFORE )) kB"
>
> without superblock_share:
>
> # time ./test.sh /root/fedora.erofs
> Superblocks: 20
> erofs_inode delta: +45864
> Slab delta: +37448 kB
> real 0m2.311s
> user 0m0.222s
> sys 0m1.998s
>
> with superblock_share:
>
> # time ./test.sh /root/fedora.erofs superblock_share
> Superblocks: 1
> erofs_inode delta: +2044
> Slab delta: +284 kB
> real 0m0.679s
> user 0m0.157s
> sys 0m0.469s
>
> The time difference shows that sharing the superblock also benefits
> the page cache and inode cache, as subsequent mounts of the same image
> avoid re-reading the backing file. This is particularly useful for
> container hosts running multiple containers from the same base image.
>
> Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
Reviewed-by: Gao Xiang <xiang@kernel.org>
And applied to -next.
Thanks,
Gao Xiang
next prev parent reply other threads:[~2026-10-12 16:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 16:31 [PATCH v7 0/2] erofs: share the superblock for file-backed mounts Giuseppe Scrivano
2026-10-02 16:31 ` [PATCH v7 1/2] fs: rename vfs_get_super() to get_tree_super() and export it Giuseppe Scrivano
2026-10-05 8:14 ` Christoph Hellwig
2026-10-05 12:38 ` Jan Kara
2026-10-06 11:08 ` Gao Xiang
2026-10-02 16:31 ` [PATCH v7 2/2] erofs: reuse superblock for file-backed mounts Giuseppe Scrivano
2026-10-12 16:23 ` Gao Xiang [this message]
2026-10-12 10:48 ` (subset) [PATCH v7 0/2] erofs: share the " Christian Brauner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=as0JZCSfTBo0e3Lq@XiangdeMacBook-Pro.local \
--to=xiang@kernel.org \
--cc=amir73il@gmail.com \
--cc=brauner@kernel.org \
--cc=giuseppe@scrivano.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.