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 B8B62C77B75 for ; Wed, 17 May 2023 18:54:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 26327900007; Wed, 17 May 2023 14:54:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 21348900003; Wed, 17 May 2023 14:54:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0DC2E900007; Wed, 17 May 2023 14:54:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id ED930900003 for ; Wed, 17 May 2023 14:54:49 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A5B2D806A8 for ; Wed, 17 May 2023 18:54:49 +0000 (UTC) X-FDA: 80800648698.04.6281DA4 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf29.hostedemail.com (Postfix) with ESMTP id 78872120018 for ; Wed, 17 May 2023 18:54:46 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ScJj743C; spf=pass (imf29.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684349686; 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=mkG2ZLXHuugF8E/05ptWNFpBJazv1H3EjWyKDlq3jVU=; b=Suw42BazO1cuQ2xkvGJVpeqKsTQCyTovgT8wIntnnyA0BK6HuldFIfJBCcPgiwl6lpQ118 yuZDeNG+b7ppMSGWJrqfvAxDPV6UJtFBqs+z00D5MOPmGq11Zspu5oCIis2SR+oYjPeCDu s841z15dnxzhzUEKFlvB26BaHVa0fRI= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ScJj743C; spf=pass (imf29.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684349686; a=rsa-sha256; cv=none; b=48MNJ5sUTz1nXTSUp37wWvAmL7ERWWMwR9Ilu+e0BBNFRhWCNiNWvPEx6GjwLNodMUqTOd 35/KbStKm99I8I3fiJmNfPMD5ibMrg31H1tpAuW1Z572a0FBPjswb58SQDw7qra4F6MLfQ hzgfrfj2RwELu6ByIbHRZcNOGRvB1YE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684349685; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=mkG2ZLXHuugF8E/05ptWNFpBJazv1H3EjWyKDlq3jVU=; b=ScJj743CPGb3kFVq5SwVIouTLG38xFGNYUriEn2IijZ6o9CuwYXOLmjgX7hvpGjfpyxqo9 cOT9vIjShDHtyvVoNqlxDBI9SpW6Adc+o86AVHZAnvfnImkUbPKpBKuOzwb6TF0RDyGKAf PTHpdKM/ZJF9Ml9cVn13FI1mwuWUTCE= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-522-XLtCXpPVMNuerLi8UEarDg-1; Wed, 17 May 2023 14:54:41 -0400 X-MC-Unique: XLtCXpPVMNuerLi8UEarDg-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-5ea572ef499so2090046d6.1 for ; Wed, 17 May 2023 11:54:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684349681; x=1686941681; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=mkG2ZLXHuugF8E/05ptWNFpBJazv1H3EjWyKDlq3jVU=; b=dezJoJ5+Ip3VA5vFL+qU/8Z4+NdY3p8zDu2F0NhA+n8yjA/VXb+Bq/IUSGAHa/Jo55 MGdL5lYAna0cG3sx2KRRtvRCIQXzeBWHPXUmBTg2KCJc6wYd9Jbl327Nq325Fx9kP+22 Lb9t/c6x0+th20NDJESCigUFWUtrI8StXCJvh5Tdd5UykrJbzlLLphXvCgtc6QSUvMqh yQQ18eZlZljOsfSOjlhGLvxbal1XsCESg248IbRT/cnlF7mHShMbGjRzxCBRM36UXYxO Ca0HxMpnGxxCw5P/2BHLAS99aPfWV63zw+kzzcjvwZKdKLmMwI2oXj28CnFY36nSuFkD 1Lxw== X-Gm-Message-State: AC+VfDwTIc60N3MWAtscfscddSy0s17TXLwS1fwMXU+ccFRa54MW+sb9 fDHfWzeXGxoXVEiVq4TUf2li4OdOhkldk+y2r6u3ZDwMLasQpzsA1Q37ja5X09Z3SW3QXX6bQja kGmrVB/NavvU= X-Received: by 2002:a05:6214:e6d:b0:5ac:325c:a28f with SMTP id jz13-20020a0562140e6d00b005ac325ca28fmr6964961qvb.0.1684349681329; Wed, 17 May 2023 11:54:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5EypXB7UqbFiDuTkKMybkoiPJcibWVXF0N5XugzSsxuyTZrUjrBZtLZWsVQH9jV9pw+C/W2A== X-Received: by 2002:a05:6214:e6d:b0:5ac:325c:a28f with SMTP id jz13-20020a0562140e6d00b005ac325ca28fmr6964932qvb.0.1684349681041; Wed, 17 May 2023 11:54:41 -0700 (PDT) Received: from x1n (bras-base-aurron9127w-grc-62-70-24-86-62.dsl.bell.ca. [70.24.86.62]) by smtp.gmail.com with ESMTPSA id j7-20020a0cf507000000b006211c23abbasm6531041qvm.26.2023.05.17.11.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 May 2023 11:54:40 -0700 (PDT) Date: Wed, 17 May 2023 14:54:39 -0400 From: Peter Xu To: Lorenzo Stoakes Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , "Liam R . Howlett" , Mark Rutland , Andrea Arcangeli , Mike Rapoport , Alexander Viro , linux-stable Subject: Re: [PATCH 1/2] mm/uffd: Fix vma operation where start addr cuts part of vma Message-ID: References: <20230517150408.3411044-1-peterx@redhat.com> <20230517150408.3411044-2-peterx@redhat.com> <4a68aee6-68d9-4d17-bb7f-cda3910f6f1f@lucifer.local> <99566f92-9b97-4b2b-b75b-860532e851fd@lucifer.local> MIME-Version: 1.0 In-Reply-To: <99566f92-9b97-4b2b-b75b-860532e851fd@lucifer.local> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 78872120018 X-Stat-Signature: p1q3yrzigoe78h7p7tzwgmwxycpw6xdz X-HE-Tag: 1684349686-299868 X-HE-Meta: U2FsdGVkX18PjeRDuhlLzub7MaLSwm5whLX1U3jSyjandVyKrJTEWe+ZgKAjcwj9AWChS2vv22iu69hYFzHvg8lCwI83at5alZf6o2olHrkkktjmmlbgIlP+fF9YVWAyojhOqeRJyjvb4tMUa2QAftGD265EwBfbQvvtkStoaINeHMbe9Le5j8eY2HGPXhbBocHskqwD9DhlM4tSP4+Y79O6Vgbo8Hc2Hdcf0R2RkGSgDGj1gN/Dyj8r4iU6vPh8fWyP0VBCPHR/8hhoAYxypLuRsWMg/TC6w3kzj29Aq1RGpAEpoSf7j/eFAQZvUXQ1hHd5EuxJW651Gb0IKP75QPH1M0BjqmnCW2IlspDy/gjf2TgiOQYw8aJwbbvCeGFWdpbPtnMU8PRI9DeBDlB6P1ajm5gOX4FP5UfF6tKO6latgqycHeAyLg7kD/1EDrwq49nWYJNvMg1vFsgS9aekTc3rRFoFCfGytvamLvgSPktkBzUuwuDSQVoULWR96liggjnF3NetyBzjMN5CcRDc2d55ce1fQRg6VMpc2eO3GnxhKmmCzqQdBpGYID90qOX+5/SLJMpT58ehvO86irOZx2FHQZ9r/fkBEhc1rAfyMmNgwHdxfYFnTgsp0DzEGpcEHmIAdmTVyzZ0FKA2XA8sNwZ0N23ePRbvmzMoDTpepfYByZ+avOUp0FAXqZpSN28NtJl+eMUyDHjpROMtkbwinQxspzKLhvDEhKEBHebMoo0yV3nmQByT+jzP+ryup+8FYRJdNDg+yEJLFL1/4fBqJM9N/7gIN3morn674ayniteN+yNPpWgorZmInus43tRTE1O7I3kuARygdg2nqsUNmKhxRlN7MhB73S87NE5Q1aSe/jdapzolmr7S+oFEk4lJwKO9bNoFIcGWPDa12BN2bVqIIO+NX/Fe+NjfpdmLiybdcqXeOtSPQKDuksAp9hiRzCp8c+PZwjgtJxX6pcQ kzh4a61h eh0KGOj47qL8xDBp03PpXhKPgnNw6IyMSdEsmbCWwqsRPpHolG3qKrS9amdsn+tkujjQhzhNbw/PmVIOjZO0qfkq9HFywsUvYImyZ/0XPqT+SWWCwi28NE4xS6AUwewCth0FBpBIBxLdwA7XnB0xTmTfOX/HVP6dTwu8HQosr/PJg1q3ZQcgoNJ9+FOeozTJG9jBiH0IN43lqwtJaQ+UeASvKvb1vjvRJ7zr+pKIE9fwbpDesUql6+/B33QCrNwnfiBa6Q+8xN4vFAVaPJy5297takOkTwrENYYO/q2D/ywE9Tf6IVSrVinInJ1RvYhezdDd/USqTkG55rcma0CskQMdmIHhG+I3zOCgEZ6lf/2Tv/1O5KgYiJZGR48OSOL5P3LEDO8BctYYYJcJlPKQBpQg8VL/jux4kLWLyu5Fgroe/dAVhqbtmqPixkQxyiz+7oUWMKSha78kie1Pdv2p0zsxt4w4/N4Nr8oYl 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: On Wed, May 17, 2023 at 07:40:59PM +0100, Lorenzo Stoakes wrote: > On Wed, May 17, 2023 at 02:37:41PM -0400, Peter Xu wrote: > > On Wed, May 17, 2023 at 06:20:55PM +0100, Lorenzo Stoakes wrote: > > > On Wed, May 17, 2023 at 11:04:07AM -0400, Peter Xu wrote: > > > > It seems vma merging with uffd paths is broken with either > > > > register/unregister, where right now we can feed wrong parameters to > > > > vma_merge() and it's found by recent patch which moved asserts upwards in > > > > vma_merge() by Lorenzo Stoakes: > > > > > > > > https://lore.kernel.org/all/ZFunF7DmMdK05MoF@FVFF77S0Q05N.cambridge.arm.com/ > > > > > > > > The problem is in the current code base we didn't fixup "prev" for the case > > > > where "start" address can be within the "prev" vma section. In that case > > > > we should have "prev" points to the current vma rather than the previous > > > > one when feeding to vma_merge(). > > > > > > This doesn't seem quite correct, perhaps - "where start is contained within vma > > > but not clamped to its start. We need to convert this into case 4 which permits > > > subdivision of prev by assigning vma to prev. As we loop, each subsequent VMA > > > will be clamped to the start." > > > > I think it covers more than case 4 - it can also be case 0 where no merge > > will happen? > > Ugh please let's not call a case that doesn't merge by a number :P but sure of > course it might also not merge. To me the original paragraph was still fine. But if you prefer your version (which I'm perfectly fine either way if you'd like to spell out what cases it'll trigger), it'll be: It's possible that "start" is contained within vma but not clamped to its start. We need to convert this into either "cannot merge" case or "can merge" case 4 which permits subdivision of prev by assigning vma to prev. As we loop, each subsequent VMA will be clamped to the start. Does that look good to you? Thanks, -- Peter Xu