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 93D14C3DA78 for ; Tue, 17 Jan 2023 18:32:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3BAEF6B0075; Tue, 17 Jan 2023 13:32:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 36B0E6B0078; Tue, 17 Jan 2023 13:32:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 233146B007B; Tue, 17 Jan 2023 13:32:00 -0500 (EST) 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 107D96B0075 for ; Tue, 17 Jan 2023 13:32:00 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E1A28160B5A for ; Tue, 17 Jan 2023 18:31:59 +0000 (UTC) X-FDA: 80365135158.15.6E2685A Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) by imf11.hostedemail.com (Postfix) with ESMTP id 4A88E4001C for ; Tue, 17 Jan 2023 18:31:58 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cYvU74tR; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of surenb@google.com designates 209.85.128.180 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=1673980318; 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=hTLKMGXMSAT6MMmNyJi78XQQyP4rpea0yj1IeoSeHZk=; b=zcByiES0xW0LpThlBRreIjI1jdfyMULN4WV533YSPHegUypK6e9A34aweYy56v7lk+Xg28 wBcyHuz0jGToBwEdeGFMC3qimJDi+9sNw7yajTatJcNyKFembwXG0k1diTh1wRiKdj4Fuh A9gcAeH6GrJxYzcWKKMLzwqwd5+YQZs= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cYvU74tR; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of surenb@google.com designates 209.85.128.180 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673980318; a=rsa-sha256; cv=none; b=lAgXO5aQ5aksTsnlr6lqEYoG+B08e+n0ecwtUWzGV3YVElI1Vk0gzIxFPT9t6MSJPxmG4Q 15gcznO0+vVbxW1NVWSws8FZF43GtPZxcl/wXnFPePmw0+6geFRn6uiWarhf+C3mc6LDEc Atw76V2eGBGCJpwgRlpL6dPO/PPv83A= Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-4a2f8ad29d5so434368317b3.8 for ; Tue, 17 Jan 2023 10:31:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hTLKMGXMSAT6MMmNyJi78XQQyP4rpea0yj1IeoSeHZk=; b=cYvU74tR9mP6Fn9b7plkY3/qUjiSWAQ8Nqo6zWa89Tvw3EfblIo+iwk47g313J50zD OI4yi6Ydglcj6heTHBV+OqDdwSJdnr4wqTbrPmLmh9mqThWV5UYKM05VFEyTkYkAXo3j QMlnnmbDe/lKf1GxHO5kvU0IsXr+gApsS4fTkOq58OZbDpcCBOXxdRO1KDTxZLEelrTC m1K0eNZmldk1GQtixeCW1w6HH+dj9szNi1qhHJcN/MOVBP2CYZjpyXxYNkaGlkAf0JZG TY6bU4vvOEanEihNcw0eqEUfw/p+tEb9UMV8eQ3gmuV1CSkeyLzVwMRJSYmZhbCyUoWj hjlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=hTLKMGXMSAT6MMmNyJi78XQQyP4rpea0yj1IeoSeHZk=; b=o0YVfVis59jkD9Rqm2dPL2Qk/NnN8Ye5Irnvy2UNmeI2wrlr3nrGePDFMB/Y75It4s 6xipeUsu6eb5BgXdPzRn+f37aEdFpEms4ugUqxDiWZjvBc9aPEz5VWg89fdhMvIw1hSa pz7nMR01INF3kj8bJ1whlfTjc/hAp/aDJohN/T4EdaGp1KMw2GM/4xRksh/T8Vb8Xw1s /PEi2COe7RIa8m6cX5K3GsVkx70tvTwae3DCwNwnhZXBcSlpPvkBy6SaSBqQXfwwrAzK BBuxqAkgC6XLAE8FKo/M73cj9fAClYohoGe0A1yO4jgtcyENxCiYRBrpAcTGGijidOJf V9WA== X-Gm-Message-State: AFqh2kprGWnAmZ9LjSUFzqhvcVyMbq1gZ33D8i3KTNlAj/4ZwY52IX7E 5+u3p50FJv8oRu8Fl5YXnhTH3DelUIFaw/Nml14omA== X-Google-Smtp-Source: AMrXdXs6T2EsIuWbVNsgZ9FO4pipeSzz0cOT2UbbLv043lEgdSZy2eMw0rqySTLBWnP8z9Z1+X2S15P7ragQaUTzb4Q= X-Received: by 2002:a81:1d2:0:b0:433:f1c0:3f1c with SMTP id 201-20020a8101d2000000b00433f1c03f1cmr558134ywb.438.1673980317150; Tue, 17 Jan 2023 10:31:57 -0800 (PST) MIME-Version: 1.0 References: <20230109205336.3665937-42-surenb@google.com> <20230116140649.2012-1-hdanton@sina.com> <20230117031632.2321-1-hdanton@sina.com> <20230117083355.2374-1-hdanton@sina.com> In-Reply-To: From: Suren Baghdasaryan Date: Tue, 17 Jan 2023 10:31:46 -0800 Message-ID: Subject: Re: [PATCH 41/41] mm: replace rw_semaphore with atomic_t in vma_lock To: Matthew Wilcox Cc: Hillf Danton , vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, peterz@infradead.org, hughd@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4A88E4001C X-Stat-Signature: 5xar1qc3p56z9epabcxzhw5zk7pm4jxz X-HE-Tag: 1673980318-313723 X-HE-Meta: U2FsdGVkX1/8HDflRgvU9zgLi91+0OWzeT4ihDzhG4TZwFymPEkDAAP8qPOE05Vw1CZsy++XdlGYPLkl9fcVQHYn45p3u8ESDGhTMH5itZXV+Ac0iMZ2vGXm0PWUBi2bpXA22XzmUACZ4O1eiECM6XvLFNEOPRk9XIZ05lqLUlcbB2npLfZwJP4wPH587G+OvBTgMJdbQcaelMqdb/Ng1uOkAt2XMWRpK7cuNN8KIrlOUWOfgraYh6Y1odlHDs7nTDfMUKTFhZkDW/P8eRTZw9ukDDHqGkF2+pJ5Yr4CKnI1b94lL8lgdJ59bpeEZFno29LI3NRmNfGuQq23cZGOw61XhY4luVCGCOw726XmZU9Otz5Ej3GTJOXEXgdKW3yh7Mx7G8aSJgRC+L5z9Md2WtLVSyS/KJzCJA/cfw8GWlQp4O/YvROj4f/+LzAFTtT/nFr14tEmBs41LD+vJ4v8fNhwoPujIh2lCm64FF/zXwGR18NUNP9s17e/JDdPnN5Z/mAiOJIEMOdzMlDWjXSEER5HY3qRZzrExQUKHJu18nFzs9THxAceVexPd79Z5OfVTEuW71FYrqE3ZSZkMV49GkqCuAhvYClv/PIuSeEb2NsiIVvFDGS4DgQky3AXqZR7MqGzklX5foARY7UB9QHN0fya/Gfk2UzYSn6RKRFtFLvOh9rtfkSSSPkbJLlnLxi6rFnnLHq2r1OCO4L5V6+ye/FFTPkMCEAOvzsmeNxndhqehMpT7mFB3tyGR1R195y6q9GB985x+B3BFQhti1FhIcLa2IYMoZ4dSwVY2lZcNzBL+m+MZpdwREIPQ30UoFJdVkH6LZy3TvDtL1pGAY8j19iV6q/javTgXuN57FfdxOoASwQUcCemtDKvZzZemPSMWf+puD5Az3xk0sjlL98eYI5PxAs2xhiKXc6C5DyfPNWP/ih68FfB5KlLi5ZdLaPv 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: On Tue, Jan 17, 2023 at 10:27 AM Matthew Wilcox wrote: > > On Tue, Jan 17, 2023 at 10:21:28AM -0800, Suren Baghdasaryan wrote: > > static inline bool vma_read_trylock(struct vm_area_struct *vma) > > { > > int count, new; > > > > /* Check before locking. A race might cause false locked result. */ > > if (READ_ONCE(vma->vm_lock->lock_seq) == > > READ_ONCE(vma->vm_mm->mm_lock_seq)) > > return false; > > > > count = atomic_read(&vma->vm_lock->count); > > for (;;) { > > /* > > * Is VMA is write-locked? Overflow might produce false > > locked result. > > * False unlocked result is impossible because we modify and check > > * vma->vm_lock_seq under vma->vm_lock protection and > > mm->mm_lock_seq > > * modification invalidates all existing locks. > > */ > > if (count < 0) > > return false; > > > > new = count + 1; > > /* If atomic_t overflows, fail to lock. */ > > if (new < 0) > > return false; > > > > /* > > * Atomic RMW will provide implicit mb on success to pair > > with smp_wmb in > > * vma_write_lock, on failure we retry. > > */ > > new = atomic_cmpxchg(&vma->vm_lock->count, count, new); > > if (new == count) > > break; > > count = new; > > cpu_relax(); > > The cpu_relax() is exactly the wrong thing to do here. See this thread: > https://lore.kernel.org/linux-fsdevel/20230113184447.1707316-1-mjguzik@gmail.com/ Thanks for the pointer, Matthew. I think we can safely remove cpu_relax() since it's unlikely the count is constantly changing under a reader. >