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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76E1EC433F5 for ; Tue, 31 May 2022 23:14:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346363AbiEaXN7 (ORCPT ); Tue, 31 May 2022 19:13:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348646AbiEaXN6 (ORCPT ); Tue, 31 May 2022 19:13:58 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CAAF1985BD for ; Tue, 31 May 2022 16:13:57 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24VL1jYa002523; Tue, 31 May 2022 23:13:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=05E6pP9nd0bZgE17VVUX7hQa001QRXC+vFFSqCU0p1U=; b=ELQGH0FNjBwktn58uBAPVg0rO7cRxMJScyUOsbRfCxV7bjpDPP12xaktP7oR0NAVp7x1 pgQUIIvSZvaK5a8oifg4Z2SMv3G5REKihqTVMOuFTCGoYDT+2LCeZIPBAKeyyFKzjjAa I9mCQjneuzUVkarVS5ve0u/qKNdT8QJeQz6TdiM72H9+ericQmCaKJFWDzu1kFmWA3sR Clti5EEvWdlXlPtVTOWu0Drl+OjonNzoejHkxXCmy7n9+z2vW8gFWiQbM1wGGmwIHydH PnDoIelUO+NRohgionnms6F/HqonF5Plud2g1bl6x6mnydkCOXyrkzpXR7Pov1XIqOmc mg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gbgwm628e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 31 May 2022 23:13:54 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24VMu8bc037386; Tue, 31 May 2022 23:13:53 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3gc8p2u2hr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 31 May 2022 23:13:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=atQSmYtcE/hCT7b+qRDv5ztIrj7T6doYqXRgHfWNuqOR91bMEECaPrEUzSMrn5UdhdfTsixJAR6BYNVd5QP7fUcDK7zHxiqecpu8vdbvxGXaAhxR4QKPBrLu/uMHqy3McmTabAlTc3bomyv8Sbw0A1DvktaqPtVirLmmxiUMu8jDKGb9cAv18+oevcKWrEpR/7IGAEHEmbAB3KzJLCpYxniDhtTjd7dkK31bQ6wRQ/HB352J8EXzCA6rR+tgW/NjBb4ncSvOGwJbwwgvfsML5Xu3GOwt/T3FZHTpcfQY0npB0XYAQ8WskVZW3/9vCB4Iai24pKylP5tGV5btVmtEEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=05E6pP9nd0bZgE17VVUX7hQa001QRXC+vFFSqCU0p1U=; b=h377uDOFf+K98LJAZMbGdq1Ha5qmcVBas8dBdOPas9zp0DOjA0eFpbRnL5ndgTrA3qQ/yPF1TI8NBA/CLLCC/LDyzjB0OmVyWCYZftMNtd5giRE6vu9BzP44gXdlUiSGwSmf8KIZ9W1+ApDJw2XUKlkBM2gnWUtuHxuZhwZiqmYNnKCMprUcP1ludpazq2J1adNkuuyKGXeTqGOUYy71mmPsOyUYj/TiloK14dk/vXM+sHbDxf9PZA2PDG0EKuWNeTKAcKfH4yD11W3P823SwvWIhaUK35bqGFO6yKTeukOUEpGo0B9YcAJlSk5gxHafN3s3hgA7fkHiNcZPM8Sw+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=05E6pP9nd0bZgE17VVUX7hQa001QRXC+vFFSqCU0p1U=; b=X4A4sDhBISO0R3vMdK2MC2KTL4EjB4p4sEuJv1NEHt6dEmYcVJsmC92uiRMNKlB+ewRsu3KSWlway5feFZ2aTsdv6REhqZi4/vrbjdkbWpRAaLPhf5IsOxzVpiT/ZYj741aYXVQz85aKcvfXd+n3hJAwg6eZRTqXXr2tTcqIg00= Received: from PH0PR10MB5706.namprd10.prod.outlook.com (2603:10b6:510:148::10) by CY4PR10MB1320.namprd10.prod.outlook.com (2603:10b6:903:2b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.15; Tue, 31 May 2022 23:13:51 +0000 Received: from PH0PR10MB5706.namprd10.prod.outlook.com ([fe80::138:2847:c75d:b5cf]) by PH0PR10MB5706.namprd10.prod.outlook.com ([fe80::138:2847:c75d:b5cf%3]) with mapi id 15.20.5293.019; Tue, 31 May 2022 23:13:51 +0000 Message-ID: Date: Wed, 1 Jun 2022 04:43:40 +0530 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH 01/12] btrfs: balance btree dirty pages and delayed items after a rename To: fdmanana@kernel.org, linux-btrfs@vger.kernel.org References: <06a51882e0ce06794248a10f5c1c70b987dab62f.1654009356.git.fdmanana@suse.com> From: Anand Jain In-Reply-To: <06a51882e0ce06794248a10f5c1c70b987dab62f.1654009356.git.fdmanana@suse.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: PN3PR01CA0112.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:96::20) To PH0PR10MB5706.namprd10.prod.outlook.com (2603:10b6:510:148::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2db36921-0705-4e7d-836d-08da435b3971 X-MS-TrafficTypeDiagnostic: CY4PR10MB1320:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: W4GcSdFHHrlaETCXR/AsADbqEQ4ivghziQePL+A+VHummxaPG2dES5t2CUckNzFZGegxZ3H65ZZHBjwdTZcq790eBMSY70HeD4zf4koYnJU6hp0CkCL3yWyj8qkdWDDQHDwJ3CmFsHjSr7lZ3f05Djns5MyiFz7Dnj/RwqL0BI6/1OH7AP3oSAT4UhfdWFsMFq/z+gNnHHVD/UQq8fpNsl2j9xWZSzJZ6ss9xrQVwFzqrheqbKvINQuSrZIyOD671qwV2mcWoCpMIPNPhzPPdVgiGa8vMPaewQSALNSsempKRr947MY8fpOgY3fHitkY+Ek5JGDTIkpdbMMZoSXRrKX/rvfALFKS2WaK4D+GLBHh2uiDbRIhh8MC9xovIXUwoBwPHJxtFCF/H2OOqLXmveVkiBI06VbriV9muwspnjRMLzWGB1GEliemyDeRk12gHEn26aHkywHfG9FCO3C/Zugx9alQoSCF+2kuj7w2DH/AN1ki4oykbwacSfyTTLZycFBRBepzN72w+QHVe7Cvh8qMYtdGnIez3BPTCIVXKqE9yN6mRC5RgUB2RFTrWOcFODG0m9gwfsxdWTi6DbtfbsFpN+lgwfXFZpBVS3nVyfBSlw8S502lh74GZKF78Kv8jeEvE9bvsR6T0gCFqH+94VByvdeaf3n0HfiSwSEWv/OL1/oaBr+gId5QIdYm5+INaPoMZTI/HNPcelZZwfF12vgoBrX0BoqBV1PoPQJsq/GsB/xY8kw5pgUKjZ99hj+l X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5706.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2616005)(38100700002)(8936002)(186003)(8676002)(66946007)(66556008)(66476007)(36756003)(6486002)(6506007)(6512007)(53546011)(508600001)(6666004)(316002)(86362001)(2906002)(5660300002)(83380400001)(31686004)(31696002)(44832011)(14143004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZzVhTkJzSWVmcFEraW52bWZoOGFhTUZMMEpzRlcydFBQRlpUK0xZbzNMR1pz?= =?utf-8?B?MzBveDJJQ0txa3lEcUZMVEZ6dC9GRHF3TC9GOTdwVTAzSGdGUGlNQWpVdXAr?= =?utf-8?B?YVlmcHBtVy9sbVZiU0Nlc1RIY3lsSXBSREZTU1VVMy82VDV6dnI1K0t5Lys0?= =?utf-8?B?OWVhUmI5NmN6ZytXWFZRR0h5TC83WWhwRGFhcU9DT3JLd2RPMXNJVWJtWWRR?= =?utf-8?B?T3BzWUQydjZTbmRqRGN3RlpGdXJyRmh6anJIUFNMZWxlOEpvY2VJK0ZUMzI1?= =?utf-8?B?blM0QzdSczFMdXRZZnZURXFVaWxVYjd4TXE3SDk3RzZaZkI4eDM1OVkyVCtF?= =?utf-8?B?RkJIYXdRZjIzNm9BaGppNXR0ZGMxcEcvQktTQzJQNkNpc2Z1YU92K2I5WGxD?= =?utf-8?B?WDNsWmVEcnhXQnVPblBmbnpvNGU2M0xzTTZKWFM4aXoyc082d0pLUjBtdUVw?= =?utf-8?B?WlM2Wk9yN3BzNlVxYTYyWXBTc2crdFVmVHFZQ1oyTk1mbmo5bmVCZ1ZJYmdz?= =?utf-8?B?UW5sbnhCZlVwY2I0MG9HakxSUjU4VWpDTGxjN2x3ejhpcFlMWFRyWkdrL3p5?= =?utf-8?B?aG1RQTQwNjRYRTRlUWdCc29mZ0RJTmVYaTdMdFRCdlJ5dFdwazZObHNrcDh2?= =?utf-8?B?bkJzYmhtZXlubEtWOWdaUWVFRTFwQzRtRU5tdnBoVmFqSVNMaTF4M2JYbGt1?= =?utf-8?B?ZGhDbzZrWUo3bDhQZ3FYeVh2SHhqc2RlWE5iaVBjMFFpd2cydVV3dit0WlJO?= =?utf-8?B?MW9tUSs1WXExSGluMzhOd3VhWjBZZ0hHV21HdnAwdTJuaGczblpFaFBmd2RE?= =?utf-8?B?NzRETjdNYk5Zdm1kVGRWUzM1aFg2M3ZKYXlpdCs0eWI5N3Y5OEV6MU9oZHVK?= =?utf-8?B?cHlrVlREVVlud1J1Z3dBTjhNclhkaDJxQkptT2pwMk95eTZkMmJ2WU5JRVVT?= =?utf-8?B?MU9NSWc1bC9ORUlqOEFUc1FON2ErMXBVSmdUTkJGVmc3RVRvWlRSVmRtNEsw?= =?utf-8?B?UEJXRm1IUU93UGRXcXZ4SkZMSnNJY3R4VlA5cXRGUGIvRlJETDRueVJIZEtE?= =?utf-8?B?Nkd2cnE1cnpLS0V0OVZmdnVnUStGMjBvY3J1Y3dyVkdJbXQ1SjMwalhxaEpi?= =?utf-8?B?NGQwMGMrTlRTQi9EUE0xQTkvY1U0MUdiZUZjdE1aSFB2M1dFeG5vOHZLemJI?= =?utf-8?B?WkdmWWdEOWRsTUtBM0FBZ3dveG5JWlJlbGRSMmkzYlIxeDM3MkdFTzBxT1NG?= =?utf-8?B?UHhVcXBsWHIwL2QvakZNL2lDV2taS3k1MzJmNGV2UEFOKzJ6N05oc1I4YkJI?= =?utf-8?B?Nkw2QlZuVTRoSUR0dEZMMk1aSHlLM0J4Sk1rMUFmRVFCdHRyeHlDeElkeTNO?= =?utf-8?B?d1VWNlhtLzVtKzUxOU5hL0tTZjk2UFJOb3VRMEFYbFB2YkhtZzNpaGtFcDRT?= =?utf-8?B?aytNZUtQTWtXVkRpKy9LR1p2RFloU0o1V1IrOEk4bnlzWkVyRUNvOUk5dENH?= =?utf-8?B?WUkvdkN4WklseVpoZ1I2b0ZwbnJxaUtTbzlKZnpMRVA0THhEc05wY1p3K2RS?= =?utf-8?B?MWlBdFVMY2JET0d6SGwyWXcvUWxoNGJEUHdjM2g3NUJYanpjUGtxNms3QTRk?= =?utf-8?B?QStXdUgwQWdhSGlKS3lsbENCNkZDcnNSS2o2RHpTa3lSdWdpNjl3djUvdFI1?= =?utf-8?B?bmY5OEFKVjFVY09GZWxjdUk3Vi9iY3B5UTlRa0kyc1JLak1GaXdpbm9tTDBh?= =?utf-8?B?aUNOSmZ0R28zQ3g5bXVqUzVKdnpzKzlQRjlMVjZSbHR1ZGZkd2dKWjBIYm8w?= =?utf-8?B?WS9Ba1YrZkFCVnBFZGNwRTgyS2EydVpMMWZrdDA4Uzk1Y0tKdTVyaUhoWjdr?= =?utf-8?B?VHV2eXZQR0MvNDd4U1FSQmZMQ0FmQTltaS8yenNvT2loVW5FeWdqbEozUUVS?= =?utf-8?B?RzdzOWxqdjVRcmRBYWxMVDJGbTNCdXlKUWwrdDgxQUpkaDZCOGMvSElRUkRQ?= =?utf-8?B?NHJnRVRCNGppM3BZdTdKUUFwcGh0UzdiUHpLWU1ONk1UY05rTlhlMzhMT0JV?= =?utf-8?B?Z1FjT3VaZnJ6eEJKaHRsaVlHZmtSUnk5dllCNHk3TCs1RHM2QTlPMlFqR0sx?= =?utf-8?B?ck5xUUVjMklXMDRnN0lQb3E3WGVqam8rZWszUWg4VEZKbUNrN09iNTFldE5V?= =?utf-8?B?bEpzTTlTMUI3YmlqN1d4ODY4OEVrUDlYY3l2M05taWwvN1N0VUw0ZlRJMGZ5?= =?utf-8?B?MnU5ckpYTlpaWXQ3M0tpSlB5S0lSV3JTSS82RTBJUXBOd0pNT2wzNzNWMzZv?= =?utf-8?B?TEhTQ05ybHBYbm9WeXRETkw4NTNFLy9wcTFiT3VSSURHK2U5OXJPVDhFaVlQ?= =?utf-8?Q?9hqdoNo3X08cemHz0G3DQ0fhp9uKzn9LApcE9PTKuZfR0?= X-MS-Exchange-AntiSpam-MessageData-1: sTSqrvnMqJKRMysH95UUAEr147WwthJQpxc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2db36921-0705-4e7d-836d-08da435b3971 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5706.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2022 23:13:51.6014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LKilQ82ySeWGcEM+I2c/QLK8d9qPVDkytOM292kjWmP+K3fSV27zCmp2VZQ9Ogz1/fFb6ZJKGyDaay5ibcp73g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1320 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517,18.0.874 definitions=2022-05-31_08:2022-05-30,2022-05-31 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2205310100 X-Proofpoint-GUID: 3Z46tZRTEKHoNgDkfNKIcaEkEIOXap23 X-Proofpoint-ORIG-GUID: 3Z46tZRTEKHoNgDkfNKIcaEkEIOXap23 Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org On 5/31/22 20:36, fdmanana@kernel.org wrote: > From: Filipe Manana > > A rename operation modifies a subvolume's btree, to remove the old dir > item, add the new dir item, remove an inode ref and add a new inode ref. > It can also create the delayed inode for the inodes involved in the > operation, and it creates two delayed dir index items, one to delete > the old name and another one to add the new name. > > However we are neither balancing the btree dirty pages nor the delayed > items after a rename, which can result in accumulation of too many > btree dirty pages and delayed items, specially if a task is doing a > series of rename operations (for example it can happen for package > installations/upgrades through the zypper tool). > > So just call btrfs_btree_balance_dirty() after a rename, just like we > do for every other system call that results on modifying a btree and > adding delayed items. > LGTM Reviewed-by: Anand Jain > Signed-off-by: Filipe Manana > --- > fs/btrfs/inode.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index ba913ea6f4d1..06d5bfa84d38 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -9546,15 +9546,21 @@ static int btrfs_rename2(struct user_namespace *mnt_userns, struct inode *old_di > struct dentry *old_dentry, struct inode *new_dir, > struct dentry *new_dentry, unsigned int flags) > { > + int ret; > + > if (flags & ~(RENAME_NOREPLACE | RENAME_EXCHANGE | RENAME_WHITEOUT)) > return -EINVAL; > > if (flags & RENAME_EXCHANGE) > - return btrfs_rename_exchange(old_dir, old_dentry, new_dir, > - new_dentry); > + ret = btrfs_rename_exchange(old_dir, old_dentry, new_dir, > + new_dentry); > + else > + ret = btrfs_rename(mnt_userns, old_dir, old_dentry, new_dir, > + new_dentry, flags); > > - return btrfs_rename(mnt_userns, old_dir, old_dentry, new_dir, > - new_dentry, flags); > + btrfs_btree_balance_dirty(BTRFS_I(new_dir)->root->fs_info); > + > + return ret; > } > > struct btrfs_delalloc_work {