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 9DB21C7115C for ; Fri, 20 Jun 2025 18:10:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 202016B00A2; Fri, 20 Jun 2025 14:10:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1B2736B00A3; Fri, 20 Jun 2025 14:10:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C8766B00A4; Fri, 20 Jun 2025 14:10:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id F3F0D6B00A2 for ; Fri, 20 Jun 2025 14:10:50 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7E2361D85A4 for ; Fri, 20 Jun 2025 18:10:50 +0000 (UTC) X-FDA: 83576569860.14.F314332 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf17.hostedemail.com (Postfix) with ESMTP id AF49B40014 for ; Fri, 20 Jun 2025 18:10:48 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SKOPja0W; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750443048; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=eTL8+GBTgBIdhD/dfUL1rWHXFAnAWBXhoPK8zNFX/+g=; b=CpuCrPoGIpohJ9aKbGSDn6QwqpQtxm4k29I//uLCF4ms1OAqWviE+mSAT8T/BuC5+XDSAO fQXUaB/mkGUad9bhGt+EJwS+lfQ2tp0bKVK064nSWeFUgmSp/nJHk2oiqg8/Bta96yQWly HyneF+3wz6Xc8u4xet7npBOT4E4HoqU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SKOPja0W; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750443048; a=rsa-sha256; cv=none; b=TbFNYeHo3CTtxH7N3U0irBqsO9nNYOsCubUFNAdLjhz26Fh9RMqifK/zvofSL1p8Gbwo85 8sEkc7JOgs4+BTqSNsfBt57dHQcwNl6dXWqPxoOEbJoZLePjdX52MUMTwlLalg+0Das+AN 9sdAhNNxZ3N3TYtokeixga5oz0m4RKY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 4C89F4ACB4; Fri, 20 Jun 2025 18:10:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0423AC4CEE3; Fri, 20 Jun 2025 18:10:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750443047; bh=J8Nl1w3Bz4qNvS66v1+AAKgiyqE2IyU1rywepTjaUug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SKOPja0WBwkiJLxWLGFy579v5Nb+o5AceZhAJqVD7Rhgj8k5cgNZp4i3+KG72WMmp sZ3WgxQOeb+40SjTYlQlrNLWUg5paqBEyVdkTjgf2/u3uIdDyJ7vBdnHUNV1PBzfLm 6TIxswvB8MLjBFqCmnMVHqOnF3K7hRoHZryx/76TioYT0V35jGqud3XBvuehzzkY2d q3UC3z4+6x0RuLVDuYeED9L9aO+IZxA/ME1Jbn/ZaG5gkae16HfX0qaLhMKktugf72 6so3S03wC9+ijwSatL7kDsAKZHwEi10ODUlUvjopGPcArLP02Ihxi7xvtTds7flNg4 iHMxBKgGsnVMw== From: SeongJae Park To: Lorenzo Stoakes Cc: SeongJae Park , Andrew Morton , David Hildenbrand , Zi Yan , Baolin Wang , "Liam R . Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Vlastimil Babka , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Lance Yang , Suren Baghdasaryan Subject: Re: [PATCH v2 5/5] mm/madvise: eliminate very confusing manipulation of prev VMA Date: Fri, 20 Jun 2025 11:10:44 -0700 Message-Id: <20250620181044.96643-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <63d281c5df2e64225ab5b4bda398b45e22818701.1750433500.git.lorenzo.stoakes@oracle.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AF49B40014 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: b9axoj15a87fmjsd6rwxxjzffqun16oy X-HE-Tag: 1750443048-246097 X-HE-Meta: U2FsdGVkX1/lbBTNtvE20bps/iUC7FE3MmDTngi7KS9RAb0wwO6HladScwnBm81NSmXwdxwjuhlw/BhHoQMb9/giMY0oY1v/x3BZi+1kJCj6gF3rogiT8uaLzmhNCkJkLcze7CPl1zFyae0vU+8Qg8beY2x4SRepbTVzI01f/1LHUkJjZq9iCWRy0wntqvsNFq0PmoF3hSCjSFGur9mQ14X889+d9CtszopG3DVwswsgaWlUc+ToglSvTDC0+wHFq+IHbH5n3vV0im49Fq9HvQGlJG1wM77eP8e4D6TnW1P6Z2nJnVhe/1f5PU/ct63tWTfqGmoLEpjVVMhw7r5sGqIe9kEvHTUczqSFQWt3GF9jBiL0ZlryR/hHLxn7Xi8IfGapL5WMBkYXb64d60RuSFN0IbIQ5C+HW+v9JPoOJIQCWILdto49qMju0hetYIEXAg2+SIayhNc2bGXg2eiYIOfrEyzTa3hElNjAs+TBxDOEVH4ME7TSjr8v0F6KKwKlpUjRKWvr/BYWSXU/UjIhq+dIKAZjMUPpKlqrtsgeXGUoFQPHXQJNrAtFnb7g5d0pGhsZWOL76CAtYUaBOziuRRjZckI0ZhKYDU9eDQHRZcPeUHz6r84ci+gH6KzVTKsoIiftYdQbYwsgLqLsrBkUG1IhML5aZZNeBdgtSdBEb4zvhtDEroYR9wMTZPO3X/sPrvR8lSFTYBmttmQbhvDdvFjy5LtcsbLA3S/7AvDXwpgYoYjTfcNLEtFBWJ29YrieopmS+6u6X/jb1lu32170oecj+83VTkQ7p3A9+uBTIEL/2tYYrKjDL3ocEjtHp+Sov0c9b6CN/MWQEWaTXHeciRpmcexbdRO1/PuemqWNwaU+8OJrbZPdzx7JGReg3kqe8LdSbxISIsyLikfvaxhGj0qj1SQYAsyy/8U6juu4zw4CfbBooChWjkC+60D2MQMT6wC92ts6TGbKBXYnhy+ uXdi1Xx3 dz8S0CbgIbpXICfb/2LEEuNC7jTD1yt1hQzs0OJmGL/CTnJo2vagE+dO9nRHlBN/aj226bKKMcjB5nogly1XKUsiFjwa+UfeQBPOUC/qQCybpqEwCStgDgCuXiFp4vRxS10Qz6DOfevzn0d2yKVSA37kR+W0l7NGaVBpx0zXH19zizNIGOWEmzxNCd7OTuj2uxzAliu4Sjb+oItCRgfU6v5HNkCUO7i1SWPzjLiqWri4c1x7VTkYjmih4+yQNwTVbGX26 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, 20 Jun 2025 16:33:05 +0100 Lorenzo Stoakes wrote: > The madvise code has for the longest time had very confusing code around > the 'prev' VMA pointer passed around various functions which, in all cases > except madvise_update_vma(), is unused and instead simply updated as soon > as the function is invoked. > > To compound the confusion, the prev pointer is also used to indicate to the > caller that the mmap lock has been dropped and that we can therefore not > safely access the end of the current VMA (which might have been updated by > madvise_update_vma()). > > Clear up this confusion by not setting prev = vma anywhere except in > madvise_walk_vmas(), update all references to prev which will always be > equal to vma after madvise_vma_behavior() is invoked, and adding a flag to > indicate that the lock has been dropped to make this explicit. > > Additionally, drop a redundant BUG_ON() from madvise_collapse(), which is > simply reiterating the BUG_ON(mmap_locked) above it (note that BUG_ON() is > not appropriate here, but we leave existing code as-is). > > We finally adjust the madvise_walk_vmas() logic to be a little clearer - > delaying the assignment of the end of the range to the start of the new > range until the last moment and handling the lock being dropped scenario > immediately. > > Additionally add some explanatory comments. > > Reviewed-by: Vlastimil Babka > Signed-off-by: Lorenzo Stoakes Reviewed-by: SeongJae Park Thanks, SJ [...]