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 DD354C25B74 for ; Tue, 14 May 2024 03:25:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 64F748D0019; Mon, 13 May 2024 23:25:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5DC8E8D000D; Mon, 13 May 2024 23:25:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 42B278D0019; Mon, 13 May 2024 23:25:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 217D78D000D for ; Mon, 13 May 2024 23:25:40 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C6ED4160EF0 for ; Tue, 14 May 2024 03:25:39 +0000 (UTC) X-FDA: 82115561598.04.3E7FA50 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf04.hostedemail.com (Postfix) with ESMTP id A476240005 for ; Tue, 14 May 2024 03:25:37 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715657138; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QatI3itQrD8q96SWPUWR41mFut+oLHKYbFDPPBrD1ww=; b=fxTAzQbO1BApgzR5DPddd7SvyDyXns9Wbui7BxcDi6R3Cs9vWPF0+dUEFrGXDDNDNKHT6E T9AT/pxnCZqhmgVsiTXnLCDhnNHSN69eVRe/5INPKaMRtI0PGdzPsE7YUByX677Vfmxd1D 1339fkw5dKu2EXaVdmuSsGGPj11wIlU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715657138; a=rsa-sha256; cv=none; b=SYSDFiOUYuASPmIIMlNYW9B2+RX6/oJZ7e8H8UTkUYaKpU8NAgxrgQwkI2dTjiYm3mn4ud IXoS15NfhaGF+0ojJgx6vVOIcZIw0lvYoV7s82E7ArLhvGGSEGmGKtyx8/myRGflHmg8F4 rZUOpiTt/lsbjr3YDDq91hrd3b7lQX4= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 788891007; Mon, 13 May 2024 20:26:01 -0700 (PDT) Received: from [10.163.35.194] (unknown [10.163.35.194]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DA3373F762; Mon, 13 May 2024 20:25:33 -0700 (PDT) Message-ID: <3ade5078-0105-4d10-86d2-02806d48fbd0@arm.com> Date: Tue, 14 May 2024 08:55:43 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/rmap: optimize folio_move_anon_rmap() Content-Language: en-US To: David Hildenbrand , Chen Taotao , akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240512123555.8358-1-chentt10@chinatelecom.cn> <7a4d4992-4c8a-43b9-8c41-a938bc3cec67@redhat.com> From: Anshuman Khandual In-Reply-To: <7a4d4992-4c8a-43b9-8c41-a938bc3cec67@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: A476240005 X-Rspam-User: X-Stat-Signature: p67g5ury9fz44y18o8saiqdaw9s59osk X-HE-Tag: 1715657137-174162 X-HE-Meta: U2FsdGVkX1+euyZbao1aj/mkxDMBrmfCivfqUsiTJWjDCQZhjrhna/Q3mjFNby6DvYrFrXKXF6aQzkX0Z1D93TNe9pibMBJC2GCg+v6PbP41+AfgIRSRL8vBCAHnOyoUMT4IvC9PiiaBQR+H2ykQahYfGHkmxZJjmq6+bbJSgueOIXpKOvXxua+zE18MdS170jVW4YWszU5rp0PeXWnpkwefTx3vmDLPI9T8qffCduEB0tss2bcU0kexd7OyYQqixSM9ZYXFtUo7KqDnacChI6E2ul4FMqDJQzsZIzl67FQBcdq8CWlWe1eRugDCaC1q4COem12/eHtX3wrRZcO0BOMsud8GfIg7yIF9HtLYKvt1KpZSALSLjyvBFKb3WYkfNa4Z+qUybOs0bdj7jNDIbhE3ADuKU3y6KJDaJsUk5kn8a1lY/D+BohaYkwQ0pVmEGRv5xneM5bIai3+oC4gSUTJ8CoAe4pc3QzUHuUt5n5kyrMygtIUMf/sTmDqEpwz4gDrVLdKA7XE2AHaJ909IlYsVeiPhUz3/GY4qSa0mkibxJtjn1e/Dk1/r0d8Bb1I/dZ2bcC2Ay7z8iR8XEyirXOoHJXloqQPYkM7xXXLQtQZl+1xRUFyR3tCK+ZDUxg1Mi7t8+yjKMyHFbYcDBYUdmgTuIDVPdlkxIkGZ5k8p1xln7bhfo9yf6ZgwpEYMLc2RqXiQ+PU63BNdZKI0lLbxBCxSLIE8n7f2o7fpJa/H0FaDND7BjQehkD1K8vX0TpGUwGY0y0rC8ZElYDFGB7IYICYluBtC+6XrmgVm/wXjFQMnOcwPwrpKzzzJEQtWNiWveBJx8CBwLCM1Beh6tIwvBsCX44QUDAxfAONitJV8zX+iawOmKJ+F1jXvgpj/lrvmsJrOiLI/xMeaevMFT0VF+iFBCUL+A0U3m4iNehj4i51RwytWdFEJCaHZF76e7Aqxg6z/k4P83gSSEZCC/sm KEujk5xc CPcwiRF+deGpIXwHYUphtRtNOY5ujsO6N0k/q6roCyM0wm4Trskk9x9Ct5FJYavJSRZ4E0GHBHsr2VmCANZZQXaL3oimUReQcpna8dQAy1v90m9akRATHGIfneUOBy96zDG2YSaK8Lt99e2CfDtp5p1mFR2MiV7pd+rVFCd+FRfpeqg+/NKnxfq4VTv4ryMsL3QOW 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: List-Subscribe: List-Unsubscribe: On 5/13/24 21:07, David Hildenbrand wrote: > On 12.05.24 14:35, Chen Taotao wrote: >> When a folio belongs exclusively to one process after a COW event, >> folio_move_anon_rmap() always moves the folio into the anon_vma >> belongs only to this process. >> >> However, if the folio already belongs to the anon_vma of the this >> process, we don't need to move it again. In this case, we first >> check if the folio already belongs to the anna_vma of the this >> process, and only move it if it does not. >> >> The above changes may improve the performance of vm faults in some >> scenarios, because the performance loss caused by WRITE_ONCE() is >> much more than the performance loss caused by add a judgment. > > Please proof that by real numbers. I don't think it will make a real difference, and we likely don't want that change. Agreed, only scenarios when pre-condition check makes any sense is if subsequent actions are expensive such as writing into registers etc. But in this case both 'if' and 'WRITE_ONCE' statements are of comparable cost, hence adding additional conditional check is only going to increase the cost on average i.e when both gets executed.