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 9C4F1D3C526 for ; Thu, 17 Oct 2024 17:36:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1A76C6B0083; Thu, 17 Oct 2024 13:36:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 130076B0085; Thu, 17 Oct 2024 13:36:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EEBBF6B0088; Thu, 17 Oct 2024 13:36:48 -0400 (EDT) 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 CEFC16B0083 for ; Thu, 17 Oct 2024 13:36:48 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BEC27141658 for ; Thu, 17 Oct 2024 17:36:36 +0000 (UTC) X-FDA: 82683798876.19.D8E0DA0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf04.hostedemail.com (Postfix) with ESMTP id 080A540013 for ; Thu, 17 Oct 2024 17:36:32 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BehoOOfE; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf04.hostedemail.com: domain of llong@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=llong@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729186446; 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=1+Cyv9kli0HZR9u7xxjpR63I6TKjlk9cCX5jppYYpfw=; b=dwB0RvdIrJUOlT3HQ79pVLOHUsPlJ/YQAE0EG7Lu2+1CWw5ToKahPpbdJa7981De7QcoJ7 g9ioy8TGmOkwAz17xicMMANH8/pC7lqNMt2yQBIIiFYXokxPxQaZVQNUyPKdvjzFHKn9Kb kWPQWHs7KyOV73qqLVfKyEnxQ95Tp+s= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729186446; a=rsa-sha256; cv=none; b=y8PPEHtobF5ezj7v8l9XHoPOvvNfD3RGFLaUBTbL/1Y12Q8ZLxa8AS57fcAI/k26QhBbJ5 lxjsAuxVXbuzB9f2M8qNye35VldL4iI10lanS/bk68zmTgXZfgXVWoFoB+xR++SbmRzjzE m/nyhfmdK90aaH7OnZZ31K+IKAEoD24= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BehoOOfE; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf04.hostedemail.com: domain of llong@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=llong@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1729186605; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1+Cyv9kli0HZR9u7xxjpR63I6TKjlk9cCX5jppYYpfw=; b=BehoOOfEScmaLoNogc8sWo2VvOUgqDyYuRG4cgaosNKxzSOmcbttOvNdHkfyszZj8PcNWK 7IV+/ngWejycZn2AgW+0Oc/pMyWHyr5LLj0qbNp9D0BtYskcLhpFQp78i12qseBX9OubQU ReLhdH0d7SpJcP5znBfIT+fOPnCYqH0= Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-641-hzTi85XWPRS__MJ5DwT59Q-1; Thu, 17 Oct 2024 13:36:44 -0400 X-MC-Unique: hzTi85XWPRS__MJ5DwT59Q-1 Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7180ef2acd7so1153104a34.1 for ; Thu, 17 Oct 2024 10:36:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729186603; x=1729791403; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:user-agent:mime-version:date:message-id:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1+Cyv9kli0HZR9u7xxjpR63I6TKjlk9cCX5jppYYpfw=; b=IL5r4jmaZNP/2n/aRjgJjnLD0YCsIon+vpnWvgzN9O54uXHv1wziRXB+KkJwP2jA4F hje6YaBJj4bR9RYJ8MY4zeH+vDj8JQogPdKcX+HZ3SX+3beoY3x/GWTvApdk/gV/vV5H iVydMZLzSTWVoYQntOOKEHHqZ3zk9WaTKETPf5tPI2ybQ6hPhN0e/otQXaYra6BE9BhV rpQcTbFrc91ex2WFX3PW0GZYJce+cTNnh7empHi5p3nGQV/PvVKr6uEBMoW3juGVvP33 nV9MMOm4vxUmIL1djQboG66yOUCV+Nh3Kv/T25WQYPX8HzYNNzH3YguBD5VYBHAALT63 v7TQ== X-Forwarded-Encrypted: i=1; AJvYcCW4CJaEx0+O6dbPaC1tJp1nSOsCSu+AvZie43z7am+2Sct2ZUmPyTuGHCnwyhwFeBkyWVz1TqEzZg==@kvack.org X-Gm-Message-State: AOJu0Yz3XmEUZhzvBuSUjFJlCZ5UZyBJpF1OmLR45kkXikFi/q+lHKuW X2MssrZvH3d9x+kAQsFgIJpuCMsYXJJ7QNNavNgURqGm5gE0lcr820PXzj8go9HL8coFPyLuT1H PJZ0xGsdkDE1QjCM1ocDYiomzaHHb7dx+7+3sKntwH58SyxBZ X-Received: by 2002:a05:6830:730d:b0:710:f5bf:c4df with SMTP id 46e09a7af769-717d64b365cmr15298864a34.30.1729186603267; Thu, 17 Oct 2024 10:36:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF+KTo2JmByonndrDKcaBKL+hi6z5upfE4x/QBxLrngHndngfco8bUfn8TdS9nLvCauPmK+0A== X-Received: by 2002:a05:6830:730d:b0:710:f5bf:c4df with SMTP id 46e09a7af769-717d64b365cmr15298849a34.30.1729186602993; Thu, 17 Oct 2024 10:36:42 -0700 (PDT) Received: from ?IPV6:2601:188:ca00:a00:f844:fad5:7984:7bd7? ([2601:188:ca00:a00:f844:fad5:7984:7bd7]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6cc2ed6e50asm18982056d6.44.2024.10.17.10.36.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Oct 2024 10:36:42 -0700 (PDT) From: Waiman Long X-Google-Original-From: Waiman Long Message-ID: Date: Thu, 17 Oct 2024 13:36:41 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 1/2] rwsem: introduce upgrade_read interface To: Christoph Hellwig , Waiman Long Cc: lizhe.67@bytedance.com, peterz@infradead.org, mingo@redhat.com, will@kernel.org, boqun.feng@gmail.com, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20241016043600.35139-1-lizhe.67@bytedance.com> <20241016043600.35139-2-lizhe.67@bytedance.com> <7f7b277a-7019-4bf4-b100-0505c6ce9737@redhat.com> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 080A540013 X-Stat-Signature: 5p48uu18hcycnzmfu5xou9rk5ipek6yo X-Rspam-User: X-HE-Tag: 1729186592-12397 X-HE-Meta: U2FsdGVkX190VKzt9s/fPVQoMMVDtV4y3zgY33VmqmcZM4IwOgwHo0uwLAqSvAyp/1MQlxiDVA7GfcbWo7Hp37QMv1N/WyCQn2R316sCAM5ujzT4p/S/bAvoA9u0DsR/I0XJ1xFzuR/kliMOC+hc6MGkW2fvv3SlpQpQY83dQk67foJNugZj8+GxVZjYnhYAGxN8k6cs3aRVUp3fT2JDgRB0ks4qXelTSxXs28Xl2yF+rdTlCga71CyypWpSNlK5h1d48pw3zctB7Gq48050QOqiVW3UNzP88gph7iuF+dVH8guDo56p+DqshPORlbyckwKr4vogMn8WBjd4MRSwluQZLF6JspoOcuuoThwXM5/DCun1ndCuFCyw0tN3Gvj+uwkwAmARi4/JpYlPtPd99fZWK6F6PTAaZWxNnwu+YD5CPco1//HHNpygO+nMdWZXrncnZEoP/CfZlEeOcjzWxCWOlbKnmERWNT5NJ23OceyUwlMf1hSH1kVFVHuXqK/WLucxI9fEYO7pzVfZTtQp0RvrqcAXdNxQMY3vo059x6B1yhSzgDFosZZFGu4+gSoJ3m+KZqaq6+G6MafKhgIzHX170SwuCSFtepD7eTtBKF9PbuA9JA71AjhIk04fp2Shf1Ya9K7fxIouJMXzuy4tFDqe/0erJbyBEBFsydGpsd1yR1SXrDYqlUOWVCaA4n3MAbmnHZRc7zijG+gcs/5pCzayzd55BvNwYWkPnJ31I1rY+yJnwz8ungcvmhzXQm7h1eik+q1of2PVgz65AzCI219Zf8up3gmoq/MOJWJGx4OHtWoEpI/ylDkg5lCIDaay35ZFyaUW17rkArWNWN2zqsxHYdd3JvGVIB7hyKbVc/99ekd02g1CPtT9o7LsPAwSJQySYWxc7Iru843jxQMJ2iX931DWwvHPkWHJhczhIbI61pzGNe7Mj8TduznBt/nroTi2VjTzFAUbTCdx8Kh unu1eqt0 0CTYCbgRy2EbK/Jd9r5yrISg0GoWRDhRDwK0i+nYfeIHUspAJGwRnkbvHDD6/MjjnCvgFYtKE8cg4MHI40aiHqIVy/T9SWrGkz6ShnEujymzlfFg0lRwMQJHmHxoBqJvGJhkv+lVpc1yU6WxUR/yNTbjUcQKoKwmSsowkl5nlLR8j7DK/fmoEU5rw9RHhIYYuZtqkkCnDEIJlIJ1gHJAhOyIDVIvt07M4C+BFCmW3Nh2TrM1CTo+lh7P4CIdxIngMtBNuQBGziydHi778JB7KVVWi7PTnYnk23vwNVO3g9E/dV16KfiQ8sak+VxV2luhA8aoRhoQWxcv+CckYygCcdZ3k74qC0T216OJXZZG9ScMiantNEzmfl4BFdXg1uO1Ia9jm5F/3Fxpf57p38/z9kyJQwzCRZR33tLcCBsLqSnBlzuIarHDg/lZEBxmIprWm+PTYv3/a3UTocB5WClGfsYr7S2VONrGall9zPOrKHxmVpsMZqA1DkZmWcatPMmv47F4MgtR0hV2d4ZWrGOWMj1sR/Bm2d+PNAYkw X-Bogosity: Ham, tests=bogofilter, spamicity=0.059212, 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 10/17/24 11:05 AM, Christoph Hellwig wrote: > On Wed, Oct 16, 2024 at 10:23:14AM -0400, Waiman Long wrote: >> Another alternative that I have been thinking about is a down_read() variant >> with intention to upgrade later. This will ensure that only one active >> reader is allowed to upgrade later. With this, upgrade_read() will always >> succeed, maybe with some sleeping, as long as the correct down_read() is >> used. > At least for the XFS use case where direct I/O takes a share lock > that needs to be replaced with an exclusive one for certain kinds of > I/O would be useless. But then again we've survived without this > operation for a long time, despite the initial port bringing one over > from IRIX. That means XFS only needs to upgrade to a write lock in certain cases only, not all of them. Right? In that case, read_try_upgrade() that attempts to upgrade to a write lock will be useful. Cheers, Longman