From nobody Thu Oct 2 17:02:08 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012044.outbound.protection.outlook.com [52.101.126.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B90B1F8728; Sun, 14 Sep 2025 12:11:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757851902; cv=fail; b=h39nzxa2MH74LjkfwF7WONRrLTD1R74Ft3jT2haVm3vCVXsqP4xlmr8msQrxcTkP5pXTcFNmgBB+rjMzZB85RN6eNq69SbDZNlGJ8sVXFfY7KFmJJ1vk4kbkKjiUy9/nBJ63RYn+DOZy9hAG7i5Stebuh+O4kZwLrLGSb0jw2Ho= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757851902; c=relaxed/simple; bh=y/Jcw//CvnHzKTWWtHKVlNYD4A/r/5WvrXBwuXJjJus=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=acpjbTuQejxssqCX+LFE02pkBjp/pL4Wfa3vCgHHi/ebKFXgZPHVuRbo2MHmIAV9vpctmryBQqczANOR93//TxhrQzXyYyNt/PKue+0NwMSv6f7uPOQiAXRMUlMfGeF1LXRpH9wEz2wupN9W4A+6P61J5ZQyaCkHDDPHV26uXF4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=AZSC/ke6; arc=fail smtp.client-ip=52.101.126.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="AZSC/ke6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HIMPtxhWEUXv0Q4mhiiVD1Tq24CrZ1ob+slg6B6KX1pMRxK86Ydhl3uTIs2HkoxTBESTghKbV4Bf3klyxngWqiMOMdGSW8GaBKIXs3mUjcscwG81UERxlIgJCmhMicVQf24zb0zcK7klR4HRUiW9Bzqp9hzljuOkYm8izVojgO04o4RxSs12sZve7yZmBR/SSjYY7nOMTjYKzRETndtW0V7jLZcVIVJ0UiSOFeVQlliJb1gFjH2JrO0BdoE24ge9lvJ/6PLvxVlptygiebuScPRToS20wI95xdh2FLGsSaPxhmjJPn+A2zQqLmUq+uWcje7RY8n389VNBiO8c4jnAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3QXP5VKxzMpyAlhq1NHPBw1EXClNsOQIPvNh/aihnhE=; b=lQy850u2hiV+HBR5wftUw66Wv460hNoBEk2u9yhn1ZrY86MErWMEYTbruLlUhgWQ6CKEcveV0y6OOeL12cMawNtLYAx62uJgWsTHQtaJ2dnq17bIuLW1k+5KoZuAkvq76OCY/5YwU3uabzEdUd/E/tahmCCCWMyNGTroRmLbN7rxRlmGh3rtVAiVQpFBoHGHKlRgWonAjsqk2e2GRRBR6+sY7bKu7McU30Sy8v/FkOBng5pL36FasFnpA5PpKpITy6XK9MfFwKQZr2+lfPM6Jj4pah8hfhSaKvoi1GrWToaDFmS8NlzXo8rNjZsNiuEdyxyph7Zf2sWM4RvtXEm9sw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3QXP5VKxzMpyAlhq1NHPBw1EXClNsOQIPvNh/aihnhE=; b=AZSC/ke6rNUpT7I43k2eSx7qmfv4gE7fRRi7ki7WfWnwLxaAehp8AicU3KLcrkOgi3W25vFAwDw1oxuI3+K95xvyhxWtlwQdlBS5J7mW/XAQ7c8nTNvpuUV6NoHj7E5VE/ptqI6OlJGTMZvsjqeMna8JHsNIylBwoseWVPv9VEcTwyMQL+MV+z3GCwZuoGTzUIca9lFlWmuQ2VEvMiylGvgOmY18wACEsprKMsB+BZHRnSlx//hkgvMUoh7HRLH+rxJyYIvyMtMiAXaWwnBTKDnC5czAQ6RzM0iUa6sM4upCnOnLuIQDlAjMQ/LRyeiq+Xbsnhp0eQd2fEw0s69UVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from SE3PR06MB7957.apcprd06.prod.outlook.com (2603:1096:101:2e4::9) by SEYPR06MB6226.apcprd06.prod.outlook.com (2603:1096:101:df::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Sun, 14 Sep 2025 12:11:38 +0000 Received: from SE3PR06MB7957.apcprd06.prod.outlook.com ([fe80::388b:158a:e14b:79c4]) by SE3PR06MB7957.apcprd06.prod.outlook.com ([fe80::388b:158a:e14b:79c4%4]) with mapi id 15.20.9094.021; Sun, 14 Sep 2025 12:11:38 +0000 From: wangyufei To: viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, cem@kernel.org Cc: kundan.kumar@samsung.com, anuj20.g@samsung.com, hch@lst.de, bernd@bsbernd.com, djwong@kernel.org, david@fromorbit.com, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, opensource.kernel@vivo.com, wangyufei Subject: [RFC 1/2] writeback: add support for filesystems to affine inodes to specific writeback ctx Date: Sun, 14 Sep 2025 20:11:08 +0800 Message-Id: <20250914121109.36403-2-wangyufei@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250914121109.36403-1-wangyufei@vivo.com> References: <20250914121109.36403-1-wangyufei@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0075.jpnprd01.prod.outlook.com (2603:1096:405:3::15) To SE3PR06MB7957.apcprd06.prod.outlook.com (2603:1096:101:2e4::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE3PR06MB7957:EE_|SEYPR06MB6226:EE_ X-MS-Office365-Filtering-Correlation-Id: b950a7ce-f80f-4776-45d8-08ddf387db1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|366016|7416014|1800799024|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?m3tl2E+0LysL/g5VOHszne9JqrEwchjD0Us/EyI142FGay/48oB+ZTO+rK9P?= =?us-ascii?Q?lbbm2jNPsTymF2MUAlkKnSXb7ZbxiY6IQzXnha8hsdKcD0EFgTEOTQvMlv9r?= =?us-ascii?Q?8E8oRxbWPTESdt+huCw9qHkibQbATleTVHyshN2EO8XPo8ui/xmzEHvPjzGj?= =?us-ascii?Q?BShYQUIWynKuuAKENiNKnhSkXioMV7APan3wcL/KBCUkF+8uPr0iV0p86qLb?= =?us-ascii?Q?OdOCR6RBgTEXzjKzVOpem1EUZ6JaxFdreW18UwCSDsn1z8Bs8Nw2PgR9qKF9?= =?us-ascii?Q?xPoez00uWv0/AaXJ62Qyw1Zwnmpa4nIr8inxxjyDrJxxhLA1VEfyz6tI1dlu?= =?us-ascii?Q?6LbT+a5u7l3DJbVLVWjQraj/DqOUcoplQ6uof1NL/akkDjbx2NqeJqt1pGJ6?= =?us-ascii?Q?7HiBM3QVvqojC8qifEs1Su3SDOwI1UBT1xrHZ165i8WAZ1PQAajhQjkvzFhN?= =?us-ascii?Q?wsB7Hi0M/vWrVSXhWscl53gOTlu1mPYw0YJLBZofuf6F+CcbwH54SmMsQMBD?= =?us-ascii?Q?XQVgEpkLLHfyp+mTK+3/NDDynJo0KOdhM3VZGQ5GTyzBAwR7UB1qlZ4HO2xi?= =?us-ascii?Q?8PoNmFvUq3AgaXbr5IlLF75HXKc50SHnASXBgqubIPdtW7XxlGj4TUi2w5Qy?= =?us-ascii?Q?tk7cyKaA2WUDI4U5fdJKhfbl6hC5I+9RntaCJtT9qzvi67J5d1xetD2Fl4lZ?= =?us-ascii?Q?HaXy0sBJV4fV8h+s7a+on7N0qzxU4wCJvClJsFD1bcopd61usbDi5zWBnjDy?= =?us-ascii?Q?em9oHUuT09m+NpI5ztEybeusRNvyy6uqMnOI6giL/7PSIyJ4j9Dfvx4y4Y2s?= =?us-ascii?Q?XlTRjk93vc2JhE7ceU+7Jjz3+uHVmUcWbWoW9KbYPvWVMlOD8SllYyuw+jAL?= =?us-ascii?Q?TtlHMQvGu28o1nQkLVNTGtCV4xuDRPqtuBCLy/458Df4Xlp363hIMgwPxszW?= =?us-ascii?Q?rqW9ucwKjWaoXh256CAe/0Mmj/nKfIGTPN2wX26M+5I6KnlWZmV3w/f5IxQ+?= =?us-ascii?Q?+RWnwL5xMfDiwdq3EnUTl4C5yZzTrVap1qmIEU6D+PKIBVkiOyAt9IEo5c8A?= =?us-ascii?Q?KvVTUgtdReM5jEHTbuiki68/u+2uxwkvXaNm2abEQfhWhPV1c7mmrcVUmbuX?= =?us-ascii?Q?MANN0/7TkNt/f95QuybcS2b5haMs57vSBlNHtwFXpH8NGeYdL2QeTf32odT5?= =?us-ascii?Q?e9PtEqoXhBP30p2wpJF6SdtbzbPDqdKcyDiB/yyg55SQFPWPz/7SrkS2j8uW?= =?us-ascii?Q?MZD0cEyocTZ+KMGTElQI0OulTfzio5TZ5D8Kaldns6pbhoywdxnGmSq+tNNC?= =?us-ascii?Q?Q0FgXEqx6xnNHIscXZSbftS1plblkjC8gimHA01rQJWGi5FT4L4BjvHOpiVG?= =?us-ascii?Q?U6cABhpeLXTIBmXavyewJ547pLmCz7QC7NiBYFbGOor9w6VKEE2qdkmtFHvA?= =?us-ascii?Q?BWNrdPWS9pEWvWBO5YfLnQLEBbCQtsXNAuM9VuPO2qdAmMjH5iMSgg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE3PR06MB7957.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(366016)(7416014)(1800799024)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?USVeD7X8atm2KZn0aoF7xL3gj99yOj8wT7vd62hS33xHJ5W4f5x30xjHg2ZY?= =?us-ascii?Q?/rYnQ//jNeAPXKVcZJD11hwd6PhQqacgD9dFbuv7eQksoNAbxP5oDXQXG2Ps?= =?us-ascii?Q?Lgzr9uJTgsZKYiTVuUrghnHsPeltvljFMUmskX+nq8dUNWP1uqKcz5TfBwdj?= =?us-ascii?Q?/rRiVKIoaIggMuppQLwP17OTt+z1kSPxome45aGIke0QGrUuW83LaXHydR+w?= =?us-ascii?Q?epsqsSEF2ZSv9MXMAUSppMkxz3kT+i/yewglpvDcuk2hn0nEpIHS/LHfwnEx?= =?us-ascii?Q?RuXYk8mxjFFnyy59eFmv9XtG4ylqf0f4J1PShQQfDKo2bUAMP4IRT6YPO657?= =?us-ascii?Q?RsvadMuOWe990JSMoIeJnUSKTDTK/2gEFPsiq4WXYV9xHRbqogmugs8J0bQ4?= =?us-ascii?Q?Yn0VmofYVwv3B5UiMaOn9q9Xyak1eFcAMP7K6pUcVuYoQOCrCu9T6kkthdFy?= =?us-ascii?Q?r70NjTa8FRtpZbEPKnMzVZ8jMyv9IkVs6C559T1NbNKTN5NXkgMpfWNL6SOU?= =?us-ascii?Q?Ld8jzc25Tz34vFLlaXQTRtZinXihoT2wmXUlUYsS4v7d6ZoNFKaeERWvw6xR?= =?us-ascii?Q?YZw1gYhShMBTezQB0APG/lzfowJPIkXvSp2PguqCIE0Tl4hHaRft7HUyJ1yF?= =?us-ascii?Q?0d/wAIdUJFagT6QqjExZcWH99/aXKvwqJrnWFEzDZkNw/lvTcrAB98rf1bOr?= =?us-ascii?Q?03KOf5rtV1/nf+XIegcjt4EmVE6nhrZzhYhlCxYVMo+Iy8og/ZyJusfp9neh?= =?us-ascii?Q?+Ivn61dZzdS+sVTReCsA75FqkKYTUnax+bajrCCJT051kSHlYcf2LzKCDwOW?= =?us-ascii?Q?YAEuhwsSVHHYe79hSMjC7GP8jhv50lzc6QCiW9CuDIMRGjJ8aaK7S3VQbcJv?= =?us-ascii?Q?k9cGUwT3/Ry9uNJlcP+vRcR4K9K7cQ+5qDMv2CO68dwusjOe+/1J/TI8E0jE?= =?us-ascii?Q?nRUDSDlCEDwWCyiboDmkUEBVCu4BDv65nZPZym/PmKtAUVL4GP0L+G9wps3s?= =?us-ascii?Q?3rRECC+Zf4FStFI56nebXc2cdp45fJ2huHEkuvkel09/HaXXdeQeVxSE35xO?= =?us-ascii?Q?UXP+MAudGeTsSCrl2EPOi29IgzlbWl4troTZSNueWhmefpLKSbk1WIktZnp/?= =?us-ascii?Q?sHutzg98OFbCZKNfRVrstSzBEg1sQYCTwx2rHrjqwxmKsknFccDZS2pxE00P?= =?us-ascii?Q?sTsSzKtvQd2FkayY8gE0sykvl3vcDBM77sbJDadkAUaz4TbjfaBalH4+2Oix?= =?us-ascii?Q?eM4pCeSfXOf748U0dBNbaZeArNGooZAua2mx4rOyxE7cqD5ucN1CO6ncSwxj?= =?us-ascii?Q?9LW77gD/KeHrVNObWFpaglWIRZFCN2xeYCyXZwVvnuMiQoDfcX4IR3G9NFsL?= =?us-ascii?Q?NCbt2IUdbt2z6NyvzGC9feyJAiNL/DKbaWQUEPkZp7B9301wlBHhbXWPrNo3?= =?us-ascii?Q?AWW5K2pUZfGhwaKKn5yRM+g7TadzEW1lswF0kH62b0VjBHri3jzXY54VKwPM?= =?us-ascii?Q?/B54WNF8QcD9ZoWutsgCu8IlkF6Bs5XgEq48KPIzW7268J3QSNLuP7Z7/SNf?= =?us-ascii?Q?RQgBDOollQ/ekrkYdYV6W760HfQTqXd6UnSfGHKE?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b950a7ce-f80f-4776-45d8-08ddf387db1b X-MS-Exchange-CrossTenant-AuthSource: SE3PR06MB7957.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2025 12:11:38.1041 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +s6sedeguzwaNgcLufcRtcl9zgqS2Pzzgow2W3nPiLpkkLvMhSZmu44mdBZ+9LNXmsrvVOMA/uat1lqUd2Gomw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR06MB6226 Content-Type: text/plain; charset="utf-8" Introduce a new superblock operation get_inode_wb_ctx_idx() to allow filesystems to decide how inodes are assigned to writeback contexts. This helps optimize parallel writeback performance based on the underlying filesystem architecture. In fetch_bdi_writeback_ctx(), if this operation is implemented by the filesystem, it will return a specific writeback context index for a given inode. Otherwise fall back to the default way. Signed-off-by: wangyufei --- include/linux/backing-dev.h | 3 +++ include/linux/fs.h | 1 + 2 files changed, 4 insertions(+) diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index c93509f5e..d02536f6e 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -144,7 +144,10 @@ static inline struct bdi_writeback_ctx * fetch_bdi_writeback_ctx(struct inode *inode) { struct backing_dev_info *bdi =3D inode_to_bdi(inode); + struct super_block *sb =3D inode->i_sb; =20 + if (sb->s_op->get_inode_wb_ctx_idx) + return bdi->wb_ctx_arr[sb->s_op->get_inode_wb_ctx_idx(inode, bdi->nr_wb_= ctx)]; return bdi->wb_ctx_arr[inode->i_ino % bdi->nr_wb_ctx]; } =20 diff --git a/include/linux/fs.h b/include/linux/fs.h index 6c07228bd..fad7a75fd 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2491,6 +2491,7 @@ struct super_operations { */ int (*remove_bdev)(struct super_block *sb, struct block_device *bdev); void (*shutdown)(struct super_block *sb); + unsigned int (*get_inode_wb_ctx_idx)(struct inode *inode, int nr_wb_ctx); }; =20 /* --=20 2.34.1 From nobody Thu Oct 2 17:02:08 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013022.outbound.protection.outlook.com [52.101.127.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C9B025F973; Sun, 14 Sep 2025 12:11:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757851909; cv=fail; b=P9aQAEhpnv+yCASs08J9D7kto9lz90bgXnLkK+fjL2TlV25+HRUEAS8AKapgbCZnc7+o9hLnZE0zmg1WrXfuB7+GWffyohH1Bq6DZ836PxHxgqQOs4wHBwgtFH5qF6Oz3tHeqnc7MJkw32He/I13mBtnK0LX4MZemShGX2B3m+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757851909; c=relaxed/simple; bh=zoT+zD1q4piqxuMQfttjuClrXaOU6gbiurLey/Q1F9o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Cclk2FN9DJb4+/TnKnHaxiCEclViOdnek1apOM/xSrSJNL8iPFFKx+31ihrDo+vkfzT5ptYx9u0iikdE6R4yiGF+Xin8qrHqan8s3h1idCgHsKmydjQWy2W2WnDloKoaq1VipsJSOpox2WABRQgAXmET/t/H2rzMv0IoHTbPd6A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=bPQnaizd; arc=fail smtp.client-ip=52.101.127.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="bPQnaizd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NIydWu0Tgi9jqjHxs0ZMGS9KDu/U8UhLmsaB8+J1mwc1S8Hv6hClKmFksqztcVdCEdrhgs0dboDwJU7rY7+wQpXMbZuH2YrvmZqFparlg/bbhfjJoBM0sodQGvXRIyH5BoiF0CXr+uCU5PstMOiNugeHs2ufqaMgnkxIjZFT8JSal6tmold0NmdpArKoUMrCqVgdG2yyBa5Ju538phCzzKk4G/7jeBmKtdr3NWUDkHGmH0WOXtYKkAB7YytghO25Bgso7rfiooezqB3og62QCzzyD9S4la57XgMaYNBUG0bYQ3esBe0BlAMG68sFh7egabXiXrbkzg0xZRVo4obbpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ENaaFpJSZVwr/uWMF1fk3AvD1iZiKh96qoGddOLwzHI=; b=C3IfX05wg3HqV5PBN6Qoxl7OxtHSn4DUSpwg+ne8RB64RaNuCPDhRMETr8clH5NzdWof6rrxjFfONcw/cw42qwngIAhA1gnNWxM/Efq/MhmRJ2gsHGS85lj5dDq9iZdPDw8lhRrx4HP9oFJ+JPn2Z1LFS2mncO55sQcU6gJ1pBqrtSLSNW66DmaULL3KC9j/D40vMnwltYVlKQkSziy72Fn3WIpeubPxLEYM/7OWqM10qDoZyMije66tBr8U1k6Egui0uQ64Njj1C8CfGbxQNKZEjfqrR/ViPZQIpSs4jguDd66M3djwnuuk+B85RHt+7ToA5Jl+3K8PjDarkTW3FQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ENaaFpJSZVwr/uWMF1fk3AvD1iZiKh96qoGddOLwzHI=; b=bPQnaizdEW2TaBbuj1+f6Vmd04fK10qPos9NAgIeEDbsOvEwPR4PIPxQP7aKEiXSSGH9wgryo8eew/Ig2LIlCJW9JyeH35OQpYqMDna0tGJuMHFEgIx0QiDBcn5endjCzGlpiw4n4Fc+doFdhO2XOg9G2VPMUa7MIt6eg4lPBpPj2qIfJz12cP/aAD5pxonWaBkh38etyyfYvui2rREomvBGYdsW7QkeC5895Ie0qDr71QTmk3F+GODQHlVfNXzjSsqwZqNxGSm+dQFE2vunSITbGAkO4FOFwpnJR5ohPq3miuemZtFo1vW/BolDxaUI8lqlBd+GS0pPLC93nyIFFw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from SE3PR06MB7957.apcprd06.prod.outlook.com (2603:1096:101:2e4::9) by SEYPR06MB6226.apcprd06.prod.outlook.com (2603:1096:101:df::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Sun, 14 Sep 2025 12:11:44 +0000 Received: from SE3PR06MB7957.apcprd06.prod.outlook.com ([fe80::388b:158a:e14b:79c4]) by SE3PR06MB7957.apcprd06.prod.outlook.com ([fe80::388b:158a:e14b:79c4%4]) with mapi id 15.20.9094.021; Sun, 14 Sep 2025 12:11:44 +0000 From: wangyufei To: viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, cem@kernel.org Cc: kundan.kumar@samsung.com, anuj20.g@samsung.com, hch@lst.de, bernd@bsbernd.com, djwong@kernel.org, david@fromorbit.com, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, opensource.kernel@vivo.com, wangyufei Subject: [RFC 2/2] xfs: implement get_inode_wb_ctx_idx() for per-AG parallel writeback Date: Sun, 14 Sep 2025 20:11:09 +0800 Message-Id: <20250914121109.36403-3-wangyufei@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250914121109.36403-1-wangyufei@vivo.com> References: <20250914121109.36403-1-wangyufei@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0075.jpnprd01.prod.outlook.com (2603:1096:405:3::15) To SE3PR06MB7957.apcprd06.prod.outlook.com (2603:1096:101:2e4::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE3PR06MB7957:EE_|SEYPR06MB6226:EE_ X-MS-Office365-Filtering-Correlation-Id: 17b8666c-a8ce-4e9b-5152-08ddf387def5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|366016|7416014|1800799024|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uV23DQG4D5eJL5j4oPAtSL9XGiEhHCxkyUVMr+18GT94UdJt0kaHCkbeZn7Q?= =?us-ascii?Q?pwwgeHtOPnO2usGbhxXgeJ9CMIgRqh22rlLUw2romnHMXQ1ffJ/hA5HBbWZB?= =?us-ascii?Q?Ws4ExQSxuWGD8cna2jO3hCJ5JnAutnRnVplaSyImqmNGQZn3ekT8StxfUQam?= =?us-ascii?Q?uk0FarhcpN3dahuJvjZZC0cbFF6HOihgEXUHOSxJOM2v975WQkz4aN4A1461?= =?us-ascii?Q?KluWzYUTUcyIr4Nru6RS7swW61g/QDXNN/QycCNYEGW88wy3ZJa4Va3O5fWE?= =?us-ascii?Q?bPf4havrz858mjq4mXtH/CFlJ1d2MyTKvoCo3KO/WgLX2jGfdshbShYTxh6L?= =?us-ascii?Q?cZZV2zUV5ZsSYI452CESaY2rBfOSkoVvQy6CroHKJSkA90M1IcVYwigGdc4u?= =?us-ascii?Q?hfXltQr3N9KqTHqJWf1A4u54Eai2iKq2JxeKMUdaNHH4si7TDM9YGAc2BQhl?= =?us-ascii?Q?NHUWZucohpRuuk4/oNZEnJcnCLCjUQ9MjEjXjMMFPRRo+y6lFXEHBczOx6x5?= =?us-ascii?Q?4tLYAyCRkzmdWGBXaTWWUhX2sY8SSJycQ4u6Mm3fZiiKcPYShfjKO271aBpr?= =?us-ascii?Q?JM+0bpWEEtSKUdVEDIEleKqF3Gd7FvzKsRhVKMn2JWlJcrsliJp/CHyZQfbw?= =?us-ascii?Q?O589Ad/sPEv1cceRzpxEQ0Wis6cpcQY5SGArqPB5B4fnkmVI7JfRxur0jYf3?= =?us-ascii?Q?atQMtnChLsufU7e8QIqGxzaClAr4RiYCf24/DWqG94nW/w1WV3nVdK4bxfXr?= =?us-ascii?Q?SV+e2RnzcwhXXrp03iqXV5JV4832h7IQd1D45OtvnO/AUCfmlquhePEFMNRB?= =?us-ascii?Q?3u+FLFm/DYrqc5TICtnvfTYRMpNtiNtQDSVjs1Afbc5Q+BHOe+K01Gh1cSQA?= =?us-ascii?Q?t69PdWbZIK+Kr+I+GmrJE+7XSBrrLIQ8TJvL2aGK1IcUQRYQbxIR777pUoft?= =?us-ascii?Q?Frfzerxq1VjrE5fHMr+HS7ORcgxl8MjAHgB4uRFbqP54bCMav2KrmEDReibx?= =?us-ascii?Q?8h67l+WjeKZXk/yyO2TO0iakFU2qbY/e52JFCAYwG0TRlmG8II4Ejs1n/WD2?= =?us-ascii?Q?umYRltaIFiLk8wtik5GqbNqs3V66NM2I+KHO4yX9XqGx+lRAUfTasqOFIoJA?= =?us-ascii?Q?jON2NIl6oRxiLED5rITiI4x+V/mEBsDqNWbTHwtqF5GTOzP/ZRwaDZtbSjB1?= =?us-ascii?Q?TGBrHvzxu4YNZ/gOwBJaQ8goqE2vfy8mkJJTPogD2K0JZm32/r3q+Z7/rqZV?= =?us-ascii?Q?RdfbdUxUmbQYahN9sOk6L1EeruleW91kjUMLqla79hJMNT2oJkHA7rHuPPUn?= =?us-ascii?Q?QMBJ2zAwX3rwxljl/cggzU26CLE8LZ3/SqINfd97LTJK8/3FE26LNzzc8Z/4?= =?us-ascii?Q?NDDs/zJIWlJx9zrDRBC/pGe+Hehzk8nNjG6r7i35SjXSNt9ID/sr4/coFc7i?= =?us-ascii?Q?f0SuxYee5vkEQk1wfNBh3TOXEIkhlkXULiD2PVWqUH8LnG9asTDdmA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE3PR06MB7957.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(366016)(7416014)(1800799024)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?s/7oz0AS8BP3V00Mt8fGnB3farsMnv2BtN4X9mZO4JEM9jqP0Qir12w5gwjw?= =?us-ascii?Q?baNjPD6WvVt+ztSRASCPgpeF8K7xy/OKlkKKcTW72utcK8jaVxt/LalntR+Q?= =?us-ascii?Q?QpGuUJ1P1GQvDoEuhmjONNGdzOJdFNOqbd7h/L5SLyPFcoUPkStDPtUiHSEg?= =?us-ascii?Q?2EkzniXLtV1Q2MbBnw3gUhFbDkI+sbcShgrjWElWa2I0VuWHpSzbK/I29qy8?= =?us-ascii?Q?AetU68x9WdZx4XJYfxp1tCfdd90biKTqEGCiyhcCdtnBkygFppcNVUajK5pV?= =?us-ascii?Q?yOlkF/VTli2RrimxbkK3TppVd+vkQxFbGXDwFgzAXfhfWlZFS+9qihECEGK6?= =?us-ascii?Q?0wbeHURa2eoNo2YZho0uhPmNtjh2fUFUDd2LxAcgbi05QIY+JEZWHsx1FaCY?= =?us-ascii?Q?Gm0aK8apgofbQ9ltsJig7awdncWFhUT0ZCZS+L4PHc6YBUttLvAoPaAEHbdA?= =?us-ascii?Q?LtsYv0Dnmvc2W688d5fDxB0Z8A8XLweUt9uzOi5a+qvLHaYNpU2zWY2tiEje?= =?us-ascii?Q?O+MAZS1U5aUhOF8zJb5Z7yi4yyEz9Ld0IAdMYBmP1hLkHxzVnb7rqWL/Zw6W?= =?us-ascii?Q?X10pDGu42P7F4ZixXARt9F2sLXBcMLT9GNr2Xbf6226kWg+HBQv62zLxCwEX?= =?us-ascii?Q?kppSTII3xPFs5LFqsNkbDfnPsVDR7jtOiHP59euBXg4JuBrVBXL9Z4aaEgcQ?= =?us-ascii?Q?lUZJtw9FJ81SSzEDdxTTO6qyoDOB844T0ssy5rBa1DUbPLHIzKNu3D1U+WCl?= =?us-ascii?Q?gHn77COiiYymQVkPm5w/WBLFtaV+ccBsDWbqepvGYbXeurs1eQgSw+fyXc1w?= =?us-ascii?Q?c2B/WdPn5cLx+40h1oosXiMhQn4oL0wkY3d1pSK5bt0UrZC/HzH+ZZ9Cew1A?= =?us-ascii?Q?ZTeOZy9tF1Mpk4B/zZOi0zAQv22mwWPO4wfdefxI63McE5pTT7oo3owQGNsa?= =?us-ascii?Q?9s4Ru09ujSTmODHtJNun1aGme7j0n2A6E6H9zb/BsJgH2PaaSPZb5yrFlRbz?= =?us-ascii?Q?Vhd1rJOcx4/Sg6Z//djJpSZwbEc572HQYk+rHzSVV42Rc/7YdTKR0yVV82s4?= =?us-ascii?Q?cpEUDd8W6gMlsZ7u1+33lRHwKFnKdpV6521oMWHuabevqiok1kJkq+qLMM5Q?= =?us-ascii?Q?4f9W4JnUpBGOCTrdUy2Izv3CvfffkFYuTLYaErA8xELAWU6O2JLoeh5wgJog?= =?us-ascii?Q?v+QrAs2F1B1qETzorajNfA8T99eTCN0wOE6Yda6kM7HXCXOvS3llvDgmIK7Q?= =?us-ascii?Q?XhzbEA9/+qCOm5QN3UT9THUergnLeViurFjwRFsrlSzIEAff3QbzCWSYRjMb?= =?us-ascii?Q?+jMn8JCB28mc4AqMmmwEm1zqNVPqSBJ5LFcpLjMLgYZDRN55e5mNjt53vw0A?= =?us-ascii?Q?4fb9jS4nLnVDQLMCO11kynJ7fhjcUmnoom3IKfVFXUWtjSubLcZrToXncunY?= =?us-ascii?Q?aOIjHzjcqUb+GkXHNtFzaqMZikcsQuOrV9jzsMv/LSPRx41wrIZg4IHYTKyS?= =?us-ascii?Q?TR8aCtNQrttsAIv8zFrkLwm319z6K3kHEZSzqv8k9Ia6HAEC47lyxrmUEY37?= =?us-ascii?Q?obLrLNSPt+C94cDF+Z02daEHuY1O32PWafYugCsD?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17b8666c-a8ce-4e9b-5152-08ddf387def5 X-MS-Exchange-CrossTenant-AuthSource: SE3PR06MB7957.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2025 12:11:44.5277 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wNu7xzq49i+mWCYyJlCrqSJascJV6mUzvV6/2VESeIQGfyoaZu7PeSkevfvtzVbahz1uwO23Cc56j6dtbZVhNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR06MB6226 Content-Type: text/plain; charset="utf-8" The number of writeback contexts is set to the number of CPUs by default. This allows XFS to decide how to assign inodes to writeback contexts based on its allocation groups. Implement get_inode_wb_ctx_idx() in xfs_super_operations as follows: - Limit the number of active writeback contexts to the number of AGs. - Assign inodes from the same AG to a unique writeback context. Signed-off-by: wangyufei --- fs/xfs/xfs_super.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 77acb3e5a..156df0397 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1279,6 +1279,19 @@ xfs_fs_show_stats( return 0; } =20 +static unsigned int +xfs_fs_get_inode_wb_ctx_idx( + struct inode *inode, + int nr_wb_ctx) +{ + struct xfs_inode *xfs_inode =3D XFS_I(inode); + struct xfs_mount *mp =3D XFS_M(inode->i_sb); + + if (mp->m_sb.sb_agcount <=3D nr_wb_ctx) + return XFS_INO_TO_AGNO(mp, xfs_inode->i_ino); + return xfs_inode->i_ino % nr_wb_ctx; +} + static const struct super_operations xfs_super_operations =3D { .alloc_inode =3D xfs_fs_alloc_inode, .destroy_inode =3D xfs_fs_destroy_inode, @@ -1295,6 +1308,7 @@ static const struct super_operations xfs_super_operat= ions =3D { .free_cached_objects =3D xfs_fs_free_cached_objects, .shutdown =3D xfs_fs_shutdown, .show_stats =3D xfs_fs_show_stats, + .get_inode_wb_ctx_idx =3D xfs_fs_get_inode_wb_ctx_idx, }; =20 static int --=20 2.34.1