From patchwork Wed Jan 22 21:10:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaegeuk Kim X-Patchwork-Id: 13947664 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 lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C6033C02181 for ; Wed, 22 Jan 2025 21:13:43 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1tai2g-0001ci-8W; Wed, 22 Jan 2025 21:13:42 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1tai2e-0001cY-65 for linux-f2fs-devel@lists.sourceforge.net; Wed, 22 Jan 2025 21:13:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=2eiVcM44tMFkHviX3plTK9CEgcTtDlCrv6IVmizxOFE=; b=IFZrpOuIVnL/VKb9bLFsYR5s6s mUHGaOY8Ms4TpLC7oMXa76qrJlmidNgqe0mKkC3I5JW9fYOU8Gj1YwKZeTnlA3J80xLw2PnY4mezl yqO5xYLXxpTR+FACyOV2q1vCwVQdQ0RwAEsHMV7cgIkr492aBRXn/WLNZ+ieM6tWLWkU=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From :Sender:Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post: List-Owner:List-Archive; bh=2eiVcM44tMFkHviX3plTK9CEgcTtDlCrv6IVmizxOFE=; b=f CvC4Zd5IAMC/2u2ksegBNon63gFSkdazAVQH4kJdIEjZahe1hJ5apIEnPs0159GfezGsufuM3eyH+ LfBckCRmL21TBtesIeO/hlHGDJu3tRUjqu3VdILH+/fYXFvUIfe9bu8q1uEhey+pwU6Wf/NTwD1/a DYDaX0YHgAXH/qdE=; Received: from dfw.source.kernel.org ([139.178.84.217]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1tai2d-0004zR-FQ for linux-f2fs-devel@lists.sourceforge.net; Wed, 22 Jan 2025 21:13:40 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id B54185C0136 for ; Wed, 22 Jan 2025 21:12:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2606C4CED2; Wed, 22 Jan 2025 21:13:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1737580413; bh=0IIibQ4WJD2rYcyoeUOj6S1TdAkiS8xdmqohf0Ol47E=; h=From:To:Cc:Subject:Date:From; b=CuPcm98IhmUQVEBCNSGT+ybIplellHYPogvAw8+YoZWPrUXaQHDSsAJVobVlrFp/r ct7vX+q16X31YF6cPz81hFyqMHCdw5z+Qb5uVM8xxLvNjElEG38UmWoTNP7YjfPXRA VdEDFxrWPa3tVPfcQkHasIQM7XzIv6BW3/qgDkwnMinopZ6zOvlMY3fsbLQfn17b5M I46Kd3GSn+2d7hQmp0Y9NpL40Qwwzh9g0ti2Q1NKOY8VnaiqMVH0IvOfkFqCoIrFQQ r1z4v2BlsZ986baD2qx5owKuj4k83SOHrAf9oLkePYKa3KbtbZBdWaeGjzv9bAJQBH Fg7FJPLNpdn/w== To: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Date: Wed, 22 Jan 2025 21:10:15 +0000 Message-ID: <20250122211323.3835557-1-jaegeuk@kernel.org> X-Mailer: git-send-email 2.48.1.262.g85cc9f2d1e-goog MIME-Version: 1.0 X-Headers-End: 1tai2d-0004zR-FQ Subject: [f2fs-dev] [PATCH 0/2 v7] add ioctl/sysfs to donate file-backed pages X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jaegeuk Kim via Linux-f2fs-devel From: Jaegeuk Kim Reply-To: Jaegeuk Kim Cc: Jaegeuk Kim Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net Note, let me keep improving this patch set, while trying to get some feedbacks from MM and API folks from [1]. If users clearly know which file-backed pages to reclaim in system view, they can use this ioctl() to register in advance and reclaim all at once later. I'd like to propose this API in F2FS only, since 1) the use-case is quite limited in Android at the moment. Once it's generall accepted with more use-cases, happy to propose a generic API such as fadvise. Please chime in, if there's any needs. 2) it's file-backed pages which requires to maintain the list of inode objects. I'm not sure this fits in MM tho, also happy to listen to any feedback. [1] https://lore.kernel.org/lkml/Z4qmF2n2pzuHqad_@google.com/ Change log from v6: - change sysfs entry name to reclaim_caches_kb Jaegeuk Kim (2): f2fs: register inodes which is able to donate pages f2fs: add a sysfs entry to request donate file-backed pages Documentation/ABI/testing/sysfs-fs-f2fs | 7 +++ fs/f2fs/debug.c | 3 ++ fs/f2fs/f2fs.h | 14 +++++- fs/f2fs/file.c | 65 +++++++++++++++++++++++++ fs/f2fs/inode.c | 14 ++++++ fs/f2fs/shrinker.c | 33 +++++++++++++ fs/f2fs/super.c | 1 + fs/f2fs/sysfs.c | 8 +++ include/uapi/linux/f2fs.h | 7 +++ 9 files changed, 151 insertions(+), 1 deletion(-)