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 A3724C001DB for ; Mon, 14 Aug 2023 15:44:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 413898E0002; Mon, 14 Aug 2023 11:44:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C41D8E0001; Mon, 14 Aug 2023 11:44:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28BC68E0002; Mon, 14 Aug 2023 11:44:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 14EB88E0001 for ; Mon, 14 Aug 2023 11:44:20 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9B64EA057C for ; Mon, 14 Aug 2023 15:44:19 +0000 (UTC) X-FDA: 81123131838.02.9985625 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf24.hostedemail.com (Postfix) with ESMTP id 932D1180012 for ; Mon, 14 Aug 2023 15:44:17 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=pAeaso56; spf=pass (imf24.hostedemail.com: domain of jannh@google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692027857; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=rqfNmX4k95GxAmCJ+7I1b46X41dBF6Sr+i7+9zDFrXM=; b=umyGbpYxBdw3UOJOHDtuOAx+NG8Uj7LIZ/rGFwtwr3FqOXB4jZ9VbBlMvr/zgs//EecVB8 NKvLlaNhM2rG4wMYLcHpxADtUxt8DIwstf5dxNhbTQiSqB9QbsMBDKMGlhzeFyGac98uFF vg5z9/6wRE2FNjKRbraV08pCxy5FYgw= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=pAeaso56; spf=pass (imf24.hostedemail.com: domain of jannh@google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692027857; a=rsa-sha256; cv=none; b=R2s6NLaXlwOl3t3V+wValo2vCV2n4Wh5AL77konMCztUI93VwhAMLHM2ntGh/jal8gNlbF 2hkt9+IQb6EDORoJ+FgantqeHq4NnDjVSQERaOkpyI165PVH1LEiJCCq02a1PuoDGQdadX 1PbXUyv81h2ANt92w/hY3naKVuU98Qk= Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-3fe2d620d17so117405e9.0 for ; Mon, 14 Aug 2023 08:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692027856; x=1692632656; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rqfNmX4k95GxAmCJ+7I1b46X41dBF6Sr+i7+9zDFrXM=; b=pAeaso56JB/q4jzngfUnbBBsmUzEcCZ4dbJuhld2JnVkiK/dpefrb73LpfIyVTqjtx mChrXwznEGDplqMc8LHg+9RsjG5HxAGfqYQAAd5UKZStPPjIkn6kbFA0XWrERHll4KSj HKrGAZhVWe97Lrf8mO2CSNh81zXw58aFisflq0drdTVexFHPzp+et0eShKnt0VC9ekuZ hoRHymurYXS85W7n0OCrA6e2qKoUxMP4FCdZCU6bPSkIeEsSxHrElLpblvfelBzTPrIl FzRMNZM4afyRCHXtn0z35q//cwn9dCe8Nn7JGW0BVOScKCDqmZEa44aZjObRizj693dI KYCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692027856; x=1692632656; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rqfNmX4k95GxAmCJ+7I1b46X41dBF6Sr+i7+9zDFrXM=; b=ZbSLE67vm20+aNSSuDwo7Ybn4P1m5JMSQEgfjbJOBNvSM1eydKuxETtHOVeunobtBR blJS9pgr8rWQYwF9PBVa6URW7gMeiXHfdOPdyKbVdteeVzDhLxmRH07u3K32RY8d0/eK kD4sq2C5b9meT0hS/aFZmR0JD1MvUwoN5jlPSpKXErTThV/93PLtBwgehZLtQu15TL18 ef1yzTilZ3+16U1HoYmN9y17GLu6+RVR8vVDbTbg/LU0VRFQh6gj/snyY0cuOTwel4O4 GcFKMfCSb6UY00hp60EtWYI1OG8TWl8kwJ7zZXIRf/QfohDKfZIodkDiafsDZs3e0z6N /XkQ== X-Gm-Message-State: AOJu0YyrE/PGUvesvwINQ5b5o+nHnHNX6zdQYu7WZ58vr/K5HnW/QY7d glhx3cwBTpMflZkzQK38gfIjYSXS24k1d1U/OPeiTQ== X-Google-Smtp-Source: AGHT+IGQAH2acO3XfxZHfpRS1AbLTd6zLXkVBvHEQQAcvSF3rJpF1yfDyPDig8gWSpDIjwriF7rpPwsVRRgxnf1mrIY= X-Received: by 2002:a05:600c:500f:b0:3f7:e4d8:2569 with SMTP id n15-20020a05600c500f00b003f7e4d82569mr274345wmr.5.1692027855860; Mon, 14 Aug 2023 08:44:15 -0700 (PDT) MIME-Version: 1.0 References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> <20230724183157.3939892-16-Liam.Howlett@oracle.com> In-Reply-To: <20230724183157.3939892-16-Liam.Howlett@oracle.com> From: Jann Horn Date: Mon, 14 Aug 2023 17:43:39 +0200 Message-ID: Subject: Re: [PATCH v3 15/15] mm/mmap: Change vma iteration order in do_vmi_align_munmap() To: Andrew Morton , "Liam R. Howlett" , Suren Baghdasaryan Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 932D1180012 X-Rspam-User: X-Stat-Signature: pzaq1h3kffc7n1dr1fwyzfwfhie5twgc X-Rspamd-Server: rspam01 X-HE-Tag: 1692027857-532258 X-HE-Meta: U2FsdGVkX1+xnIxd5jOQ2dU2XUrEFvTsyMuGCHqzl/joWtnW9Kf559NKNNTtvJWHwaGW7BuRqtG5EsjVRfdg6fwq7OOvon022eHh1vwLCf1qukvrZDDgWh+iziMzkmh8PvrMzG4FoyBucoHgFjQFtmwbeLj5Tig0vL2Khb6HSUM0UdxKdZzecY5I/xcMrcac7TTbvm5L8/cTwrFIL8lJ2a8+gdzWTlwXp10D2HcpMEEbLQoOcdGVslqaAVAoe+CKGZDdJmndGgi9uE5C1XR4DsaM1frjttH2h4fppzKawluL2r03VPYpt8FM01ydNwoacaXNLqSkrDLWtZW818nYUcyNTiYmA2BIuUPESBoT0ZSR8G3NeYlOin1Gnm4xMgJOzem28yxGH07gWzGAcKZr9veuIvIkruuKqRgbybb9jh3NmrKzplbGUV0hsNxgDSVd3DT2tLI7nbNaB+O075DmZQvVFyWL8EOf+i67gTQD5+3GCTkG8y/ztHGCFGV8MfHciQx9UPwH50eZWrjvW1VBQSRbijpj/AbFY3M7iDKU7qjXhmTDoGZ8il5auGlEj0EoENdyE7ep1jTgCAaAtHEBxdnObrSQx+hEK1dskwlnyDVBgK27LKWkEZ4b1kOiDcfh5AkZaouTDSyDfZkHS2pULq66+pnkgjbFzuaHRviE0N6nhrFHnBsYs5ItkSzllqdK3hC+D6Xo5HWk6OTE05uRGX6dTcn31EktSm2CYY139O8TTSiO5pVb+fjcnJw1wiuR7K+0s/fach9sgNyzfofz/wzesqAGdJ2DeSBgLHvNEdTmtFjN7ISsjnBjiMxqHRSTuhfHDE88fjGyMk5v7VaiBl69IaXFL7GZHp7YTpMX/jUFdRA/ZH8aCyHOdJ4vjZu2WIncEh+w5gqsLgbBgz0SMw49iJo8LgjLmSt1QpIgDsDhpdOsKS+613o539h6n6jlHR+I+EPvzxmXq5DT2qS 6aTOVPEG QgRKRXDw3ycJkl1aKrg9rTpwMUWEY4tpc3vGoEM17RWGojFaEUxx4KXbyPNnsFpNaIYaTLNakjSv5QI7krmEfep66wU40PZ5G3QpSBaUVE2TVDwF0ThSwJhpCFPiVA2g557gl2F4IuB87OyisgEZrZXpKwDqf7c4BW+SnHVbJZAjFCZpUWgHnomP77+PPhzvPTUUG65taMtPGueRs8nRx2tyKnJMvNLO1nB1brLXCtVuA+V+rSK7K5mnB1U/wvpNjDU/hjdN/mp8oMMjd0ltIO6w6z+HDO4iyeqHJ X-Bogosity: Ham, tests=bogofilter, spamicity=0.004756, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: @akpm On Mon, Jul 24, 2023 at 8:31=E2=80=AFPM Liam R. Howlett wrote: > Since prev will be set later in the function, it is better to reverse > the splitting direction of the start VMA (modify the new_below argument > to __split_vma). It might be a good idea to reorder "mm: always lock new vma before inserting into vma tree" before this patch. If you apply this patch without "mm: always lock new vma before inserting into vma tree", I think move_vma(), when called with a start address in the middle of a VMA, will behave like this: - vma_start_write() [lock the VMA to be moved] - move_page_tables() [moves page table entries] - do_vmi_munmap() - do_vmi_align_munmap() - __split_vma() - creates a new VMA **covering the moved range** that is **not locke= d** - stores the new VMA in the VMA tree **without locking it** [1] - new VMA is locked and removed again [2] [...] So after the page tables in the region have already been moved, I believe there will be a brief window (between [1] and [2]) where page faults in the region can happen again, which could probably cause new page tables and PTEs to be created in the region again in that window. (This can't happen in Linus' current tree because the new VMA created by __split_vma() only covers the range that is not being moved.) Though I guess that's not going to lead to anything bad, since do_vmi_munmap() anyway cleans up PTEs and page tables in the region? So maybe it's not that important.