From patchwork Mon Dec 2 08:50:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Zhuravlev X-Patchwork-Id: 1203010 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=whamcloud.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=whamcloud.com header.i=@whamcloud.com header.b="29hqWa/c"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47RJjZ37YYz9sP3 for ; Mon, 2 Dec 2019 19:50:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726142AbfLBIul (ORCPT ); Mon, 2 Dec 2019 03:50:41 -0500 Received: from mail-eopbgr730040.outbound.protection.outlook.com ([40.107.73.40]:12123 "EHLO NAM05-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725977AbfLBIul (ORCPT ); Mon, 2 Dec 2019 03:50:41 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CU9vvVaexkSLIk97+AeeWjGfdyBAvffdrW4z67U6LAmHjWkTdyssGbZZKCz52xuHoifIrSwMnzs9lhL+oNJ4CQwuXMHljM1kb7Ji+08JdbDOiefhKm7PPnZif+55u2jxFcJ2LW166GMtJgL0t6aFTMQyBEvQ0mEpXtu9vBtbtDu+3ER9cj3OYiHk0O52mH8kpn1a51eLUZPAEvrK6Kr3yTse1CmltlAkdjgEpt3CzTMO98yElJL9oeeTu0ufpAZkG4mBODUKqRh0Uua7nIxAAx9JySsYoT/QmjfkZCEYzJLjor9cl1979cJ9MRceDhyskbOC3VK3ww66Z4mQsw52uA== 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-SenderADCheck; bh=MABOVURBy2ILNPOiB2fHAU/B267EueqI3PaKYeao7aU=; b=GrwFRPgOeEeoKP2zj7wBpVsuO5OKFLaT+A3A1OfbhokO1cpe/PbWj7J8igV/33NLYzipEbvk+0pWWNSCt1pRBHnhOji58w7hayPh1nwgjPOECTtvOzeBx1tDdLPUzWnBVec282s1mHIVEruLz2xV2hp0Z0t3jawz3+a5T6p4IPuU49jgnqWact3Xfmi5FPVZ9nai9UJZnsilTKuuS+wpcBOlSzItYRR8gTyJ0AEG2E6iRuQ+k10U+DWS8V9QtOx5lJhuKH5gMpfaRu4kcBf8idVkmgQnh5qhIcNsLYE93hbFTmetrDWqRgH//YXYp3ZCesHn3xdYe78mx0g0qJT9KA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=whamcloud.com; dmarc=pass action=none header.from=whamcloud.com; dkim=pass header.d=whamcloud.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whamcloud.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MABOVURBy2ILNPOiB2fHAU/B267EueqI3PaKYeao7aU=; b=29hqWa/cAis+md+F9/6pFZRXw3i3fqh6v1CbCIuoLK8qMqtOzG7mgJZcdzWP8sYQw91Ulov50aCIUr6UIdQS81JgpcJTWdF52v/O+VSkP1IIai8f2mHUR3Bxwj6X8EE+XEmj78aZ/bi9kfWXMK/fnZoB2sTDLK1f4WTQHYCs8NY= Received: from MN2PR19MB2894.namprd19.prod.outlook.com (20.178.254.95) by MN2PR19MB2701.namprd19.prod.outlook.com (20.178.252.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2495.18; Mon, 2 Dec 2019 08:50:39 +0000 Received: from MN2PR19MB2894.namprd19.prod.outlook.com ([fe80::a499:dae8:b1c1:b08e]) by MN2PR19MB2894.namprd19.prod.outlook.com ([fe80::a499:dae8:b1c1:b08e%7]) with mapi id 15.20.2495.014; Mon, 2 Dec 2019 08:50:39 +0000 From: Alex Zhuravlev To: "linux-ext4@vger.kernel.org" Subject: [RFC] improve malloc for large filesystems: limit scanning at cr=0 Thread-Topic: [RFC] improve malloc for large filesystems: limit scanning at cr=0 Thread-Index: AQHVqO2SLyKt9MGEFkuHdSLeZ9n73w== Date: Mon, 2 Dec 2019 08:50:39 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=azhuravlev@whamcloud.com; x-originating-ip: [128.72.176.24] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 677871c1-fa44-4c8d-ce93-08d77704b508 x-ms-traffictypediagnostic: MN2PR19MB2701: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0239D46DB6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(376002)(346002)(366004)(39850400004)(396003)(189003)(199004)(26005)(91956017)(76116006)(8936002)(2906002)(71200400001)(71190400001)(33656002)(6116002)(3846002)(478600001)(2616005)(6512007)(5660300002)(36756003)(99286004)(2501003)(14454004)(305945005)(6506007)(2351001)(81156014)(66066001)(81166006)(7736002)(6916009)(14444005)(66556008)(66476007)(86362001)(64756008)(66446008)(66946007)(102836004)(8676002)(256004)(186003)(5640700003)(6436002)(25786009)(6486002)(316002)(4744005); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR19MB2701; H:MN2PR19MB2894.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: whamcloud.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qHTRa3gcSaNB6UfyoB4BsycgmMsw8ldBfNwRzIvCijRn0mG3RQBs+b7ehl+7ZyofKHpaBboEr/lC6V/mS2PRx0VuGwg2h0fdtbHQh5KdR2czStUIDsocSTu3gF0i1NFBMVukOEqKzhWICWoeOOPYhala4Xo74ib4pNAJoVVWHQIXRHtb7HSGacUJ2QIA0JcOQut8NZlFIpqhY1j91QLCa2YHPuU3nhkdr+amKWEgl14hP/WIYMfyKyhzw7lKd454lW1flH9I5kBBQIwRledStqot7knkp/ShKv1hfh2tSXlnoAAEa4tk+hCDiJhDi6DNdlAuK4xGWy8pdxZbB/Mbyzxc7sR81m07gZOffnBDr6JBIH6JsJLQG7xPHu+BwZApJCZrkqN5sQryGokT8GBjCdxx/53M3uh5qDES3312wbSBFhoOiismtrjN3K0LH0FS x-ms-exchange-transport-forked: True Content-ID: MIME-Version: 1.0 X-OriginatorOrg: whamcloud.com X-MS-Exchange-CrossTenant-Network-Message-Id: 677871c1-fa44-4c8d-ce93-08d77704b508 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2019 08:50:39.4963 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 753b6e26-6fd3-43e6-8248-3f1735d59bb4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: k3YYMbl5JBGmlX6gUQCSVs2WrZgDU66Tst2YyESP3rZoTA5xT9gWISiYqPg80fdusBWH/sCnp2p2TijZFtTRCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR19MB2701 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Hi, I refreshed the patches a bit. So the initial patch is just to limit scanning at cr=0 to initialised groups. The idea is that scanning at cr=0 is an optimisation on its own - cheap and quick way to find 2^N large chunks. I think it makes no sense to wait on IO few milliseconds just to skip a group because it’s not perfect. Thanks, Alex --- linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:55:26.500545920 +0300 +++ linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:53:18.600086008 +0300 @@ -2060,7 +2060,15 @@ static int ext4_mb_good_group(struct /* We only do this if the grp has never been initialized */ if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { - int ret = ext4_mb_init_group(ac->ac_sb, group, GFP_NOFS); + int ret; + + /* cr=0 is a very optimistic search to find large + * good chunks almost for free. if buddy data is + * not ready, then this optimization makes no sense */ + + if (cr == 0) + return 0; + ret = ext4_mb_init_group(ac->ac_sb, group, GFP_NOFS); if (ret) return ret; }