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 8CBBBD41D41 for ; Tue, 12 Nov 2024 00:35:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ECD336B00B6; Mon, 11 Nov 2024 19:35:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E85D56B00D1; Mon, 11 Nov 2024 19:35:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CCCD36B00D3; Mon, 11 Nov 2024 19:35:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 9EAFF6B00B6 for ; Mon, 11 Nov 2024 19:35:36 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 081ACAD6FD for ; Tue, 12 Nov 2024 00:35:36 +0000 (UTC) X-FDA: 82775573916.11.6F780B3 Received: from bisque.elm.relay.mailchannels.net (bisque.elm.relay.mailchannels.net [23.83.212.18]) by imf26.hostedemail.com (Postfix) with ESMTP id 6566F140018 for ; Tue, 12 Nov 2024 00:35:02 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b="Hc/eJe0q"; dmarc=none; arc=reject ("signature check failed: fail, {[1] = sig:mailchannels.net:reject}"); spf=pass (imf26.hostedemail.com: domain of dave@stgolabs.net designates 23.83.212.18 as permitted sender) smtp.mailfrom=dave@stgolabs.net ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1731371671; a=rsa-sha256; cv=fail; b=j+wF+hEP3U6BhMlbFRL/wwInDS6Hc8McgjHBYiL43LfBTdm/sgvQob3H4lc0HlY0bMs/2F RKiklRCn89Eu0+JaqIC3Z6aLwoVtnGCix/P0NyNUGI9MFvPMxu/nLnFzfEFZ7WI8foDDym tfMIx9zUPnNuXaJQohk1zPTcUqOZqDc= ARC-Authentication-Results: i=2; imf26.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b="Hc/eJe0q"; dmarc=none; arc=reject ("signature check failed: fail, {[1] = sig:mailchannels.net:reject}"); spf=pass (imf26.hostedemail.com: domain of dave@stgolabs.net designates 23.83.212.18 as permitted sender) smtp.mailfrom=dave@stgolabs.net ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731371671; 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=Fo1WIGbUub6ojyw+6YyH8PQYOrpDKJdbcxN9q6NQnsk=; b=gQfGeypQYPM6H4PNOazsbfN9rxx2K9GXyPTuIMboMjVwFQyMTFQOchqxzS196Zpo/fI8fS 3BeOq3YySPwVmSEi6k3ILgnt/gJ0/sakKmSRp9MyQoF2NFYxTrlQ9jXt7fHSPrt/2Ek6AL BkbboMJ2lxFN/mR+eSwCJqJyHyLQddE= X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 8196C902A81; Tue, 12 Nov 2024 00:35:32 +0000 (UTC) Received: from pdx1-sub0-mail-a230.dreamhost.com (100-112-137-74.trex-nlb.outbound.svc.cluster.local [100.112.137.74]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 0161F902BC6; Tue, 12 Nov 2024 00:35:31 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1731371732; a=rsa-sha256; cv=none; b=bljxBgq8A0ejgTd4ZmqsHil2f5gi8Ordl6XnrWhpr8kjQ0fWQSONNKaxdh3FvynE3YtVf6 fKVVVxhChpzYlsF+PVeAcOEKs1CI60+oLjBOugJqjHLWn0HMRtSTv7ZZn3pBaWDB1zpEif wKUPIF5tNc1SRlgVyoEvdcjQSVs4jGIVLd+4WwxnA8Rr4CtVNNo0Qv6qp/njGS1/B+R1Op p/vVShiwbRy2wiRwisNepqqBbWxLE/48R5uuN9z/tShFlvtj/DPf+nLC+BPHdfxMkVQSZS 7QLtq+bVJMK7OReG6EUmdNVA57PxcLsT05SeCEhT0FudElVOgG2oU8ptFhvuTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1731371732; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hkovgDxuBvO3O0rBrV7Wlv3C4Hl4IfbaIIFR4AmSZ24=; b=a+xWWeiFVdJxkTP3649JM4zobkgEYCluGizso/HEw1Ifo9iH7jpG9D4bFNy1Vu5dV37nC2 HYt4iIbxuIAwxm9ZSSSyj1V45N80u42XomjbQ0TS0LAGoUg7c8EnaPi2V88EWPMf803aIv s1vJRLvqnkUSUBeGaRDNCsD+LFAAWeX1VMjWeX9+vY+/6qL4a8KNslnerRd+J6rKU18t0l taZLS4zw+T1Y7ZVrdu54NmSvCbN7JYt7v6UjUzJiFDdh5rplE9S1VE7ipPhR79UI4A0tiJ OKL2WmL/Ff6H9IkcYb9lsn3jQ8XHrufqtapgfi16N92UlhVR9d6iTXluBny/MQ== ARC-Authentication-Results: i=1; rspamd-56654dd69b-kcrqr; auth=pass smtp.auth=dreamhost smtp.mailfrom=dave@stgolabs.net X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|dave@stgolabs.net X-MailChannels-Auth-Id: dreamhost X-Industry-Belong: 7fa3aafd1eff5db1_1731371732414_2690658296 X-MC-Loop-Signature: 1731371732414:3619922541 X-MC-Ingress-Time: 1731371732414 Received: from pdx1-sub0-mail-a230.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.112.137.74 (trex/7.0.2); Tue, 12 Nov 2024 00:35:32 +0000 Received: from offworld (ip72-199-50-187.sd.sd.cox.net [72.199.50.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dave@stgolabs.net) by pdx1-sub0-mail-a230.dreamhost.com (Postfix) with ESMTPSA id 4XnSBB1cCmzF2; Mon, 11 Nov 2024 16:35:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stgolabs.net; s=dreamhost; t=1731371731; bh=Fo1WIGbUub6ojyw+6YyH8PQYOrpDKJdbcxN9q6NQnsk=; h=Date:From:To:Cc:Subject:Content-Type; b=Hc/eJe0q1zDOiZwKlL0yzLnOndbqJLWaeZAZJy0Ix7XdYJAYsn+lIPyx1gv2RVH7y /GTwpbP1g2kUIyw6xF25aUX6UCt2sRmNeTD/CepxWBV7GpzXy8z9aJvaIyBo47sVNj /PFAhKn39H6a52yArYUPM4mvtKr0u6XxqWqjupfx/ausWG00jOBliieCTGvv5Jdn/H VNNKGVs6k1GvYFGEDufqyTAlSV3fewt0NUM7bX//YoErg0ksaDdQh7r+0tvqzjw72Q iGeMDLtvBCdu3oTs8qM4gX0nzkUKHqKEyuPBJN8eEl/vRaAFNPjlphlrdh4NNn86gA hTk0Vn11H76lA== Date: Mon, 11 Nov 2024 16:35:27 -0800 From: Davidlohr Bueso To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, willy@infradead.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mjguzik@gmail.com, oliver.sang@intel.com, mgorman@techsingularity.net, david@redhat.com, peterx@redhat.com, oleg@redhat.com, paulmck@kernel.org, brauner@kernel.org, dhowells@redhat.com, hdanton@sina.com, hughd@google.com, minchan@google.com, jannh@google.com, shakeel.butt@linux.dev, souravpanda@google.com, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Re: [PATCH 3/4] mm: replace rw_semaphore with atomic_t in vma_lock Message-ID: <20241112003527.ogtrnknjwvtqfewm@offworld> Mail-Followup-To: Suren Baghdasaryan , akpm@linux-foundation.org, willy@infradead.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mjguzik@gmail.com, oliver.sang@intel.com, mgorman@techsingularity.net, david@redhat.com, peterx@redhat.com, oleg@redhat.com, paulmck@kernel.org, brauner@kernel.org, dhowells@redhat.com, hdanton@sina.com, hughd@google.com, minchan@google.com, jannh@google.com, shakeel.butt@linux.dev, souravpanda@google.com, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com References: <20241111205506.3404479-1-surenb@google.com> <20241111205506.3404479-4-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20241111205506.3404479-4-surenb@google.com> User-Agent: NeoMutt/20220429 X-Rspam-User: X-Rspamd-Queue-Id: 6566F140018 X-Rspamd-Server: rspam11 X-Stat-Signature: bezscaufyti4o6gwd83ezi1yq557j5cz X-HE-Tag: 1731371702-381589 X-HE-Meta: U2FsdGVkX1+2n53NL5+cK54JswzZ/PYYR5sND8fPwnWcdOeOZM/DP5WdEFXzY9Hz0rT4/zQHujZNX04Xmx6PzWy6c3Hs8sqvg4TLXfgQszxjolkupYql/KyQcP1sir70x2+1GDOC/8lZvKvReF7vShjdIpBgpPQPBr8sKJz60SclMkapx6daGh6XM0REcySS/mUDui1q1FWMveii2BV16A9FAXXFoFXPL6ErdSVZioBHMJF4szBExwrjOmz/EYZiYgUAOKlOQNuax2SEucBbFIO3jwuk0YwKy8rG2cOt4F0d2wIufcmjZMNXyGHoJQM+jfPk4tRft3IkmXgMlIrylAACWB68kRs5gCihmSJS6wWHylczMUgKnjF9bj0yVS+Y7E8EAMjGyZsC8dLXtOERIDyn9dqKWFyHXW5jVmX5YHuU59mcVH4drQKYW7Mcb3vmkXQKZlDivxF6CGeK2XhLHwkKeY1p+a6ki1OPAA8IWwvooy9HGA7mSfY2BYm3pg+Iz2ebcGMnpDROxwF77AhTsqcGOWL6d1o9PXxs42FNVVGtncQPEsNu9MBfPljs0GVYBz+tNCZP+rddqtTFwdcOp92wRXhxVPW70AoCYmsNGz9ZShITD+K0gAiTCcojI+8Wc5qhpydWknM/rFYMCIHocvo+JViWqmwhMI2EtxNljHVm4yFMQ2xHHZIt244pKlris0Yj1kX92YBr4Ve4Z7wz4WedgIrmCPwgFbq0izjcWaxPw4TS7ZbZWXjtqxnnJEsxVZyfPRqaoO6mG8BxpWVGiEQEgC7+rL39haTzG1X6eC7OG/CcuBe3XTnnZ54k6TfacEOL5J2owBKpwhaND9TWcy1znUzyBJB6qDlq0CpUYkSYEwzMpOQC25OYquOmYd3oBPyy4EiR8f/Is8RKT4hum7jsNt80Gq2KldOMPsRIJzPGtH03kBf7B726Pit6AcjT8Rz2WPP0zSnvFWzwQmC DS85VF2n 8HL8ig5Xf6QCq7/i1dZPb8x3mTNj9Hoh9rsXxMqLC1OQuhaR+ZurHd6aoYBewilWTxvuMaphSQq0Ye065NG/Nz6DRjMO9asGSgyz4ynPxdeaGLNDGM0xxbt3tSNoSqGeNvtpA5WQNwySc1rmcF3Mn4VBbDWI97QqRPJ6lI9B/lkPLt06V2HGhDT58P8/S7uEWSEUlwlqYDR45H9Y7RwvzHLx7fFqXq9f6+pFo9D/5+OyDo2kTgucpvJGtf3eTWJecRc/efTkMZoA9tQC4/fZg4tJIPzuqBJGVfL/WJ2MjhV8Ra+89pTSW7+z2jpFG/YAL7pR+u7F7+43EqAmo1KGzsUNvUizntBzZ2dnnWgiXzDaxRg3jM/+b7L4wBzFR6lITuZe1 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 Mon, 11 Nov 2024, Suren Baghdasaryan wrote: >@@ -787,7 +893,10 @@ static inline void vma_start_write(struct vm_area_struct *vma) > * we should use WRITE_ONCE() for cleanliness and to keep KCSAN happy. > */ > WRITE_ONCE(vma->vm_lock_seq, mm_lock_seq); >- up_write(&vma->vm_lock.lock); >+ /* Write barrier to ensure vm_lock_seq change is visible before count */ >+ smp_wmb(); >+ rwsem_release(&vma->vm_lock.dep_map, _RET_IP_); >+ atomic_set(&vma->vm_lock.count, VMA_LOCK_UNLOCKED); Too many barriers here. Just do atomic_set_release and remove that smp_wmb(). And what you are doing is really ensuring nothing leaks out of the critical region, so that comment should also be more generic. I would expect regression testing to catch this sort of thing. ... > #ifdef CONFIG_PER_VMA_LOCK >+ struct wait_queue_head vma_writer_wait; You might want to use rcuwait here instead, which is much more optimized for the single waiter requirement vmas have. Thanks, Davidlohr