From: Jan Kara <jack@suse.cz> To: Ted Tso <tytso@mit.edu> Cc: <linux-ext4@vger.kernel.org>, Jan Kara <jack@suse.cz> Subject: [PATCH 0/5 v7] ext4: Speedup orphan file handling Date: Mon, 16 Aug 2021 11:57:03 +0200 [thread overview] Message-ID: <20210816093626.18767-1-jack@suse.cz> (raw) Hello, Here is the seventh version of my series to speed up orphan inode handling in ext4. I've forgot to add a check that orphan file is not exposed in directory hierarchy. The only change in this version is addition of that fix. Orphan inode handling in ext4 is a bottleneck for workloads which heavily excercise truncate / unlink of small files as they contend on global s_orphan_mutex (when you have fast enough storage). This patch set implements new way of handling orphan inodes - instead of using a linked list, we store inode numbers of orphaned inodes in a file which is possible to implement in a more scalable manner than linked list manipulations. See description of patch 3/5 for more details. The patch set achieves significant gains both for a micro benchmark stressing orphan inode handling (truncating file byte-by-byte, several threads in parallel) and for reaim creat_clo workload. I'm happy for any review, thoughts, ideas about the patches. I have also implemented full support in e2fsprogs which I'll send separately. Honza [1] https://lore.kernel.org/lkml/20210227120804.GB22871@xsang-OptiPlex-9020/ Changes since v6: * Rebased on top of v5.14-rc6 + patches fixing exposure of hidden inodes in directory hierarchy * Added check orphan file cannot be linked from directory hierarchy * Get orphan file inode with EXT4_IGET_SPECIAL flag Changes since v5: * Added Reviewed-by tags from Ted * Fixed up sparse warning spotted by 0-day * Fixed error handling path in ext4_orphan_add() to not leak orphan entry Changes since v4: * Rebased on top of v5.14-rc5 * Updated commit message of patch 1/5 * Added Reviewed-by tags from Ted Changes since v3: * Added documentation about on-disk format changes * Add physical block number into orphan block checksum * Improve some sanity checks, handling of corrupted orphan file * Improved some changelogs Changes since v2: * Updated some comments * Rebased onto 5.13-rc5 * Change orphan file inode from a fixed inode number to inode number stored in the superblock Changes since v1: * orphan blocks have now magic numbers * split out orphan handling to a separate source file * some smaller updates according to review Previous versions: Link: http://lore.kernel.org/r/20210816091810.16994-1-jack@suse.cz # v6 Link: http://lore.kernel.org/r/20210811101006.2033-1-jack@suse.cz # v5 Link: https://lore.kernel.org/linux-ext4/20210712154009.9290-1-jack@suse.cz/ #v4 Link: https://lore.kernel.org/linux-ext4/20210616105655.5129-1-jack@suse.cz/ #v3 Link: https://lore.kernel.org/linux-ext4/1432293717-24010-1-git-send-email-jack@suse.cz/ #v2
next reply other threads:[~2021-08-16 9:57 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-16 9:57 Jan Kara [this message] 2021-08-16 9:57 ` [PATCH 1/5] ext4: Support for checksumming from journal triggers Jan Kara 2021-08-16 9:57 ` [PATCH 2/5] ext4: Move orphan inode handling into a separate file Jan Kara 2021-08-16 9:57 ` [PATCH 3/5] ext4: Speedup ext4 orphan inode handling Jan Kara 2021-08-16 9:57 ` [PATCH 4/5] ext4: Orphan file documentation Jan Kara 2021-08-16 9:57 ` [PATCH 5/5] ext4: Improve scalability of ext4 orphan file handling Jan Kara 2021-08-24 17:14 ` [PATCH 0/5 v7] ext4: Speedup " Theodore Ts'o 2021-08-25 11:30 ` Jan Kara 2021-08-25 16:13 ` Jan Kara 2021-08-25 17:48 ` Theodore Ts'o 2021-08-25 22:13 ` Jan Kara 2021-08-25 22:47 ` Theodore Ts'o 2021-08-26 14:55 ` Theodore Ts'o
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=20210816093626.18767-1-jack@suse.cz \ --to=jack@suse.cz \ --cc=linux-ext4@vger.kernel.org \ --cc=tytso@mit.edu \ --subject='Re: [PATCH 0/5 v7] ext4: Speedup orphan file handling' \ /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
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.