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 C9D49C369C2 for ; Tue, 22 Apr 2025 22:54:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E696F6B0011; Tue, 22 Apr 2025 18:54:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E18B76B0012; Tue, 22 Apr 2025 18:54:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D05696B0022; Tue, 22 Apr 2025 18:54:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B00CF6B0011 for ; Tue, 22 Apr 2025 18:54:47 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 86E0C69888 for ; Tue, 22 Apr 2025 22:54:48 +0000 (UTC) X-FDA: 83363186256.28.ECBE329 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf24.hostedemail.com (Postfix) with ESMTP id 9E791180006 for ; Tue, 22 Apr 2025 22:54:46 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fO1SZhtU; spf=pass (imf24.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745362486; 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=va7rv/YB9o98QrEUQSIKnbaS0ErDhKRmFDBMSbqCA5s=; b=Q8UmUHNfTKH5Fem7gwspO7pBQyMN5gD0PmvjrLTh2vDGMlAcDoehk+feFtLMvSSYZ2wwVk 7M5VFqSzuqiB8etlyNI43KP6m2KTl227JOypnT25fgMeK1LjrYGf4tKV3mKXt6gVYqHcGE whv8tCJ4RH7Lbj0Ds+A0x3pO0CopZVE= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fO1SZhtU; spf=pass (imf24.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745362486; a=rsa-sha256; cv=none; b=rXd6ZQJQVtnwDuKE8us4tSZ3w5utjTr+Sa+utg0OsIwf2Q+A+h/f7OR5tgIldIxg9GRVk5 h3buXrC/2yTu2vLR8Hx3Kna5EsWLqEMdRwj36DSrU0Uz1O6bEw7Qvgv+dflG0QWNiLwViO 2tJMBPRFJWXNhRX9LfT1T0BLrVyaj8c= Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-306b78ae2d1so4612234a91.3 for ; Tue, 22 Apr 2025 15:54:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745362485; x=1745967285; 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=va7rv/YB9o98QrEUQSIKnbaS0ErDhKRmFDBMSbqCA5s=; b=fO1SZhtUziq1Zhe8CfUnP4qsn/NBGzYEmr0ElIyzNMWlVIkGaY2gvyhjLSI4Cv7962 PtpnbDLWC3bKW+3l6QStLKYS/gZefa7kZc2ClqJEoZ+PmbRnImY21DMkRq3ITGS+624R GW33sd4DMrsf6D1tyRM3VhcsQVvHVTDMQuv86p2TUDNTbKtbFRAqsUNbuvPudxMb0OaX 2t/OpUl7TKLbB2kJXW3soyUABDmaOnJXDR0YYLglNK3UkhlcZN/6R6McRSXV0dWm8mWo ZNYtokOo4COjTwCujjgSpfFn8uAWt+J0cva4VCx1XwlWqV8cNdfWuFI0TVVz9RrGqh2+ K93A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745362485; x=1745967285; 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=va7rv/YB9o98QrEUQSIKnbaS0ErDhKRmFDBMSbqCA5s=; b=ZViJJKOP9fuKwhHkEHIxEitfcmEYwjPCePy9M2wgSlmkGVnc+YShb5adieW5tmpTpU sPtyK0x7Qix7M1aSYcIzWpIGZuqTyhp6FcyyaGkWrk9/IY00/5q7VVHMPxRV26TsbcbA vNkp2Oyy10zGpYeYOajxrnlZee1gVrN6qdQv0x4Lr3sj71JkjEUl4dW4Sjqf6I4dtNtO GOA3Z8ZwlIqwQu+OnV9e4DneYeN5RJ1NtSmd5ai8+rKqPAklwOBqnrb26Gjp4VlWzYnU SiKffR4LX7lOfxWJGtMVZ+ysmEsxi7kkF6TFLisJrClhtDV1OG/gaqu5/xjcocaaPWvX B3Qw== X-Forwarded-Encrypted: i=1; AJvYcCXB78oAy7qmCpT4RwKAVj5dApkUDad4ZjdnnxEVvfi7S6d8BxPKKY/vgKYB7TqZt8c/SvHwru4vmw==@kvack.org X-Gm-Message-State: AOJu0Yx+2Z1KRCMjiRf9+/1pa8Qpfea/UxUkCmOWTl6FSHC/oyrXzSR9 i3LvHIXH4Zd4sndp5gLcE2UQvw8SS88mgBb6foWrleW5aflw9dV0S/LCoKld1fhNga4JVIPPvYA Rm8c6zdlHyT+4VEKPmjrbntqblSI= X-Gm-Gg: ASbGncta8Hey/56Wac13fs/8IDHAEbaGsLPaFF4aZKvLVSMFIOdLbKU8YH9NLdDJDr1 fE63gnLYsIFu0GkLfrVYTVB6cmgbiJefGLfbLZnb+SEQ52OdkM32FsDq/gE82G5xsVLLFynaAwf /yruZXQkdbh+6j86ThHPJNnhLtlfKC1FExgE1Vt4DPJd6TfU+l X-Google-Smtp-Source: AGHT+IETSG5/UWEu1Au6ZJP1tumDHJssb0nzJI+R/63RTT9r6RWwr2jpaTisqXWgIO+NT0mOGqFrbExkdqDuKO9oosM= X-Received: by 2002:a17:90a:dfc5:b0:2fa:1a23:c01d with SMTP id 98e67ed59e1d1-3087bb6bcaamr24335482a91.21.1745362485527; Tue, 22 Apr 2025 15:54:45 -0700 (PDT) MIME-Version: 1.0 References: <20250418174959.1431962-1-surenb@google.com> <20250418174959.1431962-9-surenb@google.com> In-Reply-To: <20250418174959.1431962-9-surenb@google.com> From: Andrii Nakryiko Date: Tue, 22 Apr 2025 15:54:33 -0700 X-Gm-Features: ATxdqUEvpJh0hlMQ-EDLD5Ec0LhTBj5XlTwZPc8jms5BGKO3PDMIjH7Os5YMtuo Message-ID: Subject: Re: [PATCH v3 8/8] mm/maps: execute PROCMAP_QUERY ioctl under RCU To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, david@redhat.com, vbabka@suse.cz, peterx@redhat.com, jannh@google.com, hannes@cmpxchg.org, mhocko@kernel.org, paulmck@kernel.org, shuah@kernel.org, adobriyan@gmail.com, brauner@kernel.org, josef@toxicpanda.com, yebin10@huawei.com, linux@weissschuh.net, willy@infradead.org, osalvador@suse.de, andrii@kernel.org, ryan.roberts@arm.com, christophe.leroy@csgroup.eu, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 7txhxz7rnfrgzjxsqn66811dew4yj554 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 9E791180006 X-Rspam-User: X-HE-Tag: 1745362486-272135 X-HE-Meta: U2FsdGVkX1/8F2qyvtpKZl+/L/qPXUguuH7+kJxEpn7b8KcobPZyPouCqh0U1NIr7E8D6zGiMT3qsPSHbY3iIPhyScnpsPVfm3bbQNeAv0Etg/Bqymc/CNbfi9u53d/LAES/W1T/avhdoN7IuiU2N4xZX05bnbPTorVvE6XQIerDJBCclOQfTvTqXB19COuKe0rYEF52761QtJOe976Z2nV0JYhmtmcZ0mbqL1txY4frk5b+yaFNzNZhgqYTlNEeQWpl6er9WbYVIWOF1vEYJaTJQ6wzNe3zZqkurrJQK7ZsfU1ZyoHJWzwjaNJ17ZTswRLRUXST/9OJ+RtpoOVLWPVbqXBzOBK5DyNpyu0Ni1IE8kz6cWz2vK8Y4XBW9AGWdVhBASoF/GnduRFNd9VDt9FdRc3UvH/5OG/16VlGPd0OvnfzzM7PHMZ9/6BlWtz9h2TRULP/E7pggVno2TRFtBu+B1JM/6jERZ+8ml1+O7of+x6VnUJZvX69xiwNpZbyG3xzghEB+TsbVvbv1A9vChGB3j13pzDMYFNj3+6Lq8JPsnvfXdfWC0hq/iV/2a3aoukDTXZAHXrHWb1vB4Crt0I9m8qH6HK5bivdRt1QVQcpkKHF+TXf4nDTrv1L9r2+wU28nQmIN/aRalB4Yl3mCnXDR5T2UYErEXLcNhdh+weOjYt7ZINzTk1L9ppd7kwRE0p8LS0fLmXWZV8i6EdvBG4XnIggO/gCsB+HDpPNYDC2tgwzrd4uTV3p50f79FIdL+mZBwZS2QjL8h/TChNDNUzG/Pjk6evKGqcSgZ9gg6buWWQSFyoMxNj5ejBtzlIx/VjrTP2ByknVHgyitRrvNvbqIWM2Rz16rpiqIrMQhUzXoa3Cq/Yft5A5fDXxp7sycqVRRGtBmrHImH/kzeBMbgKrOlRGiChyKHsQhzFqg91zbdp30xeaNPCqUBs0vbMiu7dO/OUKzhgnVJe7er6 dw/Y09EQ IwGfKyshIkTRtMTX+tkxLN4dRUnbIzE5iCMdFZItiQADhsVRAVrivDQXjlRLZr38GwGTvafUVEIUc3dAMzHSCg3pbLmwCZPU7j1fCXvLM7holdeQ97EswOz8nTbA72pu26/fGv7kZE3yDCXyXgYBPE7ujZ9/QOBT1Y2oSMskpO/O2bu56n02zwE1qmtP/Fr0wBe6eMU4g1FWXccqTBwI1BV2YiSj5leSnKsIErWMmDyblsacs962EbZCel51lkbw7BP4IMzmd5aAcR/9VQyDI/sBIvmi8JmciELn2nBnsuB6qV7oEOTJxMaOohoTmb0K2xosDZeyOa1kRMRDSIHVWtJ85fn4NMBJj3mWRgDq2r4YujmEDNuhii7iJu5aAl4ZAtnrRtMAqUmX9191v4LfyE441Rpr96XqvgTHhobAOY4poygQ= 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 Fri, Apr 18, 2025 at 10:50=E2=80=AFAM Suren Baghdasaryan wrote: > > Utilize speculative vma lookup to find and snapshot a vma without > taking mmap_lock during PROCMAP_QUERY ioctl execution. Concurrent > address space modifications are detected and the lookup is retried. > While we take the mmap_lock for reading during such contention, we > do that momentarily only to record new mm_wr_seq counter. PROCMAP_QUERY is an even more obvious candidate for fully lockless speculation, IMO (because it's more obvious that vma's use is localized to do_procmap_query(), instead of being spread across m_start/m_next and m_show as with seq_file approach). We do rcu_read_lock(), mmap_lock_speculate_try_begin(), query for VMA (no mmap_read_lock), use that VMA to produce (speculative) output, and then validate that VMA or mm_struct didn't change with mmap_lock_speculate_retry(). If it did - retry, if not - we are done. No need for vma_copy and any gets/puts, no? > This change is designed to reduce mmap_lock contention and prevent > PROCMAP_QUERY ioctl calls (often a low priority task, such as > monitoring/data collection services) from blocking address space > updates. > > Signed-off-by: Suren Baghdasaryan > --- > fs/proc/task_mmu.c | 63 ++++++++++++++++++++++++++++++++++++++++------ > 1 file changed, 55 insertions(+), 8 deletions(-) > [...]