From patchwork Sat Feb 17 20:23:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 13561579 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5AF0C48BC3 for ; Sat, 17 Feb 2024 20:23:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 22CCC8D0003; Sat, 17 Feb 2024 15:23:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1DE588D0001; Sat, 17 Feb 2024 15:23:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A6F48D0003; Sat, 17 Feb 2024 15:23:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E63E48D0001 for ; Sat, 17 Feb 2024 15:23:42 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id AA0491A0321 for ; Sat, 17 Feb 2024 20:23:42 +0000 (UTC) X-FDA: 81802421484.16.265508A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf12.hostedemail.com (Postfix) with ESMTP id A35DE4000D for ; Sat, 17 Feb 2024 20:23:40 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kF6WuRqj; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of cel@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cel@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708201421; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=r1eZyipcao5SOLKHRAKx6Fgap7LCSmTQirVsCTOvDGI=; b=eQn7qYUYuJoq4Dh2S/jpf8Ce3pbZf5VbZ1UW5ONYArgo0j4AonJA0NE9LQ8p9pUJO8hAI5 48JL6/nR7bXPdjJ6pxqWOO0OT/rzHGKLJQWAc8r1fJYnaQjZsSu/driPq3RwU6ewyHjkgE oAcNIAA/R8r22YLH8MP/LL6rX5Uh//8= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kF6WuRqj; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of cel@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cel@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708201421; a=rsa-sha256; cv=none; b=IcCAIKjmfGes3n8Im0fQhzfuMVM9bsWQDkJefLUq8c/O+lVNGfiiCj6eHfkHbuzsbdjASB ExZIYlqtzNmf7NTs+/UMvxNk7bS2ni4gavHIV5RoSDHtg8LQma0QMoY/n72twSo7SJeTuO tMGm/me0b0FEfAqg3+pfa+B+wMQpR18= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id C1888CE0B4C; Sat, 17 Feb 2024 20:23:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDD9AC433B2; Sat, 17 Feb 2024 20:23:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708201415; bh=4t7dPPQMhWfJU3cAARNkKz1sCE8G4qlxADkwZj7St1g=; h=Subject:From:To:Cc:Date:From; b=kF6WuRqjYC+NyxUMjH+o0NK2IbDxcQ3Y5fMeNaTVtxzFzw+uUMRpYEHgQXDKXOw2u dvrSiD8vdsg7LhDEZZYOxxuh7OS5yIcrcIlCKoE/AyHzNzk/Wf9Ji1HOs61XVXeVom ER/P+PqNvv7CFlIX9FJsyJKzrxaKEgrjWCZOTStruBQ+csnfkHVsRDoMsFkb0/rQAM DsrDqNFlVaFHRMVF0ZPcwXpQIP7mEeYTvm0kKv3bC/NJ83SJ5es0o/uiOHRV0BBysv SROfMZPQtkSrhi1OJ52lBACQxatd+qQ/P8m868HacGOMsYbmaunkCKOZd79wkFgaNF vR2r60ruFPdmw== Subject: [PATCH v2 0/6] Use Maple Trees for simple_offset utilities From: Chuck Lever To: viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, hughd@google.com, akpm@linux-foundation.org, Liam.Howlett@oracle.com, oliver.sang@intel.com, feng.tang@intel.com Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, maple-tree@lists.infradead.org, linux-mm@kvack.org, lkp@intel.com Date: Sat, 17 Feb 2024 15:23:32 -0500 Message-ID: <170820083431.6328.16233178852085891453.stgit@91.116.238.104.host.secureserver.net> User-Agent: StGit/1.5 MIME-Version: 1.0 X-Rspamd-Queue-Id: A35DE4000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: mfehkq4836xpk8mksd6swpr354hz8wdq X-HE-Tag: 1708201420-998976 X-HE-Meta: U2FsdGVkX1/DHyLoisIwUO0hGROdbQRJbhsmeAOvb+mz2nr52PQcRe1QHGJB20qfp0Q3QjyFWbIeKUgNSf6i9N4DkyfDZJY7eMkjwFGVT2oBXq7Jbs1hKg5+Zy1HjvA57If3FNj1Fbw5c1vXWp3J9cwg93aCPxJx7gqX92ZqBkFW3upPYBbHi8WYSXYNEnCX0Pz9t86Tz9iL7t/3diThsWsKj6XPI3J4UIKJpJupP33d5Te9WqYZxguHevDEVCFtLgYBn0rAVfKczPIZVbfb/FDza2zSFzt5ixfjb6JSDmjwOpujtB0jwpB5cfPU8WpW1G9rDyZupYTsFxn/GvYaZ4BnN7/zoX2Tk4yF3+DUxpQ0SnETnG/TX13aPqyGuDRdh/sEFgLaXNQYTvev3Kp81TsQ8r8dsdEkBDbqsN3R1wEohOQYdyfef6MVX5oTfs8r5h0cdYXUpt4BlOxgS0AVtwGA2XDmfcx10AGA0JBcLggwCWOydkjUSN4JQPHD4pqo7QuKDWrUwbEOxXuOZ70CgskJg770QgEQm7dvoa8Vy9WKW4irKh143wY8VOPr4mrzziCUoro3KhQq0OhGolJuevmMz1+bMhsx4o7q5N4JnrEQczbSqi25AMnciWjLLUJaZkKVvbj7preQ4NbXeoD13+CRB8bXZwGwXul0cXJ3d0bfeRVdTnxrok3zRN+EpeLJWee9HP1tNVtg3Xy3R0Czp5noHXzvzpnN/d/ctgaJCMMVqHvnV4ijzTuXjf4ki8XB4XaH9nInXpLBzRR3/6dsGsAhrr6kW7zHV6QSsIHzPQPrv3HQ/6AqiBAPTT6y4uEQ0X6hX/cVKV+7eC70WtXhv55VkQjjx1jften1vLeU+qUitrMUs9/a45G5p8bKu9i9iBU2PFW64mM9jtC8RVkr9ibSBPJYlwIvTlNYtjT2JGBUyN7pQE6m22k0O959aAQ7U1D3P/SKg0LmqdHD0fE 3Tjaku/U jSxOuQN4HrpCh+1NJDuxZund0BepJHp33z0jWO+uOAOCThnhNHzvxF1mOC9fDok1+MsvMmoumOSFr+gW74jaz6OALrF+dDlw/akJza55q9JmqDl/ZePXfPcjWzMkaWPzKfVkBrawRDQQNyrNJ0PmGA2hEK/6TUa8y9uaxtRw4+jI9i6rz4AU52RrByJj0P3bmohP+PraPQoQPBbD22iYH1wFXcX7WJ44K2Q58Jl0w693MtdJh6KDv1G/SOnS86knIADEMFB1VrxS7AQoTmN5fMvRV1qWwa9x0p4eqrudVe6VJnK4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: In an effort to address slab fragmentation issues reported a few months ago, I've replaced the use of xarrays for the directory offset map in "simple" file systems (including tmpfs). Thanks to Liam Howlett for helping me get this working with Maple Trees. I don't have the facilities to re-run the performance tests that identified the original regression. Oliver, Feng, can you please pass this series to the kernel robot? These patches are also available from: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git in the "simple-offset-maple" branch. Changes since RFC: - Rewrote and moved "Re-arrange locking" to the front of the series - Squashed the "so_ctx" clean-ups into the other patches - Clarified some patch descriptions --- Chuck Lever (5): libfs: Re-arrange locking in offset_iterate_dir() libfs: Define a minimum directory offset libfs: Add simple_offset_empty() maple_tree: Add mtree_alloc_cyclic() libfs: Convert simple directory offsets to use a Maple Tree Liam R. Howlett (1): test_maple_tree: testing the cyclic allocation fs/libfs.c | 96 ++++++++++++++++++++++++++------------ include/linux/fs.h | 6 ++- include/linux/maple_tree.h | 7 +++ lib/maple_tree.c | 93 ++++++++++++++++++++++++++++++++++++ lib/test_maple_tree.c | 44 +++++++++++++++++ mm/shmem.c | 4 +- 6 files changed, 215 insertions(+), 35 deletions(-) -- Chuck Lever