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 2E053EB64DA for ; Fri, 30 Jun 2023 21:25:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A10328E0053; Fri, 30 Jun 2023 17:25:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 997A88E000F; Fri, 30 Jun 2023 17:25:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8600D8E0053; Fri, 30 Jun 2023 17:25:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 720628E000F for ; Fri, 30 Jun 2023 17:25:50 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 481671A0512 for ; Fri, 30 Jun 2023 21:25:50 +0000 (UTC) X-FDA: 80960696460.30.1E4A9CF Received: from mail-yb1-f180.google.com (mail-yb1-f180.google.com [209.85.219.180]) by imf17.hostedemail.com (Postfix) with ESMTP id 7F5BB40003 for ; Fri, 30 Jun 2023 21:25:48 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=p+FcoycA; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of surenb@google.com designates 209.85.219.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=1688160348; 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=LDq+42TG3Ict2mGIXSxzLvITw6tDdgLWNgtDD2KSbtQ=; b=52l1Is8YNDUWbkS03agm6Q/VzJH1RbNmW1x6UVElRnaZVgR/l9kGg92CfFQADb45lhsYYT sJmloaej6XSeP4mORha+f2IvhwOlJq66lvHPqvmAB4Y1ETv/DVX7eYNIysehTtwauocWt+ 8FGPNFeADDCGepfNhe5o+ZOV0tY4Bew= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=p+FcoycA; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of surenb@google.com designates 209.85.219.180 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688160348; a=rsa-sha256; cv=none; b=O71nhc4Hy7FlW76mRLxK7yv5+FuvMevKe4vf8gAoBtd7bQQqvjRPm+cPuJSjU7NmygF7ui Hr60SCLaTe7SZSGBBxC6uMIaFf9JlzWnq214qomB47Wn/RU4KAy7OnLq1dMUykuhKbiz5s udJH6rL6SAUwJQVi+ovHrl5mR05M71E= Received: by mail-yb1-f180.google.com with SMTP id 3f1490d57ef6-be49e41a3d6so2184646276.1 for ; Fri, 30 Jun 2023 14:25:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1688160347; x=1690752347; 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=LDq+42TG3Ict2mGIXSxzLvITw6tDdgLWNgtDD2KSbtQ=; b=p+FcoycAK0LPHezltqUeI1NrBX02NNvg5DenKN0eWW1dccMI32UPW8kFZXi9E1liI7 DXYS4n5JEx0K8GZNxGg+qprF+yhlh0aoqEyKqaRW/GmIuTumS/1PkBlZI+loDbENmNBX Ho7ju7BN9BO7gPdG/IYe8CqRA3A5LJUsyNWk7PlMC++UPN9eBCyXVNb14REAHWCSl6q2 Je65sJp6xp3ZUvwhMu5GeWyM8Qo+RY+ReIkKr8cTipAt+0MzoT57tkgZye0aad+zr0Q0 bE/RhNvlJ1QugzovorCN6ITdQVr2mEdnCVPvr9vPU4ew5xC0HaqZ7A2pwu6xaV+0yUr9 UeXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688160347; x=1690752347; 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=LDq+42TG3Ict2mGIXSxzLvITw6tDdgLWNgtDD2KSbtQ=; b=QT9oTXOjgT1gtyjFhWjISaFsLmYro7VCRpl/e8nZJiCu5NTf7xWssyIxjkWHhnzG6P vcLa8OgGsASprwOV0XTIy9FPc2gZO2gm/peE9Eqt1W6im4ENKbhL95cGY0VpQDiYisBs elg9bH0P0mYplD+/aiNolgQNQ0IUEALi1cbS+zXmOO6oHePjapZSyLsjLMwykTpoxVmF 94TaFghIJezL3ul0JCW4JOvoSPCo2Az69UnOnzj45WOZxxts9+ry+HlavzUuTu7XQ/oQ VCskTlhNlDdkzl4IxVBF2dlRoTSuMyJa3yVUS4zTgH1DLM5McVeaZV0xJnBKkOHUTAwu /x4w== X-Gm-Message-State: ABy/qLZn8nQtAJpJt3mwoolMNvQptdPcv91sUkehPRfprAhN0EgX4/nP Fvb/Zxhp189U4F7eXCfn59h9SlNdq8T4cHV1g/GoqQ== X-Google-Smtp-Source: APBJJlG07kZfUqsjjffPRGzbU8Rg8FwBTqDjQrYIYP39R2vse26RFRoYEGSmwzduzus/Oe7YVXAxuSv0y1+UclYTcxU= X-Received: by 2002:a25:15c1:0:b0:bfe:77f1:f454 with SMTP id 184-20020a2515c1000000b00bfe77f1f454mr3324853ybv.51.1688160347525; Fri, 30 Jun 2023 14:25:47 -0700 (PDT) MIME-Version: 1.0 References: <20230630020436.1066016-1-surenb@google.com> <20230630020436.1066016-5-surenb@google.com> In-Reply-To: From: Suren Baghdasaryan Date: Fri, 30 Jun 2023 14:25:36 -0700 Message-ID: Subject: Re: [PATCH v6 4/6] mm: change folio_lock_or_retry to use vm_fault directly To: Matthew Wilcox Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@suse.com, josef@toxicpanda.com, jack@suse.cz, ldufour@linux.ibm.com, laurent.dufour@fr.ibm.com, michel@lespinasse.org, liam.howlett@oracle.com, jglisse@google.com, vbabka@suse.cz, minchan@google.com, dave@stgolabs.net, punit.agrawal@bytedance.com, lstoakes@gmail.com, hdanton@sina.com, apopple@nvidia.com, peterx@redhat.com, ying.huang@intel.com, david@redhat.com, yuzhao@google.com, dhowells@redhat.com, hughd@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 7F5BB40003 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: h43bece1fhqbmqwqbzzyzf61rnjbznwf X-HE-Tag: 1688160348-750376 X-HE-Meta: U2FsdGVkX1+wYCVg1GJ5sgT+mEJo7lMPZnCna0qpD0E+pwRTLSBceug3y+i7F2NN3Top7+Txoo0ZnM8kgqdhjn79yO2/W+lM//fyVmrFlf2pOcPD/GGMtm9ANWe/QLkPqWz1qJBS8BbxCa5ZG3mcPGtBG2Mw9m0IRhAC14kMvW5kKdAhVbo/chMa2QJ5TrWL5FwHViCR7+yiDUA2z+Qr74xuP3lozpUXuIEhsLjrvj1erciWojo9Lt9VhQ27pmqMGwRkGPzlhKpM5mPh53QmPLV7jTotOZGZIcxjCIg5NbU53cyGAuAVbgdYLBKuzgw9KqWu7z1ReZT7DJzg+fuTo7LAH1NjUShNa4eVL/BXQDIia2Ddoh+sHZeDMUFTteSqgnT4qhmYvxWqMwfO6zDUZlQ7OGWXOKfI2AzngqzHLKYJJ7jpHiirqrnEnNTb3eAlRi2xwSQCppgR9nvtgpmSGzWGXUcSmSV+1/xRC4QKkZNQzX14XIsxzD5y5jviuBz1PBtGozbi+gHCk4QNdhxyXtK2NkWcOM7wuFI25I2UiZay7iz56Lk+lSJsLA1D7S09lnkG1Ztm8+6VonX5r+XwnEZ+8BavPeqt3Up60SjGWRM+KEVTLxfSx9MoIUAxVXPbP7YYVkF+xf4VoCeQfTJ4sEiPmaTYlHdXwQhwy7yes0tRtziaam0i8Tp97T1S94NIRT6nq48UCaQMly5HZSi5/T7yov4yFZ4Op8YaCflCsZoSUyvH0lUPhYUSKTkt7repiCDbc7fJyWOTEmqMVwEM1cxJ2IaGkNE5X1nIxIiPPYJuhawU6XNKDA6yfBzOlBJDGzcmt27E2mWediAQiM1oopb7OG4X7j/zCszvfVx4URpScl8bLzzlfBn11CKlfD4pC/dfV3ebZbowERiopM7wkJ8nJ7ve1TswXKpRyxZUm/zYMEFCRD04cvIfl7EjCRg33PGB/igc8WRtR2BgNOQ Ph2JjCVc 76efz/JJuifVWhc/AU8orG83uvu+2D5jVUvoCcEfhlD3OSJGXDfS2VotjaCXIOgdFAqM1atHevkMdY82xfh0RC7mmiCnkRohlgjWBDOji/eLMxC2QhLEtxOEwZP1hG38D0DgswBuuclAWnxD78Eep26ejGFTULbC+K5SBIhctrx9euluagep3z2Zwloi5sMXjKyZWFNsKs+Qo7EzDYpEnnpBKg6dFrjWy/tngdckCJ9xfXzAqw1/efizurN/pEQuH3j9MvoHOI3XLfCP8ZWqZSbcD8pvUUIZ6xq5tzMCzVLmnWTCtt8lRw5GvR89BpKZG5S5Ab41JQJZ3gfOtPzn0zDguWCEj5fT+aoq1J0jYI1ui8Ueqs0nAauzaPbPihDnGRpnn1t/BWepmlI+VSJyh/yWcYpdzzZUeJjqc 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 Thu, Jun 29, 2023 at 8:47=E2=80=AFPM Matthew Wilcox wrote: > > On Thu, Jun 29, 2023 at 08:45:39PM -0700, Suren Baghdasaryan wrote: > > On Thu, Jun 29, 2023 at 8:36=E2=80=AFPM Matthew Wilcox wrote: > > > > > > On Thu, Jun 29, 2023 at 07:04:33PM -0700, Suren Baghdasaryan wrote: > > > > Change folio_lock_or_retry to accept vm_fault struct and return the > > > > vm_fault_t directly. > > > > > > I thought we decided to call this folio_lock_fault()? > > > > > > > +static inline vm_fault_t folio_lock_or_retry(struct folio *folio, > > > > + struct vm_fault *vmf) > > > > { > > > > might_sleep(); > > > > - return folio_trylock(folio) || __folio_lock_or_retry(folio, m= m, flags); > > > > + return folio_trylock(folio) ? 0 : __folio_lock_or_retry(folio= , vmf); > > > > > > No, don't use the awful ternary operator. The || form is used > > > everywhere else. > > > > Ok, but folio_trylock() returns a boolean while folio_lock_or_retry > > should return vm_fault_t. How exactly do you suggest changing this? > > Something like this perhaps: > > > > static inline vm_fault_t folio_lock_or_retry(struct folio *folio, > > struct vm_fault *vmf) > > { > > might_sleep(); > > if (folio_trylock(folio)) > > return 0; > > return __folio_lock_or_retry(folio, mm, flags); > > } > > > > ? > > I think the automatic casting would work, but I prefer what you've > written here. > > > > > /* > > > > * Return values: > > > > - * true - folio is locked; mmap_lock is still held. > > > > - * false - folio is not locked. > > > > + * 0 - folio is locked. > > > > + * VM_FAULT_RETRY - folio is not locked. > > > > > > I don't think we want to be so prescriptive here. It returns non-zer= o > > > if the folio is not locked. The precise value is not something that > > > callers should depend on. > > > > Ok, I'll change it to "non-zero" here. > > Thanks! Posted v7 at https://lore.kernel.org/all/20230630211957.1341547-1-surenb@go= ogle.com/