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 CCF21E77188 for ; Fri, 10 Jan 2025 10:37:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4FAC46B00B5; Fri, 10 Jan 2025 05:37:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4AAD26B00B6; Fri, 10 Jan 2025 05:37:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 34AD76B00B9; Fri, 10 Jan 2025 05:37:21 -0500 (EST) 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 067566B00B5 for ; Fri, 10 Jan 2025 05:37:20 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A063780968 for ; Fri, 10 Jan 2025 10:37:20 +0000 (UTC) X-FDA: 82991190240.18.E0159AA Received: from flow-a1-smtp.messagingengine.com (flow-a1-smtp.messagingengine.com [103.168.172.136]) by imf18.hostedemail.com (Postfix) with ESMTP id 9F2101C0008 for ; Fri, 10 Jan 2025 10:37:18 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="l F9l1Ox"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=rD9VT4L+; dmarc=none; spf=pass (imf18.hostedemail.com: domain of kirill@shutemov.name designates 103.168.172.136 as permitted sender) smtp.mailfrom=kirill@shutemov.name ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736505438; a=rsa-sha256; cv=none; b=NLADNCkNOBHLH18omlHFvMJnDvgwySYMWFkzbuxU/nH721/49V7s0ItfE1SdFbOjeIy02T mBv+0Tja9ritHi8IKMximKE6tebwxtn0dmBBNpPfUvUF9g+B0bQRsA4Bh1yYpa5Ul42Ejr puMXZLKx1LRxLQT4FZd8EmJahDi1J04= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="l F9l1Ox"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=rD9VT4L+; dmarc=none; spf=pass (imf18.hostedemail.com: domain of kirill@shutemov.name designates 103.168.172.136 as permitted sender) smtp.mailfrom=kirill@shutemov.name ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736505438; 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=Km4XzsnzHBTNNJzmGN8m2TrMMSFreEGVyXvVDroQ2DY=; b=IWvO+ldRKCkMt9f0gTJ4FGGb2m6aEAu95R7XbqDA++xUEaCdNF1DknLPlR1H9buhFLUerl JCusn1tHhx/Bz3LhgjvjSDvzUhQjOODh4XKFLczO083A5tmxFwPQH/p3l2um1BZXYyZz7+ qIxQ9mDVri6Vq23bBQK7N8iZQ5gmlhE= Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailflow.phl.internal (Postfix) with ESMTP id D91B32010D6; Fri, 10 Jan 2025 05:37:17 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-08.internal (MEProxy); Fri, 10 Jan 2025 05:37:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm1; t=1736505437; x= 1736512637; bh=Km4XzsnzHBTNNJzmGN8m2TrMMSFreEGVyXvVDroQ2DY=; b=l F9l1OxgwNCSVpVzHNp2jvRIgcZtfmBz/E4/CO27dbRnPpywlZHXNuQhSufjq09iR 0Q1ceb1IRZSS/fN6814PVfVlDFZc/EVLYl2vi58mWFhJp18o89cYZreU1XtVLRmD 19T4xnFzlXyyyMJOMNOqGvLHe6C60LN2xggK+JESVtgZPwAH5HJRI5xPshZSfrlZ GcMXvirGEd1tDeBMy5m8L171rno7Opv+KWlrx+H6cbu757OIulT2KyrYFRI4HfHI IeQFsKKAHooUKWsb04Ck1WkK+W3OgtdvrKfxU53JSObu8cpzKureitBsWxKiHuto y3zwRAmHw1P1k+RSkV1RQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1736505437; x=1736512637; bh=Km4XzsnzHBTNNJzmGN8m2TrMMSFreEGVyXv VDroQ2DY=; b=rD9VT4L+x6wScm0MmUZeIMvpHgMx8qAL83gowQ/aifn4QOfo3nw 18acnJdLdQvErdaVPbYP4SqjyKSQJGLB3E5eZzuJ9Dtxvp3QeH2dP/hfVmiAoRmf GWim3pv96frkdHzWOHix2M5qmmBHHkE2E9qlP4U6LV/Ha5ZxKqk10JuNAvA27n30 qdxMfQmD+i4hm5mNMNftbXsWI4fysYE9pymAWInDaeeeVJifSUXB3JzOL2PwBEE2 azJQJpPCW1nC9N+YVplzgJm6rVTgPozOzsC1XEmejWeWoA3KkM4A98S8XvWF96jp o69S196+kqgvwK+y07aXY0dqMcuZxp6uqiQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudegkedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtsfdttddtvden ucfhrhhomhepfdfmihhrihhllhcutedrucfuhhhuthgvmhhovhdfuceokhhirhhilhhlse hshhhuthgvmhhovhdrnhgrmhgvqeenucggtffrrghtthgvrhhnpeeltedugedtgfehuddu hfetleeiuedvtdehieejjedufeejfeegteetuddtgefgudenucffohhmrghinhepkhgvrh hnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf rhhomhepkhhirhhilhhlsehshhhuthgvmhhovhdrnhgrmhgvpdhnsggprhgtphhtthhope egfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhpphhtsehkvghrnhgvlhdr ohhrghdprhgtphhtthhopegrkhhpmheslhhinhhugidqfhhouhhnuggrthhiohhnrdhorh hgpdhrtghpthhtoheplhhuthhosehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrnhht ohhnrdhivhgrnhhovhestggrmhgsrhhiughgvghgrhgvhihsrdgtohhmpdhrtghpthhtoh epsghpsegrlhhivghnkedruggvpdhrtghpthhtohepsghrvghnuggrnhdrhhhighhgihhn sheslhhinhhugidruggvvhdprhgtphhtthhopegurgdrghhomhgviiesshgrmhhsuhhngh drtghomhdprhgtphhtthhopegurghnihgvlhhtsehkvghrnhgvlhdrohhrghdprhgtphht thhopegurghvvgdrhhgrnhhsvghnsehlihhnuhigrdhinhhtvghlrdgtohhm X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 10 Jan 2025 05:37:03 -0500 (EST) Date: Fri, 10 Jan 2025 12:36:59 +0200 From: "Kirill A. Shutemov" To: Mike Rapoport Cc: Andrew Morton , Andy Lutomirski , Anton Ivanov , Borislav Petkov , Brendan Higgins , Daniel Gomez , Daniel Thompson , Dave Hansen , David Gow , Douglas Anderson , Ingo Molnar , Jason Wessel , Jiri Kosina , Joe Lawrence , Johannes Berg , Josh Poimboeuf , "Kirill A. Shutemov" , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Miroslav Benes , "H. Peter Anvin" , Peter Zijlstra , Petr Mladek , Petr Pavlu , Rae Moar , Richard Weinberger , Sami Tolvanen , Shuah Khan , Song Liu , Steven Rostedt , Thomas Gleixner , kgdb-bugreport@lists.sourceforge.net, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-um@lists.infradead.org, live-patching@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH 3/8] x86/mm/pat: Restore large pages after fragmentation Message-ID: References: <20241227072825.1288491-1-rppt@kernel.org> <20241227072825.1288491-4-rppt@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241227072825.1288491-4-rppt@kernel.org> X-Stat-Signature: wzeaypfonzysn97en3zcamhng1xbku63 X-Rspam-User: X-Rspamd-Queue-Id: 9F2101C0008 X-Rspamd-Server: rspam08 X-HE-Tag: 1736505438-937053 X-HE-Meta: U2FsdGVkX1/hUaUqy8uYT7eeJvMiT+cBWDY8/xAm/pqVuQl1K1WDNPFZZ6uhoWXLNAQwwaRVC/0FGexF7VSRkSSLpzxU5q8TYq4JtZ1xgajyS88SFW0Ix47yFyGfTLa0ndGoLGKTCsyYmPt2J6IgEAYIZEmL/SV8x27peheD/oYc/sa3jCp/quwHpuL2VDWAPHbffMBoYA+M3rxQ8OPYoK6ipoOLDBoym7nfd/mXo0lH82rSN6fz4Au1zRnqlaMp1upD/vEeG5LwLKRrYgQr0J17h60zZpbZAVC/MJExMiauMYv69X8l7eTftoBk3FRjLmKQEzJ/XhfVOEq/ngnfYYz2gFlQrtpUkuqUNourrc5FCjmIo8ilSOt4lL0Vf1SErJKgdwT9DoP/BoV6b0js3uuSAmR5FvDiSLkOUGyuQV7mF2KcoXPlagwbeS+tsi35w4PQar8iH6qMAPJd9sntA0MbxEcklqyMldGF+224DqtA0VoEKF/26uKOGUZJ3s2eAtH6ZB23R4eWp26aXzFbpXn035Ze2Skzc8ypR4d2DLAwBksWUioGlRX/GEAYcW1QRr+Pd/uP59enrC58HRvL8wttZj/RIFTbZB09nxjEJ3xNTk+t/GY90Z8c0kQ/r97MAS7OBbY0PsugcVZ4f4MUw/p/gN8fHN1DXPhfQ2swcC4FuGHNJdAkw6FxKNpzBmbpccLnHvJ5SfDPivPRG90DFQ+faePIaE5BOf0D+v5os4oyY/UNprCVIJ7B+eFtdLReIyyTKD+0JSAx3jHJN7u26OqlRUycN3MmTSfd2jYG5a4vpi7qFNxDz3Ky47vvVJ0MBC/aT89e67JRuNbkQ0uq5s2aMtvEriemeUJXAaO8sJmK8iRh9gLhO+KtUhvMr8MLBSa6LQzdDnGHHB5Xi15U01L+THyLbpKdRSlCdUFN+UVIarsrclBVF6reQCgAyAl4nxYLCBLclzM+w31q9vq IJiuDTbE vo4R3SDIboa+oetVOuTJQi7nuzJvjHximm6J2Xy5ilC69oJg+xU4skCA4lv+vIhkgR6ftdSVVdiYSqZYWTdzJSTz8enRhPIlTNcf2yUSQX4470QPUHuoXeE/0hvIrFfE64zr21dsgGlBe053hLWL6CP30uzCjHu6NnUaQEXw9rqvIuG/VzQFkmC48LCixT7pwAh1irWlnh3WQ3ekdILhB9VhPFmi4XPj2wrAirKaVUiyxccGJJc6wj897qtpd3tCxi56qVXUHzWdehe/njcAhWRWPgXlvBPhyzXmPKTMOOFExqtQyxaEtPHuVXd/Ntc85ySZ8j0l1bQHnXh7CxcOTj8KapW8efWRq7n+wF4MA8ywcZqDSCDaxF6VgddQcy01FLLN6oCtPqrfCSHhYcgpU8Q8vmUrxEh/KaSokyzqie9DYzLUDvGYeLudlhQ== 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 Fri, Dec 27, 2024 at 09:28:20AM +0200, Mike Rapoport wrote: > From: "Kirill A. Shutemov" > > Change of attributes of the pages may lead to fragmentation of direct > mapping over time and performance degradation as result. > > With current code it's one way road: kernel tries to avoid splitting > large pages, but it doesn't restore them back even if page attributes > got compatible again. > > Any change to the mapping may potentially allow to restore large page. > > Hook up into cpa_flush() path to check if there's any pages to be > recovered in PUD_SIZE range around pages we've just touched. > > CPUs don't like[1] to have to have TLB entries of different size for the > same memory, but looks like it's okay as long as these entries have > matching attributes[2]. Therefore it's critical to flush TLB before any > following changes to the mapping. > > Note that we already allow for multiple TLB entries of different sizes > for the same memory now in split_large_page() path. It's not a new > situation. > > set_memory_4k() provides a way to use 4k pages on purpose. Kernel must > not remap such pages as large. Re-use one of software PTE bits to > indicate such pages. > > [1] See Erratum 383 of AMD Family 10h Processors > [2] https://lore.kernel.org/linux-mm/1da1b025-cabc-6f04-bde5-e50830d1ecf0@amd.com/ > > [rppt@kernel.org: > * s/restore/collapse/ > * update formatting per peterz > * use 'struct ptdesc' instead of 'struct page' for list of page tables to > be freed > * try to collapse PMD first and if it succeeds move on to PUD as peterz > suggested > * flush TLB twice: for changes done in the original CPA call and after > collapsing of large pages > ] > > Link: https://lore.kernel.org/all/20200416213229.19174-1-kirill.shutemov@linux.intel.com > Signed-off-by: Kirill A. Shutemov > Co-developed-by: Mike Rapoport (Microsoft) > Signed-off-by: Mike Rapoport (Microsoft) When I originally attempted this, the patch was dropped because of performance regressions. Was it addressed somehow? -- Kiryl Shutsemau / Kirill A. Shutemov