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 4528ECD1284 for ; Tue, 2 Apr 2024 07:29:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 94F416B0085; Tue, 2 Apr 2024 03:29:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D8586B0088; Tue, 2 Apr 2024 03:29:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 778D26B0089; Tue, 2 Apr 2024 03:29:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 58E2D6B0085 for ; Tue, 2 Apr 2024 03:29:31 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D71ECC09BC for ; Tue, 2 Apr 2024 07:29:30 +0000 (UTC) X-FDA: 81963766500.07.6288D21 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf14.hostedemail.com (Postfix) with ESMTP id 3CBC5100004 for ; Tue, 2 Apr 2024 07:29:28 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GjDkGXRL; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf14.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712042968; 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=kmXagDsf1ccCwe3Y7JKUKeOyOMpGB+APUPzMlq2XWyc=; b=4FRmo03xeUG7gCOH2FlttnngExYFqJPjXQ2SMWDuMVXTUnUqM0ClN/QsyqCvqEHP/wleeK 1D2WlxZnwIcyczLyrna0iKiKnt6brn8HQPku++SFwUpIPzG0yB7Mn+K3mJP24rIzs22QVp nzdB6DqZTgJzdF1vimWjxIT5l5uyT9c= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GjDkGXRL; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf14.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712042968; a=rsa-sha256; cv=none; b=JiVwzpZqcNPHMuiwsT4NJg+DipQDO5NIVQ3nZc0SWbyWK2JGmEa07PjiEkPwsG2ir6/oY/ mbWYQUB6hJ+d+IrV51i/zev9DkUKpE/LqcRQG3r5mf7LzlCGxZBaQ31cFnbEcixswTK8UI bhT/dT8iYbal6ZhAHiE2xk5LZ6F/QFU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id C1A4A60ED3; Tue, 2 Apr 2024 07:29:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01353C433C7; Tue, 2 Apr 2024 07:29:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712042966; bh=qOicry9z85KjMA4krUEtV2LPv7uV/eb02RvZJJGSRL8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GjDkGXRLeXSxlcRYovEB1Pee7Y+iEj/+JSbkC/aQYrhaT6zD57IZwO5zf3+ec70PZ CT86MYuJ4MXeuGNT90V5/Fyj5XSGha15SZz0Pz+Jr0D+z4UfBnaldBxegqdhes8P6V PAcwNb+Gqm9cCWq+JYNld2RGNAVRz0lT6gMSBCARt43nfawALplsMH2OEpJjep/f0g TUr8SZjyPcNUZCDpAvnxMURbmEpRcmbLkA4kMm5swqlejelwTqiHT1Nw2BO54a43Wg +pUmtQZSjkg4H2HuAVHYaE35aaZ764YiKT7/KFDmQ8HX5D3KLlaudHVmwgfK/VKqWH JQrCC45iSNBmQ== Date: Tue, 2 Apr 2024 10:28:42 +0300 From: Mike Rapoport To: Vlastimil Babka Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, patches@lists.linux.dev, stable@vger.kenrel.org, Lorenzo Stoakes , "Liam R . Howlett" Subject: Re: [PATCH] mm, mmap: remove vma_merge() Message-ID: References: <20240401192623.18575-2-vbabka@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240401192623.18575-2-vbabka@suse.cz> X-Rspamd-Queue-Id: 3CBC5100004 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: yanqrfpctxp89gn68xikbdyxpcdb1z4z X-HE-Tag: 1712042968-686891 X-HE-Meta: U2FsdGVkX19wzK5ehonH/6kmJE4by8GuYT4d6c7Il2HkZh1VPN5In9yA/hJuwl/ce7fPPGAXFMkOGtnzy/yNsvtXukLuzPFls8yIsR8UJiVl0M0Os8JRYlqS0Qs1fHY0jKLUdl+QW5+Td09BH5az29tQKkL12r+yMn3VNQqtJsNUjwKQucLO5EXIQffHEDS09sGVlhL69j+/gTflOBGDx+yUaKyxCjbK533OECdyA+vuAb2NZnFcfRi/IWpNcy/dG4M4CbxTqzrEFgM7Jd2YOF4YAGWXLRVGsQOT5c2il84ADAEbZtL6w6cdABAwejPWl4TxbpTADeWjQp0ynrT6FzXWyN57BCFIoVIzeMBWwRVQfTiFfmvf1uovWKv5s9SM1aMVO031Fk6sLJ65jLvV9eAnb5slB1j8+KB07Gd1rJexrc91qWk5/tHC65m+j4mEh4EiMFjyX29rsy6nS2RPh2qGKFt27NUszdFIVG7NvTrAVrBVgLjn8UpT/b7siBH/WUyhhx9taDsUmaWPMx6iV7QSRvrtngD664JX+/+8an8QqkNo1FzD/0roXPXrTEEWUWXhFyZbUxuloEv+OWKt1Lt/bUteNjw19H1F++TQTa3jtTXSf01dRDHOPnfz94Tb9WpsUZrhettuVPXMBAESa2UKKnAZfJZJeIRR5uw0gPY4UbFm60EaN9yw49N4iejukaJeYsDBHUgt4CKWm/2OlT5g7XmeOTX95/KPL+oa3HHg7G0qF3LKmy2xzig4/4D+POXoqyfjP5m+V/v9JNY6kk3u4xizDA+LRCC7aT/52kV1tvIHLH4Rbc9EWQ0QfJe0tUp6DYp6DHPRmWF+R/lrqvG3UU6908dWqSy37JuCRPPfLsl9HDPkcbILGrr+OQwpsgYiPqzIs3W9QCgUf0JGqmgJP8wCueHXT1ruFZtRAZN+JS05aQYSTbD2Mi61KO7Mvt/b8NKmihAD6j3akKz W28I0x2t sPpXSL0U0MrZ6FoLsjW3+6ZMSIXPWH5OlcXJexcH74lZd1R/rq0Hrp8intGkbRnQMkLnYg0rhRshun0pxee4wOgJD3sVKQD7l8nN9ceYNn76Dy8Y0hk7NorJ1+NQpyDdHMAj7NtYnv6WfR/T8xuONxWkXmk20KCX4+lieS3GeZr1991jiAG1slSygN8UxI+DSPt+L5yH4vC9OKkxvavDJCU4Xj5MJbOZD+q91foyo5mbShSKZbSwAGyExn8LjzKvQdrNRVIJQ35q1W1DSnI5HG0eS58xtG2+V5YABpsRlicCP8n7puSQVnVt9bMecR0PNe6UflofVsykw9IMI/abp6HPI7sA6cHXwZYNJctQ2TTk7FkDSx5XZIja6rL2VxFgnXQkWqxU/JROJrICBwlriH+TYSA== 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 Mon, Apr 01, 2024 at 09:26:24PM +0200, Vlastimil Babka wrote: > With SLAB gone I was looking for what I could delete next, and then it > dawned on me - it should be vma_merge(). It's simply an unmaintainable > mess. > > The code is extremely hard to follow. There has been a number of recent > attempts to made it more readable, by Liam, Lorenzo and myself. Almost > every time this only resulted in subtle embarassing bugs [1] [2] [3] [4] > [5]. For many of the bugs the only reliable testcase we have is the rpm > process running in the Open Build Service. Which is worrying, as that > clearly makes vma_merge() a potential supply chain attack vector for > planting backdoors. > > Thus simply remove vma_merge() and all the related code, and adjust all > callers to take the path as if merging was attempted and failed. > The only downside is that there might now be more vmas and maple tree > nodes due to no merging. To extensively validate that, I've booted the > kernel with virtme-ng before and after the change and checked slabinfo > for the number of active objects: > > before: > maple_node 1159 > vm_area_struct 1538 > > after: > maple_node 1113 > vm_area_struct 1861 > > Yeah there's more vma's but interestingly, less maple tree nodes. I > believe it's worth it. The larger number of smaller vmas could even help > with better parallelism thanks to per-vma locking. So the conclusion is > obvious - we should have never tried merging vmas in the first place, > hence the tags on this patch. > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d014cd7c1c35 > [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4c6759967826 > [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e7757876f25 > [4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1419430c8abb > [5] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc0c8f9089c2 > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") This is hilarious, stable folks will be excited :) > Cc: # CVE mandatory > Cc: Lorenzo Stoakes > Cc: Liam R. Howlett > Singed-off-by-one: Vlastimil Babka > > --- > mm/internal.h | 7 - > mm/mmap.c | 368 +++----------------------------------------------- > mm/mremap.c | 60 -------- > 3 files changed, 17 insertions(+), 418 deletions(-) -- Sincerely yours, Mike.