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 CBD52ECAAA1 for ; Fri, 9 Sep 2022 13:43:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 60A1B6B0071; Fri, 9 Sep 2022 09:43:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5B9996B0072; Fri, 9 Sep 2022 09:43:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45A268D0001; Fri, 9 Sep 2022 09:43:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3282F6B0071 for ; Fri, 9 Sep 2022 09:43:48 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E3AF7ABD4C for ; Fri, 9 Sep 2022 13:43:47 +0000 (UTC) X-FDA: 79892664894.23.34BE222 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf15.hostedemail.com (Postfix) with ESMTP id 740F9A0077 for ; Fri, 9 Sep 2022 13:43:47 +0000 (UTC) Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 289DAbM3010670; Fri, 9 Sep 2022 13:43:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=Y0mVTz1Lf0bysAreM92v0+W21ZGEaC6PTpYbiBGl9so=; b=Kto3IJwkg5cHnydbnh1y6sqRW67TkTzQLFX8SrzCrpvVJWlPMUNPP6XOJHTX4yMQ04RD lqdVCN7TRvBch6Ei9V/rsOlOPKz5ZwKsS4oT/TRcCq3y2+uufO/LOxGYQLf1PBFspl3k 9F6fkjY4M9rhqW4K50cSdlVw0O6XWkeNudqu8Ssq4VV1WXriiHybbG0rOV77GV/DIsZO A20a0bpVLimU41sYFuYrSpYFRmlmo5LfmwXfbL4r7NJW9C+T1+KaL0Cw8R1vNa6DgLgV yVxwITZ2D39ibCplr/ESymHiBSS0D9uKx9G46AvZu0e5Bolx//7AlM/Ri9uS12AbzHK7 pA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3jg5w69fmq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 13:43:36 +0000 Received: from m0098404.ppops.net (m0098404.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 289DBHN4015324; Fri, 9 Sep 2022 13:43:35 GMT Received: from ppma04fra.de.ibm.com (6a.4a.5195.ip4.static.sl-reverse.com [149.81.74.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3jg5w69fkp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 13:43:35 +0000 Received: from pps.filterd (ppma04fra.de.ibm.com [127.0.0.1]) by ppma04fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 289DKUsZ027049; Fri, 9 Sep 2022 13:43:32 GMT Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by ppma04fra.de.ibm.com with ESMTP id 3jbxj8nymy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Sep 2022 13:43:32 +0000 Received: from d06av24.portsmouth.uk.ibm.com (mk.ibm.com [9.149.105.60]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 289DhTEK38011256 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 9 Sep 2022 13:43:29 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A7FDE42047; Fri, 9 Sep 2022 13:43:29 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9374A4203F; Fri, 9 Sep 2022 13:43:28 +0000 (GMT) Received: from [9.145.83.17] (unknown [9.145.83.17]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 9 Sep 2022 13:43:28 +0000 (GMT) Message-ID: <83a36761-2045-3f46-3088-a751c5263b81@linux.ibm.com> Date: Fri, 9 Sep 2022 15:43:28 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [RFC PATCH RESEND 15/28] mm/mmap: mark adjacent VMAs as locked if they can grow into unmapped area Content-Language: fr To: Suren Baghdasaryan , akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@suse.de, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, laurent.dufour@fr.ibm.com, paulmck@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, kernel-team@android.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org References: <20220901173516.702122-1-surenb@google.com> <20220901173516.702122-16-surenb@google.com> From: Laurent Dufour In-Reply-To: <20220901173516.702122-16-surenb@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: vsmxLApnSa4kFm4DsE4c9nzLp7_dueVe X-Proofpoint-ORIG-GUID: _47dY4KcG9Nanbo62JUX-I9vUetE4UJD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-09_08,2022-09-09_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 mlxscore=0 bulkscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 malwarescore=0 mlxlogscore=894 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2209090047 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662731027; a=rsa-sha256; cv=none; b=qBKeFEDyo03kgqT6ayFK86v+r82FSnJnJZxD0Y9sTjecFpWYR0H2bF/JlKqmqk5SGtHV9h XneGufDTLbe86lTQ3ibx8+eKLBSlEeyZoMbLl/y0zRLxJaN6WWK7FsexD5MnMSuadZL3bU k6bvPkJWWGIEdFu8T2C7vBnXrFq8P9M= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=Kto3IJwk; spf=pass (imf15.hostedemail.com: domain of ldufour@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=ldufour@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662731027; 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=Y0mVTz1Lf0bysAreM92v0+W21ZGEaC6PTpYbiBGl9so=; b=ejxBnXuuaQae26KGP7Y6xtigOiiCXxvdltga1N6g+rh2O0iufYHyM7aJ2J6kJQYoFXjDOj HPIy3K4LDZ/X+Vr6dl9g7kXN6JR0XOpWtapiq6J7ue7rqLm0nQVAwCtRdg52WAYazMAqWo 8l7FJo2nkt2Ml50Gw4+U+DmNIWBM1rI= X-Stat-Signature: 6s5m13iw9nncugjsrq7cpynac56c88jq X-Rspamd-Queue-Id: 740F9A0077 X-Rspamd-Server: rspam11 X-Rspam-User: Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=Kto3IJwk; spf=pass (imf15.hostedemail.com: domain of ldufour@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=ldufour@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com X-HE-Tag: 1662731027-461245 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Le 01/09/2022 à 19:35, Suren Baghdasaryan a écrit : > While unmapping VMAs, adjacent VMAs might be able to grow into the area > being unmapped. In such cases mark adjacent VMAs as locked to prevent > this growth. > > Signed-off-by: Suren Baghdasaryan > --- > mm/mmap.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index b0d78bdc0de0..b31cc97c2803 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -2680,10 +2680,14 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma, > * VM_GROWSUP VMA. Such VMAs can change their size under > * down_read(mmap_lock) and collide with the VMA we are about to unmap. > */ > - if (vma && (vma->vm_flags & VM_GROWSDOWN)) > + if (vma && (vma->vm_flags & VM_GROWSDOWN)) { > + vma_mark_locked(vma); > return false; > - if (prev && (prev->vm_flags & VM_GROWSUP)) > + } > + if (prev && (prev->vm_flags & VM_GROWSUP)) { > + vma_mark_locked(prev); > return false; > + } > return true; > } > That looks right to be. But, in addition to that, like the previous patch, all the VMAs to be detached from the tree in the loop above, should be marked locked just before calling vm_rb_erase().