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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52A8BC83030 for ; Mon, 7 Jul 2025 23:47:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D8396B03D1; Mon, 7 Jul 2025 19:47:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7628F6B03D2; Mon, 7 Jul 2025 19:47:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 651AA6B03D3; Mon, 7 Jul 2025 19:47:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4A29E6B03D1 for ; Mon, 7 Jul 2025 19:47:05 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 13D65C01C3 for ; Mon, 7 Jul 2025 23:47:05 +0000 (UTC) X-FDA: 83639106810.07.8FE1EE3 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf14.hostedemail.com (Postfix) with ESMTP id 28AD9100008 for ; Mon, 7 Jul 2025 23:47:02 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gjQw6OdT; spf=pass (imf14.hostedemail.com: domain of joannelkoong@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=joannelkoong@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751932023; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OdGYSGKF0yFRva8stggfVno3BcRuAvK5kKP1ryZLRnY=; b=8bnvNpjWf9quAoWEo9tdSPCv2jemXUCU1BfvEtb2Vhizn7tolN2zl2rgAy0U040iXcUvdX yb7QmjjVoIh3vPWnRtdAe7n6gnPc2sraaMoWejUa2Y5XxpP/hlYOAS7M7B0NWYopWfbjbM slRVsqoOsvssmUkY3G/BI4gJgB0QMDs= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gjQw6OdT; spf=pass (imf14.hostedemail.com: domain of joannelkoong@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=joannelkoong@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751932023; a=rsa-sha256; cv=none; b=imXyVsQv06GILRqgIZhzrPHWKv9qtym4vtH8quoCwNwz9FISJGtmOzuEU70T/9Gyc7E7xG 0Pl1sNNcz0/RnFdjimB9vmN29L1Dew1VK/wG3RHZ+OCCPW8p+xv9jv8xCHKIXutd61LQnh OqE+RibNHJ9s8kg954uor1/8mlJRy2I= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-7426c44e014so2894388b3a.3 for ; Mon, 07 Jul 2025 16:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751932022; x=1752536822; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OdGYSGKF0yFRva8stggfVno3BcRuAvK5kKP1ryZLRnY=; b=gjQw6OdT+okKcr7zcjpRK2b3jNx2TQEpFZexV5Snz3khqyDoUzOUO4OiPknxl20xBm bYzu4hg4WCDE/UN2VISBR2dWwPw6qv+GfVtV9Rjz2WKRFBDF3W+Z0P+OsPy7xo+6kRD7 cyQdxZHp83CFBfaovaK9wR/PCqd8TpS4Hl2DonBfSGTtmSLVhnVfIIVBl/BNA7Zqhy2f IVZ1n983ztCaz3YuNIyvVkXG0/HVEvmSvbhbvZKqVqim1WwBq02+4rbJi8bFzM7tWx8b Z/vskFTEjVHrz9R16dgf3md46VF8gDnkMEaDV7fnVqVhecPKcq31m2Suntc79m6YqzhM T4Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751932022; x=1752536822; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OdGYSGKF0yFRva8stggfVno3BcRuAvK5kKP1ryZLRnY=; b=Wu52jaBuhPQCvr682D61sRhBo/hKApVAo+ivehlsI162l9j60Vy0XMrguQhIYcwLfY 0yhH3WiXnD+sMNd58o8bo+U+c+na6zZdz7GOHEkY7gwjchea+vMmJnzxvRidYdV4Gtfz raB4wzfm5lLNXXtdM+i71RV7R3axIlF+YDeCLAf2uzBlmInsC5WS1VgQYOyrE3jKBZto VzPuPd3Vg2BPVVKewnLqTR9CXc6ZvmRAEMe/OH3Jmdp8OVUHGcakJVP6iMG7Er5oKxkt XYFskAp0MP6zpLn+JUgkKot0N55ynxm0ioqQu8ltpYEtVLICqaeNWxUugnGk5wImCB9j yubQ== X-Forwarded-Encrypted: i=1; AJvYcCVLS/ZmLAAeK3dZkbUHcHdSe67eD5FmS4XEhwfHbvZ+oVnRz2Iuj5CtO659DajLV8wSmWiIWvnCgQ==@kvack.org X-Gm-Message-State: AOJu0YyVo1lBUNsfDUtYCEfbQJBXoCA3ArHIeZaN3ma/h2aNNd9wA7j0 vPFfrWOLD2M5ecQyYJ4g5jAKN6uoWWTkJgL80vS/MkQVWvMNazwyML1C X-Gm-Gg: ASbGnctPI/GwTP2X7WL6wVKMv/aJ5oNVvY7c/gyYcsyZPJv38A+htWdGI8e0BB9QHeh S6EV+MPrX8q0slA58rgrcU8oAgFA0ynKirBh/ycv6rwG1CNuxZ4oWQg0iKuHR/dQb50ZJK9nxY5 rFGwvqXSYN3M6m/gNA4hbjwGWXqSo9hiV9sx5UL6uuKAtAlcnRID0kVSq9TCHmG6Hu8PLabbJI0 qLK/uCTAf903J/35h9juIyyShuB3EguaQwpKB5Q21BuRLl5lacRvjxDHOLUdkYAx2H/xb1Klc6g eC4QVp4TgtxILcoqM0nHh3xmeOu5p9Y92MV/vD26wlKcbyZauvHTZerIOA== X-Google-Smtp-Source: AGHT+IHWHr7ssfLlhBYcNXtN/lq/1wEoA1hp95PFcXkQB/s/MLmSSxLOazWdl/RLxCJ8k39mTTfzKQ== X-Received: by 2002:a05:6a21:920a:b0:1f5:882e:60f with SMTP id adf61e73a8af0-22b438d2707mr1122970637.17.1751932021912; Mon, 07 Jul 2025 16:47:01 -0700 (PDT) Received: from localhost ([2a03:2880:ff:70::]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b391adf1f08sm3440595a12.33.2025.07.07.16.47.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Jul 2025 16:47:01 -0700 (PDT) From: Joanne Koong To: miklos@szeredi.hu Cc: linux-fsdevel@vger.kernel.org, david@redhat.com, willy@infradead.org, linux-mm@kvack.org Subject: [PATCH v2 2/2] mm: remove BDI_CAP_WRITEBACK_ACCT Date: Mon, 7 Jul 2025 16:46:06 -0700 Message-ID: <20250707234606.2300149-3-joannelkoong@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250707234606.2300149-1-joannelkoong@gmail.com> References: <20250707234606.2300149-1-joannelkoong@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: ywum8oxzqqk53qwg5uoi685r46tkdj7r X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 28AD9100008 X-HE-Tag: 1751932022-900344 X-HE-Meta: U2FsdGVkX1/99dLwF5ZNyBWKmYJ83Dw5CV2Z24NaqM9W2sloR/w5w6oHpvriZHO2bv1Kfu2gGfxNPe8bk55fdstQMGPZ8LTaEcW8irdGKnXVXUjY5lZiZLY+KgZKJu8bSe9A1mYkW3RDtI98RF1QJrqf8ylntUmxL3DOJgIUnkuvw/YZptJiLgFo/cZHX2TaIxAk24d89qEs+lVld1r41GfZJk1PGvykshbVfKDlHIto7fu4aFd+w/INwdaLDoYlgeL4LPs31uusqIF7ahwAVMi89r6uz7qs2N7Ypgfv+L95NZJY59I7UBuZUS+UA49MyA8NLzNKb7zlTC1cBzlboOm+h33OlMEey08OmUHN+GJ62wlGRz7tIeit1qOAbHfM9oZ/GO+lDe2UwYIS6G8ku5xElPcayf2+GK+D8luMGaF9k+psZrJ2r8erZcixNbaPVFwDDVjNsoXYWSsj1Nbt/AMKt+6r112KosCAEiXVWOKTHYmeTJ9fRtDGNMcxo0esKlsTR4YwAl2ReljKv7z9rpAuaHRWBdymuWF+FG0jQrT5rab0CnlyIZd+Tb/hH7DxpQUWaOvLDGv0qpvSmHbRVbu1GaDaGJ02ig5Qa3YK2Ng0djI5xKjIuCowtlaJUV4XfDym+hCB/Vi6oNejO2Mh+AJFKwMjJPJ3q2dMrkLRsSxN3eFVZKJoATP30YbZg60DkDeM7vLbiuHnshH6TDF3bKe3P7oFXiSDmTAu9SCG1vLgb/0+Dt69zgPO4edfY1ZLOgSwnWQsqPFPyFgMAXHL6gUETdNjq1gpwg0vN936/Mb6sbyz9s9ebTyzfAngWDXgxKftigvA5mB+ggcs4TIdkzxyLeohzyLTkX8fhhXrjUpDH5oKDApo08fEsX6GKl9vgeH5b63qar7AmVBacT1jbY8UCRB1WBkcPnI3+yAI6F71zEG5FRvS5qgY3M7UMP/uOXOezejmhQk9wOVqC4n f39+7WWZ pa0XFfudWL3FsszjFFB7DXXvK7ZYWDphoegcExP3aZZEApZ3kR5ebiCTwo7fOJ8DgllOFbJB8f7O/k9pNKEFULRlvnhr5IGyI7ISFCxK7zASqYZSPlN4CwjKa7Kxnp9WI84nZhBbdFVcbsdT5MaaKmE2ssjc4xA/85CnCQIT0EyiXoMRNA6fCCAh5skZ0lwSwt2NaS22V2kJHJObbo5ICXBA+jtsyRhFAyAAMdY3YoV7BCkPjfw4kVMSHLiZQulUn/sqUUUX+x0tKcrPGfKhqzEhIwIhKkNflFBTT29e0ISMdf5scXNVuYAx3tr+Uuv5TzKy/vtQvag5yz79rZGKZXgGYfkc4PtWtfaQh3hyyMTC9+0t3xq2lAr6V+RdFihRKkGGwPpXPFiOn/X9MQ4ITKNkXNAUealYJnjHEuio3YKf+m55Kiaze2uFoyltxq/fYYXTMUDVsFx1/ODuhqVYIl+SYeAU5175gNt8c5v7sNM2R+n/c/dFF1GtfFRKZnu43LZcHkDzHVVd0zNY4I0cJBYYJ/QNDFEZsV5DWh/x05S4PonG8/hCaA6Fcw+Q+NU3iynpU 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: There are no users of BDI_CAP_WRITEBACK_ACCT now that fuse doesn't do its own writeback accounting. This commit removes BDI_CAP_WRITEBACK_ACCT. Signed-off-by: Joanne Koong Acked-by: David Hildenbrand --- include/linux/backing-dev.h | 4 +--- mm/backing-dev.c | 2 +- mm/page-writeback.c | 43 ++++++++++++++++--------------------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 9a1e895dd5df..3e64f14739dd 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -108,12 +108,10 @@ int bdi_set_strict_limit(struct backing_dev_info *bdi, unsigned int strict_limit * * BDI_CAP_WRITEBACK: Supports dirty page writeback, and dirty pages * should contribute to accounting - * BDI_CAP_WRITEBACK_ACCT: Automatically account writeback pages * BDI_CAP_STRICTLIMIT: Keep number of dirty pages below bdi threshold */ #define BDI_CAP_WRITEBACK (1 << 0) -#define BDI_CAP_WRITEBACK_ACCT (1 << 1) -#define BDI_CAP_STRICTLIMIT (1 << 2) +#define BDI_CAP_STRICTLIMIT (1 << 1) extern struct backing_dev_info noop_backing_dev_info; diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 783904d8c5ef..35f11e75e30e 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -1026,7 +1026,7 @@ struct backing_dev_info *bdi_alloc(int node_id) kfree(bdi); return NULL; } - bdi->capabilities = BDI_CAP_WRITEBACK | BDI_CAP_WRITEBACK_ACCT; + bdi->capabilities = BDI_CAP_WRITEBACK; bdi->ra_pages = VM_READAHEAD_PAGES; bdi->io_pages = VM_READAHEAD_PAGES; timer_setup(&bdi->laptop_mode_wb_timer, laptop_mode_timer_fn, 0); diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 72b0ff0d4bae..11f9a909e8de 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -3016,26 +3016,22 @@ bool __folio_end_writeback(struct folio *folio) if (mapping && mapping_use_writeback_tags(mapping)) { struct inode *inode = mapping->host; - struct backing_dev_info *bdi = inode_to_bdi(inode); + struct bdi_writeback *wb = inode_to_wb(inode); unsigned long flags; xa_lock_irqsave(&mapping->i_pages, flags); ret = folio_xor_flags_has_waiters(folio, 1 << PG_writeback); __xa_clear_mark(&mapping->i_pages, folio_index(folio), PAGECACHE_TAG_WRITEBACK); - if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) { - struct bdi_writeback *wb = inode_to_wb(inode); - wb_stat_mod(wb, WB_WRITEBACK, -nr); - __wb_writeout_add(wb, nr); - if (!mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) - wb_inode_writeback_end(wb); + wb_stat_mod(wb, WB_WRITEBACK, -nr); + __wb_writeout_add(wb, nr); + if (!mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { + wb_inode_writeback_end(wb); + if (mapping->host) + sb_clear_inode_writeback(mapping->host); } - if (mapping->host && !mapping_tagged(mapping, - PAGECACHE_TAG_WRITEBACK)) - sb_clear_inode_writeback(mapping->host); - xa_unlock_irqrestore(&mapping->i_pages, flags); } else { ret = folio_xor_flags_has_waiters(folio, 1 << PG_writeback); @@ -3060,7 +3056,7 @@ void __folio_start_writeback(struct folio *folio, bool keep_write) if (mapping && mapping_use_writeback_tags(mapping)) { XA_STATE(xas, &mapping->i_pages, folio_index(folio)); struct inode *inode = mapping->host; - struct backing_dev_info *bdi = inode_to_bdi(inode); + struct bdi_writeback *wb = inode_to_wb(inode); unsigned long flags; bool on_wblist; @@ -3071,21 +3067,18 @@ void __folio_start_writeback(struct folio *folio, bool keep_write) on_wblist = mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK); xas_set_mark(&xas, PAGECACHE_TAG_WRITEBACK); - if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) { - struct bdi_writeback *wb = inode_to_wb(inode); - - wb_stat_mod(wb, WB_WRITEBACK, nr); - if (!on_wblist) - wb_inode_writeback_start(wb); + wb_stat_mod(wb, WB_WRITEBACK, nr); + if (!on_wblist) { + wb_inode_writeback_start(wb); + /* + * We can come through here when swapping anonymous + * folios, so we don't necessarily have an inode to + * track for sync. + */ + if (mapping->host) + sb_mark_inode_writeback(mapping->host); } - /* - * We can come through here when swapping anonymous - * folios, so we don't necessarily have an inode to - * track for sync. - */ - if (mapping->host && !on_wblist) - sb_mark_inode_writeback(mapping->host); if (!folio_test_dirty(folio)) xas_clear_mark(&xas, PAGECACHE_TAG_DIRTY); if (!keep_write) -- 2.47.1