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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B77AAC2D0DC for ; Thu, 26 Dec 2019 21:36:31 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5E990206CB for ; Thu, 26 Dec 2019 21:36:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="ViGwB6Le"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="MYhfyWbo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E990206CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=fb.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DC59E8E0005; Thu, 26 Dec 2019 16:36:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D73B98E0001; Thu, 26 Dec 2019 16:36:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3BCB8E0005; Thu, 26 Dec 2019 16:36:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0131.hostedemail.com [216.40.44.131]) by kanga.kvack.org (Postfix) with ESMTP id AE19D8E0001 for ; Thu, 26 Dec 2019 16:36:30 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with SMTP id 4D1BC181AEF0B for ; Thu, 26 Dec 2019 21:36:30 +0000 (UTC) X-FDA: 76308601740.14.brass75_1b8da82464915 X-HE-Tag: brass75_1b8da82464915 X-Filterd-Recvd-Size: 10200 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Thu, 26 Dec 2019 21:36:29 +0000 (UTC) Received: from pps.filterd (m0109334.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xBQLTN09028500; Thu, 26 Dec 2019 13:36:25 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=9yl0vZB6zXYsdXshurlVu4KnvgnCsluDrbU15igoniQ=; b=ViGwB6LeT6yu8iDefABALIz1h/iRowjz8+9tyHJjoIjiTCayjy5h4xD0JGwcGphvC8ca 6jxgxMrsHr3jeb3MxB/Om1dF9iy5wPeY888QwhZ1wPq7UH4kgDZWJB0vPwXc5wgRQjMn CcOueIaHPpFY4Dr/DoD1cKBqb9bC6DYY5Jc= Received: from maileast.thefacebook.com ([163.114.130.16]) by mx0a-00082601.pphosted.com with ESMTP id 2x4puyjmrd-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Thu, 26 Dec 2019 13:36:25 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (100.104.31.183) by o365-in.thefacebook.com (100.104.35.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 26 Dec 2019 13:36:24 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YfUZIJVB9yLn47MTTlsGClo4qPJZi2nkie1oqhYq0wA1GfvTEAsolGTr+r694IqM2phEuKTZZTttZuQluhfAlLL+19MZRpU6keKHPMYAttXSBYzI/PR3IGNkeUHihRGURijMw2xYmN0WbzSs65rfEGnkq2R1/grqFxIWQC6fPH10nswDJN6rcrmWC1FwM/8glLzY0rPzK9lzWC3WTpBC9V04TMvHasYudg5kMUi6Mf5mTX40POS0sd9JWE2Wh/g1kaZYa+dEOcvlgxRSLKiXx1Bmt/XtcnvzWGLnI2tMTl3oM8nH8590Qitj/T993+2w3rzS4HZpYZ+uu/Iy69UTPA== 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=9yl0vZB6zXYsdXshurlVu4KnvgnCsluDrbU15igoniQ=; b=Nq5/Y/iDLlB12kGvABqgYjQmqK4r3y7FBJeLCCCuw/MqMnoUniBG1RU/3lulkRZns7wED8pJqymFx2DYFCAXzCaAUM+ja9mLUbA/v6UuEumv9YtFDUtp2J2BLMo3uivuvPvNg14sIJUDHYljb6IsEZqtpXaR5s9W2MEPdEMXZJC4Os9GwsNIFQKeSlL5TkSL1aXpfsDpaxJeaB1Gy0Qmh76ku0sDIIUYWfD2862R0hT3eDxHeZk83fRdPiJUXbUHj6ZkruDSAMH/QOgJ1hKAUNDL86Zyq7KWCGtPEIF2CbjS0SZvTcGO3rzk41cCFUOsjQXrMbKYBGEOxlML0WhBXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector2-fb-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9yl0vZB6zXYsdXshurlVu4KnvgnCsluDrbU15igoniQ=; b=MYhfyWbo7ZNEaX1YgJ8Z2TLZhn49IhI8AjTgV9GQkEymfujCfYQLc7IiYp8O/+wkI+iV/QMOpRnfKLp5UHWb+VhfRgcdjuik3Zi1r7z70MOTMjI0/MBV0haXwIW3BS8Ah/ppfdt1S3MwRydTkiHXDQV24a/9xdcsUCqbBnG+hok= Received: from BYAPR15MB2631.namprd15.prod.outlook.com (20.179.155.147) by BYAPR15MB2950.namprd15.prod.outlook.com (20.178.237.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.12; Thu, 26 Dec 2019 21:36:23 +0000 Received: from BYAPR15MB2631.namprd15.prod.outlook.com ([fe80::8cc8:bdb1:a9c7:7f60]) by BYAPR15MB2631.namprd15.prod.outlook.com ([fe80::8cc8:bdb1:a9c7:7f60%3]) with mapi id 15.20.2581.007; Thu, 26 Dec 2019 21:36:23 +0000 Received: from tower.dhcp.thefacebook.com (2620:10d:c090:200::d272) by MWHPR11CA0018.namprd11.prod.outlook.com (2603:10b6:301:1::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Thu, 26 Dec 2019 21:36:22 +0000 From: Roman Gushchin To: Yafang Shao CC: "hannes@cmpxchg.org" , "david@fromorbit.com" , "mhocko@kernel.org" , "vdavydov.dev@gmail.com" , "akpm@linux-foundation.org" , "viro@zeniv.linux.org.uk" , "linux-mm@kvack.org" , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH v2 2/5] mm, memcg: introduce MEMCG_PROT_SKIP for memcg zero usage case Thread-Topic: [PATCH v2 2/5] mm, memcg: introduce MEMCG_PROT_SKIP for memcg zero usage case Thread-Index: AQHVui+ASibtRWJQmkOInCTxhAakFKfM9KWA Date: Thu, 26 Dec 2019 21:36:23 +0000 Message-ID: <20191226213619.GB22734@tower.dhcp.thefacebook.com> References: <1577174006-13025-1-git-send-email-laoar.shao@gmail.com> <1577174006-13025-3-git-send-email-laoar.shao@gmail.com> In-Reply-To: <1577174006-13025-3-git-send-email-laoar.shao@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MWHPR11CA0018.namprd11.prod.outlook.com (2603:10b6:301:1::28) To BYAPR15MB2631.namprd15.prod.outlook.com (2603:10b6:a03:150::19) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2620:10d:c090:200::d272] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9aa50378-7ebe-4d0f-8909-08d78a4ba72c x-ms-traffictypediagnostic: BYAPR15MB2950: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 02638D901B x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39860400002)(366004)(346002)(376002)(396003)(136003)(189003)(199004)(16526019)(71200400001)(186003)(478600001)(55016002)(9686003)(86362001)(6916009)(7696005)(52116002)(33656002)(4326008)(6506007)(2906002)(316002)(5660300002)(66476007)(66556008)(64756008)(66446008)(54906003)(66946007)(1076003)(8676002)(81166006)(81156014)(8936002);DIR:OUT;SFP:1102;SCL:1;SRVR:BYAPR15MB2950;H:BYAPR15MB2631.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WohfVM1NpD2E/Zap1fW68kb4xHT6bJ88KAbKowlzd9Hfo9k0SRmaZBBn0KVpAZjDZBtSEhJbE6YSqAPpONCEzMttXA+5EOdovIREvbJghpNw4pg62abmxiDvDDVo+wTift/1b+OkpFHfdq2AnsTuSc4UYAbzHeUPmu+LgqljQbiFmEQUqPf0zjiNUECNxg4Du/ASY7VwERrQUKTcn0vgK0U+3qkujps2hOW4Kxasg/udK33aTftBHAm00brfpSgOzUhmlaJM71tHSEJZZuNrpzBDlmv97zooW3cckjZA3EVq2vSxO9TKNcItSY2M+t+mfMTUPN1vBa2xIdw8Mexk8GJ6z4rNbIQyvBIOPM7utbfmYKVxFLjlpjYgFDbHScU+SkOJOiDXBFZQ7MXWPUgtnDMSMl4d4m2bPUX5W7Ts7U6PeHZVXBqDpVY/9Pxrf493 x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 9aa50378-7ebe-4d0f-8909-08d78a4ba72c X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Dec 2019 21:36:23.1606 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zQ3C2PR1hB4SuVneypIYDQMxwbzSJ6YY1YMBqgdM68EOvTM2vsoPoB2PBs+JWcrg X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2950 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-12-26_05:2019-12-24,2019-12-26 signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 phishscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 spamscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1912260191 X-FB-Internal: deliver 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: On Tue, Dec 24, 2019 at 02:53:23AM -0500, Yafang Shao wrote: > If the usage of a memcg is zero, we don't need to do useless work to scan > it. That is a minor optimization. The optimization isn't really related to the main idea of the patchset, so I'd prefer to treat it separately. >=20 > Cc: Roman Gushchin > Signed-off-by: Yafang Shao > --- > include/linux/memcontrol.h | 1 + > mm/memcontrol.c | 2 +- > mm/vmscan.c | 6 ++++++ > 3 files changed, 8 insertions(+), 1 deletion(-) >=20 > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 612a457..1a315c7 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -54,6 +54,7 @@ enum mem_cgroup_protection { > MEMCG_PROT_NONE, > MEMCG_PROT_LOW, > MEMCG_PROT_MIN, > + MEMCG_PROT_SKIP, /* For zero usage case */ > }; > =20 > struct mem_cgroup_reclaim_cookie { > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index c5b5f74..f35fcca 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -6292,7 +6292,7 @@ enum mem_cgroup_protection mem_cgroup_protected(str= uct mem_cgroup *root, > =20 > usage =3D page_counter_read(&memcg->memory); > if (!usage) > - return MEMCG_PROT_NONE; > + return MEMCG_PROT_SKIP; I'm concerned that it might lead to a regression with the scraping of last pages from a memcg. Charge is batched using percpu stocks, so the value of the page counter is approximate. Skipping the cgroup entirely we're losing all chances to reclaim these few pages. Idk how serious the problem could be in the real life, and maybe it's OK to skip if the cgroup is online, but I'd triple check here. Also, because this optimization isn't really related to protection, why not check the page counter first, e.g.: memcg =3D mem_cgroup_iter(root, NULL, NULL); do { unsigned long reclaimed; unsigned long scanned; if (!page_counter_read(&memcg->memory)) continue; switch (mem_cgroup_protected(root, memcg)) { case MEMCG_PROT_MIN: /* * Hard protection. * If there is no reclaimable memory, OOM. */ continue; case MEMCG_PROT_LOW: -- Thank you!