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 4ABF7C3DA41 for ; Wed, 10 Jul 2024 16:48:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB2486B007B; Wed, 10 Jul 2024 12:48:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D61C46B0096; Wed, 10 Jul 2024 12:48:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C50E96B0098; Wed, 10 Jul 2024 12:48:18 -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 A5B2B6B007B for ; Wed, 10 Jul 2024 12:48:18 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 6698E4018D for ; Wed, 10 Jul 2024 16:48:18 +0000 (UTC) X-FDA: 82324425876.02.AD03E1A Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by imf14.hostedemail.com (Postfix) with ESMTP id A2EEC10001B for ; Wed, 10 Jul 2024 16:48:15 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mILNju06; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf14.hostedemail.com: domain of surenb@google.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720630071; a=rsa-sha256; cv=none; b=uAOIoQNFg0tQjFmyrcpI2iT+3fLcu+nwXYg6/RKg691YLUOj3GfiIKMSmWTV/qPiukexz6 C6wFs9HjnMjJWLcsPq/OFj7KTk6Q+o8fclkN14MNNdj5t39/WadhAqghfDbHia/Yr0kMoA Z4LkHOedYCg91/zZmxpEQ0M3VBXE3Mg= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mILNju06; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf14.hostedemail.com: domain of surenb@google.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720630071; 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=RuDM3Oavg7a7aWkCZ/CY2yFe5Ng8yBclNy+WY2KUGrU=; b=bPNGOjfwQjVGmDyYvfjPIjcnSbjZHJR6TqP17vehqi934ggQM4X9xnDJTWqR136a8HUnDT szY5d5t0QWEyeNAgOOVnUSLTv4EB8FxWU7ZbNcBpbipDzuXdUbupJO6mn8EA4v7CXc5W2X a0kJ9sx8oZtlkAAO4fG1F0+v/jc5LFI= Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-65bceed88a2so7601617b3.1 for ; Wed, 10 Jul 2024 09:48:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1720630095; x=1721234895; darn=kvack.org; 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=RuDM3Oavg7a7aWkCZ/CY2yFe5Ng8yBclNy+WY2KUGrU=; b=mILNju06Lio5A96wsB14ctXg9hGE3rM9fAIvASjKMnaz3z4BBLwJTivdVRyQrmDp4c kb61Ux8IEQZWv4zet6grILXTh/6DjYRraO+WuM9BDW1YpQqDvT1w+6kmlQgyEv4cjyHw ZLAoZa385ezZ2q+EcNIzvt4azQvpbmWGu7VRJaEOyoPazKYcjPZLr5EvNrVl3KJlXaim a8OVuGoKFhS3uyqS7TstvPUkTubYqfdx5Cm1+bwWXN8lsi+YOtJCMgheIbDcr8P9T1j3 dSZs502oYmg+7IeJ5b4KM4i3HG1PNB9YHm7cGMBzJdtQ7s/utSt7HpG/V/VonShm4dxW RM3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720630095; x=1721234895; 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=RuDM3Oavg7a7aWkCZ/CY2yFe5Ng8yBclNy+WY2KUGrU=; b=c+GZZf63GCOefx9mIq1l+1D6LlDaH7gfQm6muoz5ZEdIDqk7IAMyVQymHK0jFn/tYd tujqF1T8rCoAaXII5ZiqAoLB1Jk/pspXkHT8fqF6XMShSZuDL0dYUXGKCbLl5IZw0+uO Vu7YMgk+XN2fGH2msumFVtA8HYT85MQbj8APPIm/7/V6CAbHseTmmZ96WIzWnaGB6b+9 8hPHouqiAXhLl3mYEp/bAmylYz0ufhEj0/4A5bYKvALWSL/s3j11epmH02ULthNjh8Ig 4X4f1YVV6W/IZ79ouXdCRJUXlWS0lp5rUBNrMJZkmMlXQ0E08wrtHZ/u2klPljWaAUZZ 5+DA== X-Gm-Message-State: AOJu0YyuVitdow5VwyUdPWAuLlypedPN+rKeRhwCDND2CsWO032UQ0dX FoS2rptyLMU0qPEM0/kA5GTI9+HNTHO9AmrbJsCYx3PV0CaJGgbDom/ms0iwQ3c4cVCEHVfITSV W6UEUpMcBA3EzGVDDRMDmD/JRNHkjmvDOTHIo X-Google-Smtp-Source: AGHT+IEJvx0em+H6LCIgYPFqc5wzIKIKb8/L9hMaxZp+TLpsllYvO+qfvhu+Db/DSgLHIYpVSH8n7AdwjCO1O/h8wRM= X-Received: by 2002:a05:690c:6112:b0:631:ffc1:4397 with SMTP id 00721157ae682-658ef34a2e9mr80983457b3.29.1720630094523; Wed, 10 Jul 2024 09:48:14 -0700 (PDT) MIME-Version: 1.0 References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> <20240704182718.2653918-11-Liam.Howlett@oracle.com> In-Reply-To: <20240704182718.2653918-11-Liam.Howlett@oracle.com> From: Suren Baghdasaryan Date: Wed, 10 Jul 2024 09:48:02 -0700 Message-ID: Subject: Re: [PATCH v3 10/16] mm/mmap: Reposition vma iterator in mmap_region() To: "Liam R. Howlett" Cc: linux-mm@kvack.org, Andrew Morton , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A2EEC10001B X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 3m7qypakhcrmync3mxtbqb7gf6esu49b X-HE-Tag: 1720630095-985138 X-HE-Meta: U2FsdGVkX1/M2yz3Gj9lH6x/tncn5Bddr9LaSyMu/jco0A9cBuviJNMMvr+ar3yWET9XqwU0duf033fTKqX/DXCihOWA+s3oERi1J/dxUaVtS6F/+7G6K7V0/XwYRTG9OuNkXTG2l8huxBGlV0FFBCgBaRB34kfUQbJFIv7HZwYsPv9786bhnaKCnFqukckrsIRtgZb7HR+QSPmvPjBnSnA+UDvNUqZSBfCeDXZyTrYUunATniOJxO5erXwg/3lzCdlDdpyv/aqVdQFa90Di3XeS++HZbtVnQXKlLEfXIPW+VwaSjt/U3fVXHiwrc4UtUYCw3tEHWU+wW/FjwBom1ew8HxWup61RFWOhsyvdrl8voe8qoFzGLQcyLaVNU6c6TuKS1JN8drts11ALzu3HhsxqlWQrnCZOQajXYO4lfcdLX04OE6tyLFK2Bw3bgT+FTi2ZEzYPFHXRQwHsdx9IpuldSinFqlyf/r+WJcPnEtMURqvurtqpPjJNeq+g0Q5rkg/Ls1rAJtbB4IDoZLju33wpIZ9ykKRYsdMVYr5Vu+OlngWstUWlSdN9DO1pQ/KfQ6dnSulIqwZla9IHue/CWnFyN7QKJhk8vgUvwagsRVFH3vOTQ8uEqNCerY29EFoaUbuWFDlsxFRxEMUrdDyXMGIBbsv+DSMYoXxwgfwU9CC9o5Oo4MLMk8Q1vgFOF2f9TwrFHUedMh+w2qISO2VVqbyflALpCloHpmnTRHt/PPXZWDCi3jLislYE+ZhJc+jz2FTnlvmZdLYylAJpd5CeRXFTuGY7svpgbYhYGWoXgC9uXzBP/4EwAUqmvd8Br8+hajrycxiltz9yBLo4Nw9s6IN+QhkJu4FBHu6+bgibLyhOcCC8+TubhwfOOlXu/zQNf+YhNsOqI0L0rAgtZi9arSoBuLfDr1P388Zq0GLt5HC+RndzJKU0Ytr2J/Nw1QKKvlwrMsiyGjTP/GRrImW Pky0rRDb 7xG99ESd8Be0FXUu4fD4IvLpycu5oSV/8i/Nvg0Vt3SGm7qMiqFu2zpyTrXhQS+iYDXvii7zGz9NiUMJBYufOhG7sp4KWEcCE+wGuKwjGOJKuO2mMYj5ANv1c2DkQUAwfJnPlpu4aKXi/z1mIGCe1U5X4/HSlphO6Vg74bZeEYR0j7sfmzA2RvT+pQzmsLS3jcA+zuPNoCzpiAA6o8V0GeTaqopeV8FWfoXJqz/7klI5eRbnyE0OPenB83VsvYnRu9d1tjNO/WlmxGdLy7YqvRy7CPQ== 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 Thu, Jul 4, 2024 at 11:27=E2=80=AFAM Liam R. Howlett wrote: > > From: "Liam R. Howlett" > > Instead of moving (or leaving) the vma iterator pointing at the previous > vma, leave it pointing at the insert location. Pointing the vma > iterator at the insert location allows for a cleaner walk of the vma > tree for MAP_FIXED and the no expansion cases. > > Signed-off-by: Liam R. Howlett > --- > mm/mmap.c | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index f5b33de4e717..ecf55d32e804 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -2963,11 +2963,12 @@ unsigned long mmap_region(struct file *file, unsi= gned long addr, > vms_complete_munmap_vmas(&vms, &mas_detach); > next =3D vms.next; > prev =3D vms.prev; > - vma_prev(&vmi); > vma =3D NULL; > } else { > next =3D vma_next(&vmi); > prev =3D vma_prev(&vmi); > + if (prev) > + vma_iter_next_range(&vmi); > } > > /* > @@ -2980,11 +2981,8 @@ unsigned long mmap_region(struct file *file, unsig= ned long addr, > vm_flags |=3D VM_ACCOUNT; > } > > - if (vm_flags & VM_SPECIAL) { > - if (prev) > - vma_iter_next_range(&vmi); > + if (vm_flags & VM_SPECIAL) > goto cannot_expand; > - } > > /* Attempt to expand an old mapping */ > /* Check next */ > @@ -3005,19 +3003,21 @@ unsigned long mmap_region(struct file *file, unsi= gned long addr, > merge_start =3D prev->vm_start; > vma =3D prev; > vm_pgoff =3D prev->vm_pgoff; > - } else if (prev) { > - vma_iter_next_range(&vmi); > + vma_prev(&vmi); > } > > - /* Actually expand, if possible */ > - if (vma && > - !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next= )) { > - khugepaged_enter_vma(vma, vm_flags); > - goto expanded; > + if (vma) { > + /* Actually expand, if possible */ > + if (!vma_expand(&vmi, vma, merge_start, merge_end, vm_pgo= ff, next)) { > + khugepaged_enter_vma(vma, vm_flags); > + goto expanded; > + } > + > + /* If the expand fails, then reposition the vma iterator = */ > + if (unlikely(vma =3D=3D prev)) > + vma_iter_set(&vmi, addr); > } > > - if (vma =3D=3D prev) > - vma_iter_set(&vmi, addr); Before this change we would reposition vmi if vma =3D=3D prev =3D=3D NULL. After this change we don't do that. Is this situation possible and if so, will vmi be correct? > cannot_expand: > > /* > -- > 2.43.0 >