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 46659C678D5 for ; Wed, 8 Mar 2023 09:03:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7556A6B0075; Wed, 8 Mar 2023 04:03:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 704CD6B0078; Wed, 8 Mar 2023 04:03:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5A5AC6B007B; Wed, 8 Mar 2023 04:03:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 478496B0075 for ; Wed, 8 Mar 2023 04:03:53 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1C42D80E66 for ; Wed, 8 Mar 2023 09:03:53 +0000 (UTC) X-FDA: 80545143546.03.FA96E9A Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf09.hostedemail.com (Postfix) with ESMTP id 4188514001D for ; Wed, 8 Mar 2023 09:03:51 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b=GFJPqOI3; spf=pass (imf09.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678266231; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bISq6Uew17tHFDmlqGdz5KQcv60gYaVd7PzMrTV6/9c=; b=UBiMawhwZ8OjbZZE5Oo0Y3iSo+Oz0dre3TAKXDvfLxGLULnmkwj32fnIlz94OOcO6lPPYP PuQHAyUnLymm7AmSVmFxHsrwb4zVHWZ8/XnaHSeMqPL0tOnAGzSOdO1XwhI8kiYsieufxm +t+fFNySkC2e8lfrjGOllrOK59b+jCQ= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b=GFJPqOI3; spf=pass (imf09.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678266231; a=rsa-sha256; cv=none; b=PbjCrqZ/GL/bC2V7e+6tyi3+2a4fxSXae8/SuVYAbyHHynBMOJLkal9osuRvY5uwErSPxI Yit7ZiJHnHXawx2PPtPCLs1/svNfFaV0j2BKyYdBvoWgbKIlx8geyScqcz54MyTV9PNHhv whD4HjORdYMbqGHS5JL13hbNaGn8NJg= Received: by mail-pj1-f50.google.com with SMTP id nn12so1172513pjb.5 for ; Wed, 08 Mar 2023 01:03:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shopee.com; s=shopee.com; t=1678266230; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=bISq6Uew17tHFDmlqGdz5KQcv60gYaVd7PzMrTV6/9c=; b=GFJPqOI3HFUyuikS1Ykm25uTi9lcE7N+6czBKE1KTxYDEuDbCSiJiPino/KoMWHHOn vGoCjEEN6hXUkiL0h9GrxdXXmpAe5xxEKm2ijFUA6jYmUETnb+KsGBV9uzQu4JA3X/Ai Ad3oC5Fo5ggyqUirZXLUR7IHV4LuPyXbeNDJTA+w+Z9Gtaxt1kVmWRHDyQ4df9QJbmNr 3MSj7uLPTo9NTGHUmgEhRBad4JyP0ZtrStEty9cm0xL00ykBInCGxSOf5FG0AjTc1yM3 KiZ5tTBx4aADCdwZiL2y5cT6IiNYFdIcVkXoYEPBVopVhSzCTfVhIQYVMM/XB1WzzNet 7vMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678266230; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bISq6Uew17tHFDmlqGdz5KQcv60gYaVd7PzMrTV6/9c=; b=VS/ys5d5euZIF5bHYOS4D+tmVGE9hhAwn6QFu0DYIxB/Hb30ys9IO2i7SvvMkFS2fV idLFujHiww2xonH+5ZRyH1VChsw2x0VTu0g0vxtKM/6Iu58DLRtWu0UhLOVKkzCTCAlO ArFwA2n2Te1C3BrtvfMUo9tEZViEQ/5fSYk1k/fpvl8ypNIe7JjTaJDxh5ahbyaViZXl iVINl/Qr3TZPlSeaXjllDgkYYQIe/WGH31xNXnd0+t6hnfco19LRCACob3b6FrMfJumI 4ahb3+I2KJH/o/RsDS3HOJorfUmM8rkhRUF+zfte523sKhbjoHJ9MVUvqspZCRfxHbgN QReQ== X-Gm-Message-State: AO0yUKXpCZTuNu0KibTY8TGJbic+Me+FNOuCZV4BWSwT44E9vfhOd41L a+0tukdOB/tK3shMN19uCRpWug== X-Google-Smtp-Source: AK7set/MewujGailG4KDinJPts5OCusuTpFjDcJwl8ktLqctbhfVOikLfldtPT/H8lXAevd7qVCDRg== X-Received: by 2002:a17:903:228f:b0:19a:9945:a7aa with SMTP id b15-20020a170903228f00b0019a9945a7aamr21679406plh.20.1678266229911; Wed, 08 Mar 2023 01:03:49 -0800 (PST) Received: from [10.54.24.141] (static-ip-147-99-134-202.rev.dyxnet.com. [202.134.99.147]) by smtp.gmail.com with ESMTPSA id e4-20020a17090301c400b001992e74d055sm9566855plh.12.2023.03.08.01.03.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Mar 2023 01:03:49 -0800 (PST) Content-Type: multipart/mixed; boundary="------------OQptv0miZd4Qez8ok0nBlcAw" Message-ID: <6df72872-2829-47ab-552c-7ef8a6470e6f@shopee.com> Date: Wed, 8 Mar 2023 17:03:46 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH] mm: remove redundant check in handle_mm_fault To: Matthew Wilcox Cc: David Hildenbrand , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230306024959.131468-1-haifeng.xu@shopee.com> <354360d5-dce6-a11c-ee61-d41e615bfa05@shopee.com> From: Haifeng Xu In-Reply-To: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 4188514001D X-Stat-Signature: gdjxmkzj4pjss9m7huqpxkztbdcsdxde X-Rspam-User: X-HE-Tag: 1678266231-381672 X-HE-Meta: U2FsdGVkX18wHFWkKahEjraZHnz4fhTcFUefcNng4sDtLAqN1sgVdnrLEEAcvhAWeDHqpycc7TgJ7dyiLp9bt4u24AbsoJZn/QPkLIPLwDZGIIX+VHCl4kTfkEfQTBBdlz1iJSpHUXVI8aWAaffnu+h4o5Tij/ucvQV6ZpuWGhRJjaoIErwJ9Qi28VDlJAv+DUsuUTWp8ghipgQ2IvxELLoQBP5DR+7bZSawK6xFrj/Te88LKt4Dzq0ELJOU4Jgjk3cOGzr9iL6sK7/LGhoyvDg4aZhA5ES4LiDoWgYoYOpHp5VhBn/3+F9ZsjwTWfpSwAucltsNREU1AICPoMB6yPl7NptGzrwGC10KBSSlFtmK+z3bIhN0hOh9BVMX9pzijX9qKmIYjZs0r+vQkFsQpPtr+uzSRQ9lqUCaBbzPbxbb7uOuJt7ntJOp9jLYgwe2I9hgh3v7zR9rY1qrho9yblNw8402Ha7hREzaEC0zmn+JksIfZ19A0HKzmD98J8iEshSe7mjR2Pj4cNJzrOC2Qf1m0M7pPnYdYnEzIfc/zagC9I8/eldUNcvzmoM1ZV9o9ZltcXn/OY2XYY6f1oiLq6uYyRQP+GeqSIVovOXXaPQ/DuFNu7lfovJWtZhGOflaXHl+BSwHfrKJlW3m+kPAl5eImY7YkmdbDTenLDXbJuh55vg8qF1GnVMANmgr6Wm6N2PW5F5uJIrn3FDcvpXO/eaiZKw8NkMIIK99xeYX/IRyqqD3EgdAAWUcMgohiycji8HtmAv3QFbgrlqOuHitH8Ogdtg5qmJKeb11vfLlCIMETQtWMJAYTnMDr+zyJVHWXhZLMnzCWMGv7yUohi4KYmZUeZ3PwxaTEy6Ya0S6cq0cAOUe/adYxQc5lGNwM5q+SHXdsz/FBCE/R/Gpx+31muKqq9QBHrYRCzBlPXRyZGmwkuc0zRSpq38bradYY+tPGRBAYPQ7rpB83kjTCBO 0zOxkFaD 3uk5ZT/16j7AwZwuMahS94XqKbzOlzuVH/saCNbP5RdNBY2c50v8B5XHFEcWHRqbsWik9jjs8YVuF/Z3ZU17Rh0P6GtMIEQjrugBNWU8rXMRxGrjJaW8B8GXWi96o7lBYHTcQ5M62lFBGPcnszlNxyQfNRj4I7wpbba4BTVNE81FXpRlJRnSfawA5gRO92Zsq4ZtvesbFEpz28FR+SAj0EezLyGiA6qt6tWirBZOUVb2hW7A81krd3sx4wo5QIgVXs/JPnJ+qTAMyG18kI63LByBeS0E989VvgNhU92jC5DPp4F/i+KNfEvSYM2jnCDq5OEQswZwGkWh+O0VsVK8N6EBlZBFhvt2lDTyktHoKhmIjVSdrN3kyYF3iffmlYWBQjidfTsXdHSQDetdicEKvsKUm5K/MNecJsXZa9c6iigVn2LOZf3GHsG84/ZxVvpG6z4eLuN5FupQHHBVGj1C3rC71N06kEwAaQM9C5iEJOTgYfaBcYcW69wySDG2DafA4iZ9TucgdImKLxv3DDmHTtK+l9KEoNBMPhOaZV08lpDjaOCsdo/awd8Lu5EhL/EHAWbvMhObsnyXolmN+V3jcZ9ALkeMZhh/AZutZGQuHHs0tc60jAGe5kuvPrpMp3Zi5DYfL 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: This is a multi-part message in MIME format. --------------OQptv0miZd4Qez8ok0nBlcAw Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 2023/3/7 10:48, Matthew Wilcox wrote: > On Tue, Mar 07, 2023 at 10:36:55AM +0800, Haifeng Xu wrote: >> On 2023/3/6 21:49, David Hildenbrand wrote: >>> On 06.03.23 03:49, Haifeng Xu wrote: >>>> mem_cgroup_oom_synchronize() has checked whether current memcg_in_oom is >>>> set or not, so remove the check in handle_mm_fault(). >>> >>> "mem_cgroup_oom_synchronize() will returned immediately if memcg_in_oom is not set, so remove the check from handle_mm_fault()". >>> >>> However, that requires now always an indirect function call -- do we care about dropping that optimization? >>> >>> >> >> If memcg_in_oom is set, we will check it twice, one is from handle_mm_fault(), the other is from mem_cgroup_oom_synchronize(). That seems a bit redundant. >> >> if memcg_in_oom is not set, mem_cgroup_oom_synchronize() returns directly. Though it's an indirect function call, but the time spent can be negligible >> compare to the whole mm user falut preocess. And that won't cause stack overflow error. > > I suggest you measure it. test steps: 1) Run command: ./mmap_anon_test(global alloc, so the memcg_in_oom is not set) 2) Calculate the quotient of cost time and page-fault counts, run 10 rounds and average the results. The test result shows that whether using indirect function call or not, the time spent in user fault is almost the same, about 2.3ms. --------------OQptv0miZd4Qez8ok0nBlcAw Content-Type: text/plain; charset=UTF-8; name="mmap_anon_test.c" Content-Disposition: attachment; filename="mmap_anon_test.c" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHN5cy9tbWFuLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUg PHN5cy90aW1lLmg+CiNpbmNsdWRlIDxpbnR0eXBlcy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+ CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxmY250 bC5oPgojaW5jbHVkZSA8Y3R5cGUuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBT SVpFICgxICogMTAyNCAqIDEwMjQgKiAxMDI0KQojZGVmaW5lIFBBR0VfU0laRSA0MDk2Cgpp bnQ2NF90IGN1cnJlbnRfdGltZV9tcygpIHsKCXN0cnVjdCB0aW1ldmFsIHRpbWU7CglnZXR0 aW1lb2ZkYXkoJnRpbWUsIE5VTEwpOwoJaW50NjRfdCBzMSA9IChpbnQ2NF90KSh0aW1lLnR2 X3NlYykgKiAxMDAwOwoJaW50NjRfdCBzMiA9ICh0aW1lLnR2X3VzZWMgLyAxMDAwKTsKCXJl dHVybiBzMSArIHMyOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7Cgl2 b2lkICogYnVmOwoJY2hhciAqIHB0cjsKCXNpemVfdCBzaXplID0gU0laRSwgc3RlcCA9IFBB R0VfU0laRTsKCWludDY0X3Qgc3RhcnQsIGNvc3Q7CgoJYnVmID0gbW1hcChOVUxMLCBzaXpl LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1NIQVJFRCB8IE1BUF9BTk9OWU1PVVMsIC0x LCAwKTsKCWlmIChidWYgPT0gIE1BUF9GQUlMRUQpIHsKCQlwcmludGYoIm1tYXAgZmFpbGVk XG4iKTsKCX0KCglzdGFydCA9IGN1cnJlbnRfdGltZV9tcygpOwoKCWZvcihzaXplX3QgaSA9 IDA7IGkgPCBzaXplOyBpICs9IHN0ZXAgKSB7CgkJcHRyID0gKGNoYXIgKikoYnVmICsgaSk7 CgkJKnB0ciA9ICdhJzsKCX0KCgljb3N0ID0gY3VycmVudF90aW1lX21zKCkgLSBzdGFydDsK CXByaW50ZigiY29zdDolIiBQUklkNjQgIiBtc1xuIiwgY29zdCk7CgoJbXVubWFwKGJ1Ziwg c2l6ZSk7CgogICAgICAgIHJldHVybiAwOwp9Cg== --------------OQptv0miZd4Qez8ok0nBlcAw--