From mboxrd@z Thu Jan 1 00:00:00 1970 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 378C3C83F34 for ; Fri, 18 Jul 2025 22:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Subject:MIME-Version:Message-ID:Date:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=tG0ga6XQjnnDGjUaO2wpPz2XwrgDZ/rNANbV+wdA+eQ=; b=GHERZzC+SlpfuQzV7khWY8nBZy 9ebnY6fI/FhQ/LPwGKv6Ii4vKE3bbJq4EShH6VaEjCOInR8IXF8ixKse8DjSqsFwpi6fDBGxuR+nz 3/QvF9WHHhCUzlrxfXEutWq+fXWxCMR9dKRICR8AbmdAb9LarLc6EkHPYKudRmZKE668=; Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1uctCD-0004ER-IS; Fri, 18 Jul 2025 22:04:49 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1uctCC-0004EL-Ng for linux-f2fs-devel@lists.sourceforge.net; Fri, 18 Jul 2025 22:04:48 +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=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=DWwPgpIQt6VilExBbMA4eVMmyA SICpH8wB3I58YSIj4I0yagyP3bCMP5wmcpa7pvcH0/k26W59xl580NSMDpQhXSkqNot5bHafrz0Iv jYUiu6NoorU8ULFZKz5HXFXEE/PFQwLlDQBX0bXfzPaEdnRIfRBZIm5t5IfMx6ynt08c=; 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=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=H aY8gbAKq9jy4yPBx5JWd7ym0hV/+KH9DYaQPlDfK3CsL/hdOR1KPSgc1bGO4Zgs/cAyFaz8VDeNXd zU7sLw5xb30BP7iVulNy4nDSANXZrLHATtD5kbW++v+xrLiZvQPead/s2MCooavS1OftnPHAMI4mW 6C4hT5uepvs/lyxo=; Received: from mail-pg1-f176.google.com ([209.85.215.176]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95) id 1uctCC-0007D6-Cz for linux-f2fs-devel@lists.sourceforge.net; Fri, 18 Jul 2025 22:04:48 +0000 Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-b31d578e774so2570346a12.1 for ; Fri, 18 Jul 2025 15:04:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752876278; x=1753481078; darn=lists.sourceforge.net; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=AVoqbRNEtDc0BP7hAzreOINcbHJKnaAW2DVpPBrXOP8BjACsHo23LRfcwbpnxcH+rE 21uElgMJ9SaOAG2w7f0Q/xbK+jjWrFvDbQ1xFea1yv+CAjmfOrYUQmvTpwRlFmolFQLp 1fDKp2nR7KY7gJv7HDODf8RMRyaeoLxXw46xyLTFl4ldewzLNhDtYGFbUpvcBjnsSsSs oez+cLXRvFZ9ZCnexWQbHqBa/IIAqHVB/FgDYVXx+x/PgLHLY57xhvfDE1N3rA8ooubu 1BSCFbpf1VHwKOC2U5wm/kwHg/N/2Y1l2c3x4QVdY+iPTb5Sv20Rv8ztt9siRvCnHPT7 7okA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752876278; x=1753481078; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=Awohk49VX/RyKZJXV9vME98c0/vOgrIb6TmBLsKklRLAPwXla8i5LB0fnCEoh4sWBb 97n0ReSxSTJEclWJvjkXnRINa5gbHJN31YYSiF2yNbqlP+vrUraWKrEA/ZhvPAVsyO8j qR19fdW83qF/Xt+DJejY8kBKtzdbwyeE8yuDrtz31ZGU6F3RFyoELzYwPPP2jJoNfiOz vfpxAYn7UicRI6nNuZAAdZ74Lg2YEFldmk9/gbpvplUxtLGgob7pUmFawdb5xB/86CFk /f0aRqlpi7kdXZRPRF1+O8SMuimBtHfOBu9gBdsAPyDyZ19LCK5zWnFN335CfuwKt9cL HSEA== X-Forwarded-Encrypted: i=1; AJvYcCXlILboDijlJgcuOhFOetsvxglwl4BfMNYe7F/ZYPSA1Zed+AYEGniR0CzjkNMzUBtyByAswKsBMF00DrfOS8AQ@lists.sourceforge.net X-Gm-Message-State: AOJu0YxwJ0hgvhLB3+x0g8zpMYUpQq/QmOKPCZ3yEn+BcVPIP+vcOvP3 r5KjplAX4nOOoEcw6bur+7fI0HEafZ2xNKM6CmwmX8MXbwPlYjzPB+KF X-Gm-Gg: ASbGncsqsamrg1U7zUWIYnENk6ZK/36psQDThZBXMh8OCoWMmAzVzhITvMQkA07OFo4 NLDJvP/cHM2/YZkhganbiy84bt5zODfR8C/4EnY4cZ0F5KHikcw60+oOUBc4Yi5wBaZdSpbpzgC GoiRsOCmp/K/+o0KJUpdqDIvz3RNkDBdGPkLXyB0lf0Ad6VrREVYXnPis0v5ggWWsKl8Loh2VDJ ZDgn9EoOvCTSXhPkNYQ+X1QjNVgQlfvdT2ZPi5by6tDLKVlZzUr4QKvQ88idpG6DqL26p/WFtvm 7ZSTszD1FIt2pCfGi40mhpD50L1FIL9vastlcp7fFjy+R1YQsNLQmHZxKeBhIku9+wpiAyAhgAN w9ns3muGncQ9s6EyFd+G0xzztE7ZhxG2BCmjquagC0cfbl0y8sweCSukhAA0pOK/VvVgLWKvP/b ORnxIa40csbrm8WA== X-Google-Smtp-Source: AGHT+IGQbuSHZnDK57D7JQm+lc791tZ8jnltH/uC9vUd5j5mSXBQn7TT7sy0xz1SYBKQti0d5gN9Lg== X-Received: by 2002:a17:90a:e187:b0:311:482a:f956 with SMTP id 98e67ed59e1d1-31cc03d9906mr7010038a91.5.1752876277557; Fri, 18 Jul 2025 15:04:37 -0700 (PDT) Received: from daehojeong-desktop.mtv.corp.google.com ([2a00:79e0:2e14:7:902e:59ec:cd2a:fc00]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31cc3f46ffdsm1847494a91.40.2025.07.18.15.04.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Jul 2025 15:04:37 -0700 (PDT) From: Daeho Jeong To: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com Date: Fri, 18 Jul 2025 15:04:31 -0700 Message-ID: <20250718220431.2290301-1-daeho43@gmail.com> X-Mailer: git-send-email 2.50.0.727.gbf7dc18ff4-goog MIME-Version: 1.0 X-Headers-End: 1uctCC-0007D6-Cz Subject: [f2fs-dev] [PATCH] f2fs: ignore valid ratio when free section count is low 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: , Cc: Daeho Jeong Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net From: Daeho Jeong Otherwise F2FS will not do GC in background in low free section. Signed-off-by: Daeho Jeong --- fs/f2fs/gc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 0d7703e7f9e0..08eead027648 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -391,14 +391,15 @@ static unsigned int get_cb_cost(struct f2fs_sb_info *sbi, unsigned int segno) } static inline unsigned int get_gc_cost(struct f2fs_sb_info *sbi, - unsigned int segno, struct victim_sel_policy *p) + unsigned int segno, struct victim_sel_policy *p, + unsigned int valid_thresh_ratio) { if (p->alloc_mode == SSR) return get_seg_entry(sbi, segno)->ckpt_valid_blocks; - if (p->one_time_gc && (get_valid_blocks(sbi, segno, true) >= - CAP_BLKS_PER_SEC(sbi) * sbi->gc_thread->valid_thresh_ratio / - 100)) + if (p->one_time_gc && (valid_thresh_ratio < 100) && + (get_valid_blocks(sbi, segno, true) >= + CAP_BLKS_PER_SEC(sbi) * valid_thresh_ratio / 100)) return UINT_MAX; /* alloc_mode == LFS */ @@ -779,6 +780,7 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, unsigned int secno, last_victim; unsigned int last_segment; unsigned int nsearched; + unsigned int valid_thresh_ratio = 100; bool is_atgc; int ret = 0; @@ -788,7 +790,11 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, p.alloc_mode = alloc_mode; p.age = age; p.age_threshold = sbi->am.age_threshold; - p.one_time_gc = one_time; + if (one_time) { + p.one_time_gc = one_time; + if (has_enough_free_secs(sbi, 0, NR_PERSISTENT_LOG)) + valid_thresh_ratio = sbi->gc_thread->valid_thresh_ratio; + } retry: select_policy(sbi, gc_type, type, &p); @@ -914,7 +920,7 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, goto next; } - cost = get_gc_cost(sbi, segno, &p); + cost = get_gc_cost(sbi, segno, &p, valid_thresh_ratio); if (p.min_cost > cost) { p.min_segno = segno; -- 2.50.0.727.gbf7dc18ff4-goog _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE0B517CA17 for ; Fri, 18 Jul 2025 22:04:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752876281; cv=none; b=jXb23uuZ8o0sHgwWrjyYGvtDKyq9ImrqVxDP6Sq8A/kS1Rko7/jBWWrJydZDncvRtisgF4C9d/HqC3bS9wCBxQ7jxU5AYwBXiWBzt4bvCse4n2OwOg1l72j23dsDFolI0WVegSQ1Qc7dsQNqJHwb9vZZY1RkZXUC1H3MDrEptQA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752876281; c=relaxed/simple; bh=3DjuYLXtAsYQlyObqLWduTsvcR7X0g0x/sJxh6ampsk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=mPoH/SIZrHxvA+nuIW6Gt7FmxQYL9g4KR749WxTaCF3twd+8JCeJplCtB1c/FmGeMTlnEB3O/47tbEu7JPUkumwa4iBgp6m1WIWA3my2JMy24oPX0V4T0Wfsx96+m4CUlk6PeSt6QTLcatCQUzLTiPIXSY/RF/Iuwbdsob70hM0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FIcF68u/; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FIcF68u/" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-b31e076f714so2586424a12.0 for ; Fri, 18 Jul 2025 15:04:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752876278; x=1753481078; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=FIcF68u/9eGO9wRqhQsAGtfflBY8kfbl07+EjcODDALI8r4+aWkPb4oZ8Trmc9s78u H9TKJ44pKW+H73mTRlAMacmC7TRdoxShzZvrsrhnRowGrOhYGAaobA4waH6KNC7QVx5O 5NWIZSHdKuTWo4GQEm6W8t0km0y2JZX2JeVwU19WrQDuZziwx3FYtSmYfRdcNXMIacD6 66smxVAAi7AX0jxmf090BDMyUPCUIWOzULkqx6cPMk6UHe2Ri7lW4qlt8LcjtjeoTrgo J7SGpnWNK9g9zcZ1DKcGsVhyHt/eTnbBuqNv9bHRQQyc0Oq6zN2qadhXneIhT/XivdAJ 3Rug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752876278; x=1753481078; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cotPtNUE4rLZJyYjdxBKbaVvjccEgnkQtK9k7m4RQqQ=; b=aXq4uxpXjXFypfGu2FprzvTsPXUFON+ZEsLbDYf9RpwSK1IGl40UEc5Lh5Km2heu/a QzrhUqN/dl6A/wHbYVRxJQJevWUKL8O0LQ/0k2frmNON0OODt84juH81pRKzu4KN5adu sFRZvi7UDS2TZP3gPy0l/QHj5NzgK8m18z7Yqla8XZJvmOD4v+HJ9Mh62g4RKFZhkZTF wPfLy2BAJB1p8RXikja9EJK1ZTYqQGUAn71IuHMsciKMfFW4LJ342lur2hEN+OR8flVW UKlRH97XdQAUqUOd4V2V/A+MAaGEu1b0WJMxCSHXkWo2e3xARQX8Twc1P4sq4DhIH9gG rqAQ== X-Gm-Message-State: AOJu0Yz5xrSbPgRSh3jy0wN8tUpZWWzFyabk2G+HXV8kkRMpqCuXe0Vv M22rT/EuWl4m2Aahjq91sxka8SQ0DykY517P3/YXPbJRf7tC3NXTO7fTYm5LmA== X-Gm-Gg: ASbGncsLV34q47HWOhVbhxEVY2XyHZTcb77Ct2SWem1eaZCRIe1wYoaRL1Cne7nvInX MPKlTqtZ9lIyNVh0DzfPEe3+dun6ym/I8NL3aZy4Y1Ke/2p7TotRVYLOAJapA0uhQ1k3kOUQFZA 0Qd61eQkX1xpM1RVQGlQVukWowyEQR3t/qJ1ttU2VaB3Kdd0VOTWtOXUKK1cXtcb1c3uEFKf2ku iAPnpo3zfglTkqo6Ve9ZXsW3WY46jCNsQs6NyWJ5xu9Xnnl0VR/uyI4I4BW92eUEzfaWBzox5Ov WVnPTWE/FuQDG9UmxyY8K9IYwIMwAXmsxtntjPXNDvQBA/ge9DlOep3nX1oQBZC0pAWL+ZMSe2x PSogWwqKd7kUdLooiTmVfBe1KN9SbXNby7COX+oqG/74wzF2ELBd04/R/eCLkW9SDQVTnZfmGW3 Q5y6UzVGB62sRwog== X-Google-Smtp-Source: AGHT+IGQbuSHZnDK57D7JQm+lc791tZ8jnltH/uC9vUd5j5mSXBQn7TT7sy0xz1SYBKQti0d5gN9Lg== X-Received: by 2002:a17:90a:e187:b0:311:482a:f956 with SMTP id 98e67ed59e1d1-31cc03d9906mr7010038a91.5.1752876277557; Fri, 18 Jul 2025 15:04:37 -0700 (PDT) Received: from daehojeong-desktop.mtv.corp.google.com ([2a00:79e0:2e14:7:902e:59ec:cd2a:fc00]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31cc3f46ffdsm1847494a91.40.2025.07.18.15.04.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Jul 2025 15:04:37 -0700 (PDT) From: Daeho Jeong To: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com Cc: Daeho Jeong Subject: [PATCH] f2fs: ignore valid ratio when free section count is low Date: Fri, 18 Jul 2025 15:04:31 -0700 Message-ID: <20250718220431.2290301-1-daeho43@gmail.com> X-Mailer: git-send-email 2.50.0.727.gbf7dc18ff4-goog Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Daeho Jeong Otherwise F2FS will not do GC in background in low free section. Signed-off-by: Daeho Jeong --- fs/f2fs/gc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 0d7703e7f9e0..08eead027648 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -391,14 +391,15 @@ static unsigned int get_cb_cost(struct f2fs_sb_info *sbi, unsigned int segno) } static inline unsigned int get_gc_cost(struct f2fs_sb_info *sbi, - unsigned int segno, struct victim_sel_policy *p) + unsigned int segno, struct victim_sel_policy *p, + unsigned int valid_thresh_ratio) { if (p->alloc_mode == SSR) return get_seg_entry(sbi, segno)->ckpt_valid_blocks; - if (p->one_time_gc && (get_valid_blocks(sbi, segno, true) >= - CAP_BLKS_PER_SEC(sbi) * sbi->gc_thread->valid_thresh_ratio / - 100)) + if (p->one_time_gc && (valid_thresh_ratio < 100) && + (get_valid_blocks(sbi, segno, true) >= + CAP_BLKS_PER_SEC(sbi) * valid_thresh_ratio / 100)) return UINT_MAX; /* alloc_mode == LFS */ @@ -779,6 +780,7 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, unsigned int secno, last_victim; unsigned int last_segment; unsigned int nsearched; + unsigned int valid_thresh_ratio = 100; bool is_atgc; int ret = 0; @@ -788,7 +790,11 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, p.alloc_mode = alloc_mode; p.age = age; p.age_threshold = sbi->am.age_threshold; - p.one_time_gc = one_time; + if (one_time) { + p.one_time_gc = one_time; + if (has_enough_free_secs(sbi, 0, NR_PERSISTENT_LOG)) + valid_thresh_ratio = sbi->gc_thread->valid_thresh_ratio; + } retry: select_policy(sbi, gc_type, type, &p); @@ -914,7 +920,7 @@ int f2fs_get_victim(struct f2fs_sb_info *sbi, unsigned int *result, goto next; } - cost = get_gc_cost(sbi, segno, &p); + cost = get_gc_cost(sbi, segno, &p, valid_thresh_ratio); if (p.min_cost > cost) { p.min_segno = segno; -- 2.50.0.727.gbf7dc18ff4-goog