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 E50BFC4167B for ; Thu, 2 Nov 2023 07:20:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 673A480019; Thu, 2 Nov 2023 03:20:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FDA48D0026; Thu, 2 Nov 2023 03:20:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4C49C80019; Thu, 2 Nov 2023 03:20:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3992C8D0026 for ; Thu, 2 Nov 2023 03:20:49 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0DD56140721 for ; Thu, 2 Nov 2023 07:20:49 +0000 (UTC) X-FDA: 81412167018.20.7685964 Received: from out199-6.us.a.mail.aliyun.com (out199-6.us.a.mail.aliyun.com [47.90.199.6]) by imf04.hostedemail.com (Postfix) with ESMTP id 0BDC040002 for ; Thu, 2 Nov 2023 07:20:45 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 47.90.199.6 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698909647; 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=VcEIo7oBODt+O6o/xUY+0NQs/HRYpdqrK45BUP6hK8s=; b=jKcyomS4jL2XrwsuHegwXznqelETNIYw+4tTQVhPjK4ix7/e37xrcgomow2XFFq1JGrUGN PIZIp9mArYqwN03dKg5ZqXZvna0B27HbnTNSaVIgl3hiJLtN/jPp+32+UHbigQDHTy4Oz8 oKvTrPtwriA7bSRnOaNw7r1nc1WIgmc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698909647; a=rsa-sha256; cv=none; b=miBJOVCPnVUBCYp6NtpyQ/V7Gn5ZlLSWTmRkmX4WnPekV0gDtyY4v31xeYo7lA8THDVwIP CxLjn9SM11Qyr1/iEgsEth1/8IAOiFIkZ3klikPUAW5wWzqbsaFr3jRgMvyU4Oc3fHrvFk P1J9jNA5pdotnW7KDXksRnkq32vtfQ8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 47.90.199.6 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R371e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0VvV7iIh_1698909035; Received: from 30.97.48.61(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VvV7iIh_1698909035) by smtp.aliyun-inc.com; Thu, 02 Nov 2023 15:10:37 +0800 Message-ID: <4978d86c-c55f-cf26-796d-237c81efeab3@linux.alibaba.com> Date: Thu, 2 Nov 2023 15:10:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] mm: huge_memory: batch tlb flush when splitting a pte-mapped THP To: Alistair Popple Cc: akpm@linux-foundation.org, shy828301@gmail.com, ying.huang@intel.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <431d9fb6823036369dcb1d3b2f63732f01df21a7.1698488264.git.baolin.wang@linux.alibaba.com> <877cn22e0d.fsf@nvdebian.thelocal> From: Baolin Wang In-Reply-To: <877cn22e0d.fsf@nvdebian.thelocal> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 0BDC040002 X-Rspam-User: X-Stat-Signature: 88qo4z8fbtjcmf4wur5eb9n6xahdi9d9 X-Rspamd-Server: rspam03 X-HE-Tag: 1698909645-730785 X-HE-Meta: U2FsdGVkX18GumbxybNpCf9N0Yare4KO7066vp/uhPFonAhtGSooKUxbr843iW08Z+2hpyZlJQcZxr22g3I2mnRVoBb2W2VBfSwwa1MgIYqshnKwsB6OiLzEBe5MC2AtR7t/YgDcY0ZJnAYGiwA575sXdXVY9FIJYR12sL1DCPEloIogzpdeETbr9gWJozHHE4tmPEgXfuwlRxQ4oYVbMXEVh9wzoCB1Lx49/6V+d/8+WKSCgUL4x/r8ZK09uVLO03c1L/dE0m5I1dM+yNo4xEqDlygRnGNcUSFRlrbHoexauBBrMV2dTXLr8s7vbSrFRmcj3aqVweZKAWMuTXvqOUfXR6+9IbZpWh4zIvrBUetNmIKoyr3g7Rm8Clmst74OxDx/JCDzmUeGfXGIazt5irZdDAa/ZElWykGvf1qKDrVV4mafahTjKwVHSH7WLsi4jCkYE5rbYS+mvFBQVOaAdfE6QFjK+KXrkiJWgRI0Kv31WiE1qPbXRjC3jdx6Ht5tqvNeoYocVfc5GF/pKiRhGsZRFi4TV7VO43GizttqtNN6wZtad2Blu1MAx0Blj9VxTOcy35A0hOhmylwf6lnD1PoEdswDQW4CX0eEGjLcrvE45rU/SSEF/Tb8kiv1AkVR2IZ93F9eZC3aVQm92KtXgpEyw3dr2Ywuck2EjIpvyWhJLb0ppCA4zMqob1DRlugw7T4j3d7EustNJm5NecNjrNeFkVHMCk0Fc9NpRYCDniiQAfT2XiIqc45hdWwylL2VLUi/BiPvdeMzuvK9tUbT+siJHvP9RlJXxOXgwsq5dIpZ9n4KzLccLmLefStjNSprS7ZmIYjEQEfGiesEKJa7hkOr+EZB29xEgP53j4i1J+63HYZG8OwJLyGlwKPSVqLZSfL86Z1a0ds2BolVeCKxiI/yUHviynMkaWjOPznxEJPu9x8FviTlc3BVqQG0xlxf+tpPIJWd/TeVQH2tHvw 66aCdvc4 BMTGtfazkDLDPkVhwWisCBS80yfyewDDOXu7/V/BcJGNZqXp2AWjZ4KBCrX7SW6aEm2pXQBRD0kHF4fx4LaZYu+ZdEP+AjrNVJszE9laS3CO/pVIhOb6Yy71Vwjs/vRJ1iwpU/8aMGhXswUcX9RGwp0ISEYHGQPZD9dr7Gv3kvcAfZrc= 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 11/1/2023 2:13 PM, Alistair Popple wrote: > > Baolin Wang writes: > >> I can observe an obvious tlb flush hotpot when splitting a pte-mapped THP on > > A tlb flush hotpot does sound delicious, but I think you meant hotspot :-) Ah, yes. Hope Andrew can help to fix it :) >> my ARM64 server, and the distribution of this hotspot is as follows: >> >> - 16.85% split_huge_page_to_list >> + 7.80% down_write >> - 7.49% try_to_migrate >> - 7.48% rmap_walk_anon >> 7.23% ptep_clear_flush >> + 1.52% __split_huge_page >> >> The reason is that the split_huge_page_to_list() will build migration entries >> for each subpage of a pte-mapped Anon THP by try_to_migrate(), or unmap for >> file THP, and it will clear and tlb flush for each subpage's pte. Moreover, >> the split_huge_page_to_list() will set TTU_SPLIT_HUGE_PMD flag to ensure >> the THP is already a pte-mapped THP before splitting it to some normal pages. > > The only other user of TTU_SPLIT_HUGE_PMD is vmscan which also sets > TTU_BATCH_FLUSH so we could make the former imply the latter but that > seem dangerous given the requirement to call try_to_unmap_flush() so > best not to. > > Reviewed-by: Alistair Popple Thanks for reviewing, and also thanks to Ying and Yang.