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 E34A1C7115C for ; Fri, 20 Jun 2025 17:13:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6507E6B007B; Fri, 20 Jun 2025 13:13:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E16D6B0088; Fri, 20 Jun 2025 13:13:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F0196B008A; Fri, 20 Jun 2025 13:13:02 -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 3CF9D6B007B for ; Fri, 20 Jun 2025 13:13:02 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9AC6280C4E for ; Fri, 20 Jun 2025 17:13:01 +0000 (UTC) X-FDA: 83576424162.27.04E65A6 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf30.hostedemail.com (Postfix) with ESMTP id EC08D80011 for ; Fri, 20 Jun 2025 17:12:59 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nuts0seH; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750439580; a=rsa-sha256; cv=none; b=Q+LzWt2+jZ4a7F4oEvumJggly4C5nMJYgBg024VreCFhT1n0MMOmIh9G4keU8cRNHtEflp L+JWuzSlH6y3rsFN2q63iqzKCUBnw+yK+Dze+Dz60I0OHFVU9lws1wPbId2Fn3yeX2A3j+ NAkcuInxYwPgNBSviCrBQZD5exK6dEI= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nuts0seH; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750439580; 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=2FBLqnxbN5BnJn9w+Vob7WisEgmcr64n2AUZefplfss=; b=CRh8PsaLSbF7xz6373pcPwMWnCwDG3xjxy3QD2bOfQwBgUQf1RzCbT3ykrE7ZuxFRZ4kww ktw83WL4L+a0Dp6CRCNmLKVJqEnHBF8iOSPkPHgqFtYfHeJL9VbsYQtWlbwkdr/q0oLLqB Ve4MuFGg6zYuBUKd5ga3eXlD8NGAUc4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 7091A5C5D53; Fri, 20 Jun 2025 17:10:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 722CAC4CEE3; Fri, 20 Jun 2025 17:12:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750439578; bh=jHlMq2FYYEcJOb4AGIUYgpbhEzPJqg2oFMwJvqUlbSE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nuts0seHm9uHjZRrpyeagshZNw3M3G/itBNDAvZTUIA1AUYYdaydnCKrgn3415JXJ 1meN7guelE3qjgpJg1TfDJYBpELuW+aNoZWKiZYLnZJOX7Og1l+2GBo8HdA+EmRf0j C2dCM1BRfjxk6Kt71iUgmGFUQdmasf9vXQARNdE9v8RFN2EDyj0qRCdXS1YDNWg1Hx LJeMHIPmwAMseu7LRcKE6eLpznow+hAq6UMYvHWDRjibi7UxNDqWOvRRQxgggjpbvS FEx1djYZSw00hNM0uu6YAkM4mcodmZ6h+/FdC7U0Nnf3mKXN16eoEOGn88q/HgKa6I PAfWzXSuEQY7g== 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 1/5] mm/madvise: remove the visitor pattern and thread anon_vma state Date: Fri, 20 Jun 2025 10:12:56 -0700 Message-Id: <20250620171256.95735-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: EC08D80011 X-Rspamd-Server: rspam10 X-Stat-Signature: o5a8f3c3am8qx3qgofbtjnmdu31ec3cm X-HE-Tag: 1750439579-418436 X-HE-Meta: U2FsdGVkX1/lXLGzmoMByRdfarPbtYUwsiYFK88nyO1TnDzGUiSHmPO8n84LLeObeYU5w8dVH0IuZrRBDmC2SBpjJNHxIKiqHJE2H87znplciavRvLTnCAx1Qxd1tKkyhzy1yMIIdnvLMZUme/KtdmAqUvW+305A8JBFDlpkb28e7J/LkksDa4gBi48QryETuaUgbtA5ogwhFpbE6QCQByp+ds7nY0peIPFzk+UHgQe1LphurOtdldY0roZ3OSOhtDhCeJDgZlSzNrnHe5bxFaos1hfqTO2i/guDkBXqiczLh3KxTQQd+AQhjO3KfIUR4G/wSqOPz0XpKMqjtO6/D8RGo1r/0J7T06r6e+C2M0YXgXi6NvjSOAk4gOo77ENEisD4St+rmhDGSg3Z8OVZn4VKaB2KMIyJhM4uHQRDJeuLs3AHf2eEI/HjnAUUcCsgh10mSJpOfRLjS+q3d2e6NyWccBYZAc0tJloRMFCEPeYsoB5Sb1HVez7OfCyIPsqMzHQMWqby7evqINeOkVWvF3W0i56m0AwEurmqS1rIU890KXn/tHXBWCVxv4nMKSaRKnViQAWH2Cl8Xxt91oZdgyhto1XCDhkr/7d4ntx9VDbYKKy7YQvL4oIjNyVX5DfMGxlh7uTts+pv/CfjbwXlprPhvYRf/RCAyA19n1/O1ySCRa7Pf60cm3mraPYsBZQfd1XE1H92Jwnax8uKHNwkxVCgk7usBpfo6+QU98o16l+imTK+J2T9pHZz/LbcnE9SzZfVI8H6NTfx3nKgYQXevwJOxGDHTCKpXWBkiD5MEqmdeUBf/Ut26RyvBjaWEuNmDOpg/jPPwTg0+QvrYzXjT0aorjDBF3lSn3vQP4n0011WcZ3Xm1JVd8A0sTRtr271e60bL3OdOctOFc6o/pRHmpvXph4CkBWVzNyiU8RNDM6BTuec3Zu2P+Vjrn3muNayCzKC/ZgXomNk4i0lW9c HQxz4U69 GoA7EwYel6vebS0bJNKv3WiJR9dDBsFGTUeoLQUaziilRmHhKmwkacYHRIS6/A6VkVRp3II1cNoc5pQXJwPrlB9L1EAhHgtvC6nAPMmzFb20uPx5VndgeUb13pPzW3iS8w5xxbOxRIZqQStYQ1t7FVRVBoKHXczeDusfz2a4PjesJwoWkRWmOtXCx3NMYZmU9t/WaF/elYyW1cI8AWjRXf3yw48e7E0dfBNGrgzw86m6tFLrrGWNKkSeAoVnsqgDd8S8dkc5TeNFdjEDbK2lj28PoImUpqHrf690cHXn1i/oK8Gs2HkJb8XLR6A== 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:01 +0100 Lorenzo Stoakes wrote: > Now we have the madvise_behavior helper struct we no longer need to mess > around with void* pointers in order to propagate anon_vma_name, and this > means we can get rid of the confusing and inconsistent visitor pattern > implementation in madvise_vma_anon_name(). > > This means we now have a single state object that threads through most of > madvise()'s logic and a single code path which executes the majority of > madvise() behaviour (we maintain separate logic for failure injection and > memory population for the time being). > > We are able to remove the visitor pattern by handling the anon_vma_name > setting logic via an internal madvise flag - __MADV_SET_ANON_VMA_NAME. This > uses a negative value so it isn't reasonable that we will ever add this as > a UAPI flag. > > Additionally, the madvise_behavior_valid() check ensures that > user-specified behaviours are strictly only those we permit which, of > course, this flag will be excluded from. > > We are able to propagate the anon_vma_name object through use of the > madvise_behavior helper struct. > > Doing this results in a can_modify_vma_madv() check for anonymous VMA name > changes, however this will cause no issues as this operation is not > prohibited. > > We can also then reuse more code and drop the redundant > madvise_vma_anon_name() function altogether. > > Additionally separate out behaviours that update VMAs from those that do > not. Nice work! > > Signed-off-by: Lorenzo Stoakes Reviewed-by: SeongJae Park Thanks, SJ [...]