From patchwork Thu Feb 16 05:17:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suren Baghdasaryan X-Patchwork-Id: 13142519 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 AE3A5C636D7 for ; Thu, 16 Feb 2023 05:19:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A0966B00A4; Thu, 16 Feb 2023 00:19:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 402D16B00A5; Thu, 16 Feb 2023 00:19:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 27DC96B00A6; Thu, 16 Feb 2023 00:19:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0D9D36B00A4 for ; Thu, 16 Feb 2023 00:19:00 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E4A6616083B for ; Thu, 16 Feb 2023 05:18:59 +0000 (UTC) X-FDA: 80472000798.22.4B90BCB Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf13.hostedemail.com (Postfix) with ESMTP id 3C93520008 for ; Thu, 16 Feb 2023 05:18:58 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=FCDmrKEx; spf=pass (imf13.hostedemail.com: domain of 3wbztYwYKCBgGIF2Bz4CC492.0CA96BIL-AA8Jy08.CF4@flex--surenb.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3wbztYwYKCBgGIF2Bz4CC492.0CA96BIL-AA8Jy08.CF4@flex--surenb.bounces.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=1676524738; 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=76w8C0WtscQXhYR05yNYHvPFGtZWYYoigmdRBKNsAGs=; b=cdCgS7Lds2cEnn8c09b7B6nGApoAcVN2urZ9vEDrqXLcP3X6b9EJDJEnFtPnmZLxdWyIWW ucIq7OTuJ1sDjccTUNxDPxkZmOezIcJyN/9Ncep+Z8l8myT8/6zNDfwTmPufXVYKqAktBJ Ekl2p/pJFcGAI+tsWwZOQNzjA+3bZl0= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=FCDmrKEx; spf=pass (imf13.hostedemail.com: domain of 3wbztYwYKCBgGIF2Bz4CC492.0CA96BIL-AA8Jy08.CF4@flex--surenb.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3wbztYwYKCBgGIF2Bz4CC492.0CA96BIL-AA8Jy08.CF4@flex--surenb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676524738; a=rsa-sha256; cv=none; b=tUZyIEr3cZy8AfEAZRDq/1NFrSVG3CQpTvyG7HoKvxNzsPr39JDyQ1BIoM2NRpM/NE2slN j4Czq5t9A2qiHPWhZg5w4NMTn+irJqJNE0+gc7dwC0oDXuLKARJYsNDn//qoAFE580r8aL h7RFxQ1REMI0g7AjAKch/mHxhQINJPw= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-507aac99fdfso8559787b3.11 for ; Wed, 15 Feb 2023 21:18:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=76w8C0WtscQXhYR05yNYHvPFGtZWYYoigmdRBKNsAGs=; b=FCDmrKExzLuCArz312mMsT1GG2XBAJpY0IRk4Dudkq8tacxOtpStMHAB4mCqF7cHzr HxmYKbJzh0e/OlcI5tze/pJirqiUzOseaOUlDEtDH80qm7FP3CxiVmnvUlVVgBXp61ej ykGRdx137mYbxOiW4ntwVshjUhNYXqvxbpsd7tR4+U5K8xmf3z6sAC5BmIr5igjBFbE2 Lhh7YXKnyKDhial8w7C+wSOyLz2qDj3wAEjKVPIMU3N4BzLNr3q2F7Jzk8qKKMPeJp0i mhDW6Px8X9de0wrc9+taZBLP7xnnbG62Qe2RXE2u3O0X+3PidgLM2eknvp7ECPYQAyqI 26OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=76w8C0WtscQXhYR05yNYHvPFGtZWYYoigmdRBKNsAGs=; b=5WjqietA4ZynmtHK2awOZYi3Efmmk3VQFNY7M4ZP5h6Ndm8VQXlDI1e2BvPAN8EMgW ovTFXyITT8J4GIFJojNwtyYh7O4oN1c61ZEVUG2U8tTTmi6Rm9Ven+icqgvaYkGaa522 d7wxUcN/2YrAeEYCOSuFCiPx9TGr8oBJaR8/IR1cJXyrWsxDZ/BtJvG1MhI0u/nPtzSU QzI0tu65bQKONRxulUS0VgtwNM0JFODHTC5zL8Ts/b/nT3xtOgCCAn5RlFcWFbTMu9Zq +bApslMVTF3a74wwsC//APd1wgBimxQAKRM9cAPOYCa+G85uD/3L5I8UvlFlngvIpuf3 lPhQ== X-Gm-Message-State: AO0yUKV3wgftWWk2/6901wKXO10m+BLO4du9K/mIAhleBU2Kb3zCZP/t +bmsVf3CnBEp8MJ8YTo9hTj4gxDVwaw= X-Google-Smtp-Source: AK7set/7Y/K8KWVB4K6J3b/XMgTvXO7u2Z/Kc+o++p3RcwHAcWZWf0oYrOVDXbq6GKc7ezqD+HuFayT02ok= X-Received: from surenb-desktop.mtv.corp.google.com ([2620:15c:211:200:f781:d5ed:1806:6ebb]) (user=surenb job=sendgmr) by 2002:a81:9e0a:0:b0:532:a8a0:8d76 with SMTP id m10-20020a819e0a000000b00532a8a08d76mr235300ywj.85.1676524737340; Wed, 15 Feb 2023 21:18:57 -0800 (PST) Date: Wed, 15 Feb 2023 21:17:41 -0800 In-Reply-To: <20230216051750.3125598-1-surenb@google.com> Mime-Version: 1.0 References: <20230216051750.3125598-1-surenb@google.com> X-Mailer: git-send-email 2.39.1.581.gbfd45094c4-goog Message-ID: <20230216051750.3125598-27-surenb@google.com> Subject: [PATCH v3 26/35] mm: fall back to mmap_lock if vma->anon_vma is not yet set From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, mingo@redhat.com, will@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, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, chriscli@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, rppt@kernel.org, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, leewalsh@google.com, posk@google.com, michalechner92@googlemail.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, Suren Baghdasaryan X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: ecnnjyddueckiy7a6qix3fhqrncjkcf3 X-Rspamd-Queue-Id: 3C93520008 X-HE-Tag: 1676524737-734853 X-HE-Meta: U2FsdGVkX1/Nzsp96aqwxM5TdW6e/NkPPThw3T4Cn/cuN5h8BW5cUJUMEkL0T/D6UQKXlWz45LvSoKQ0culHHKpX8QOl5H4boe3kyg+QbY4j4OOz5ZyBmgaL1zmo9M2sTcLlGwzYxIGeOhfUs0+MDs1wvrf4Iwxq5c1kbwgiO7FKle+Xc3AGihygWgxxvVEblzmT+NWH6LybCIGh6rwq78N5RFLn59Gt+DIlO5QQavb2d1kf+wtSa5UlbvMmCT9R6gCud2WKSWlqhvd+lY1GPjVfY/KdjB+c6/HB7fRw08FPhJZWgvO7Fk9asiKrmmnqORTiwNJ5zIbZuMT/G2qchCEvhNp3u1mwZfzUqqBWXowOm4kX29ylf1GvMN5luHsbpJGEL06zaGYItHeD654pTLnp57Iw/Xyd5nQu7wW1c9Fu6/ufrvnmm6VEBVo7V1i0ha7eQbLLE1OsmeME4IrsF+T9WgELCHm61f6gRQo44fDS1SLU+WV6kxo8hpfBLEGLJ+axvrpd/zAsC9SNPG5KOuFM8ilfaWLCnfc5GfKm0Wfpu8K6ZRDKjY/xoiofoY3PZO6mIPVsUjnJLf8eWQAl7g5HGPJQ/MSqimtj0TFP+o4llINOhWgxkM1+rCnrcUnXDKcZrOuWnwHevt6QeqseOEOVdu2Wad438o5wGlH1J+Ij3ZE6tN1UWznaXWo+PKA0VSUUMDDgya7Dwp4fuwuaMorTa9OpQCfQf5uBYLK5a/JkXkxa5vUy40DgP8iWuLoPwA12Dhsc6fpiRkECEg85b4MUrLYt1hP/Ahr995fPrrQd9p1E20XUspQ5Ay4pj1hTOdnQYH4JesgcZqzMbyyPSm+rFJxzphoN4GFoe8bvaSWDlEhCc3okLRFSE+eHMi+rHPwh5GtoY1c4StOp3jbWNKhf/0+egRLetHhyteI+vzKvZJ+54PlOulONgzscyBHrdMUHD56TXG1t2TEUAVb Wlct7xHu C37B8knC27GfZkazqD1wPVpzoD1BpOPuSvovxxmzA00FaJqPYGnG8EVUjkYScI41bJhP48NadLvFgfKMrVnu4OJuOvxJa2gPnyGaKJtsPWHjG9blSxDowQWcd/ZuQBRAFllOAyDW17Wrs/FZiiFKMfOYeNzy1E2h2/J65xUAGYbG2/n88lGydtMPMrHYt43n0J1ukiDJllS3zD6i5NjMI0ZCYTjjy9AkUpcem1pKVss5tAnxI6pdTZwYxkZ0skcyR9nv/8volIYT7/d2VdpRfkyKGHmiEuk0DBNlc6n44UUcfYC+aAqfu/5Iwzg3ohui1+tEG2yEluFuDo3pqJFCO3ad2S4GTHFj7uBVDWNqjBgg9G+B+s2LXPj390yZhmxTXaO+0COl1iD3AIT8zDYR/ITzG9BvMqNf/zDF8sSHLLnRDU59U1ivRZ7KGK2Zer2rc+UuMKlof5e3ZAb5CfQPHLqKHTlh+gZWBQSXo4UIUA5fli/evXmWQTb/fBtITtGAftjHrqrNd3/qQF1Faj1fCOJdnSQ2rdmP3Kell3k2IcoGr5d3Zumgfl9zpOCP/uEb94D/I3qfziT/UDBSxVuaoRhC7L7vhSOE/ooVgzttjXnm3MPi48kW79rKglMzmo2+MVv/ttCsT+/Rm4MRhDfGndCYc/6aCCKfLzkEYAXyCbz5muvw= 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: When vma->anon_vma is not set, page fault handler will set it by either reusing anon_vma of an adjacent VMA if VMAs are compatible or by allocating a new one. find_mergeable_anon_vma() walks VMA tree to find a compatible adjacent VMA and that requires not only the faulting VMA to be stable but also the tree structure and other VMAs inside that tree. Therefore locking just the faulting VMA is not enough for this search. Fall back to taking mmap_lock when vma->anon_vma is not set. This situation happens only on the first page fault and should not affect overall performance. Signed-off-by: Suren Baghdasaryan --- mm/memory.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memory.c b/mm/memory.c index 5e1c124552a1..13369ff15ec1 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5242,6 +5242,10 @@ struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, if (!vma_is_anonymous(vma)) goto inval; + /* find_mergeable_anon_vma uses adjacent vmas which are not locked */ + if (!vma->anon_vma) + goto inval; + if (!vma_start_read(vma)) goto inval;