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 83647C77B7C for ; Thu, 11 May 2023 06:50:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1C46D6B0075; Thu, 11 May 2023 02:50:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 14CD86B0078; Thu, 11 May 2023 02:50:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0140F6B007B; Thu, 11 May 2023 02:50:24 -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 E27706B0075 for ; Thu, 11 May 2023 02:50:24 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AAA7E1401FA for ; Thu, 11 May 2023 06:50:24 +0000 (UTC) X-FDA: 80777050368.30.BFE6B95 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf03.hostedemail.com (Postfix) with ESMTP id 8534C2000E for ; Thu, 11 May 2023 06:50:22 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ar5szhk+; spf=pass (imf03.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683787822; a=rsa-sha256; cv=none; b=6b5qwjTFAXrrO2g7hKK9YIlq2+MXqzseKzTOAKkW01VsdddxBVvSS43uGDd9hutzlGuiuF 8BgBRbH7+cTwHeZzWh5/A+mMl4Ogv1zATn2hOf5R2bCIHxJSrdRojzsJNLioB6V2EswQwk 4GK5jygT1BuWby/LtsW8ZEqmp+WyFuI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ar5szhk+; spf=pass (imf03.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683787822; 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=L8rXiyFTG89ZpswB3hYb5Es6RMJM2JRlnlk73HYWIls=; b=ho9CgvHMxlUYpVKoBH9cifZxrLJfjOLqSwoD38OGAEJ+mRCNdltNtPAE3Py58fP8rN4tbf 41AVpFcYy3wj3UiWDGM3CJNVsQgB/eoqXPY4eF1kyuRIqBuYQOMYQtHRrxY4IlLn6Kq3iH VDlW5Bw5i7A1D5dpRBPEDhAsGKQcnW0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1683787821; 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=L8rXiyFTG89ZpswB3hYb5Es6RMJM2JRlnlk73HYWIls=; b=ar5szhk+tVgZrLu2li2RaKKLn6F4hYlM6iYJixV+zOknSMORO2SIrxBwY3KuYyYq5lGvuc BiG2iXcSwc/Dk+sykgxaHCJJs2tK4Ppdtlz3008W9dgcwBmuHJcTUOvWYN9CTwcppRwr7N Olbd3a8wffC48ArMGznt83l1THyYdpQ= Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-414-ZZy7UeV3Mj6gF3xmrO29JQ-1; Thu, 11 May 2023 00:45:26 -0400 X-MC-Unique: ZZy7UeV3Mj6gF3xmrO29JQ-1 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-1ab3c41d5ceso10800045ad.1 for ; Wed, 10 May 2023 21:45:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683780325; x=1686372325; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=L8rXiyFTG89ZpswB3hYb5Es6RMJM2JRlnlk73HYWIls=; b=g4fmd+zQrOysI22jmNaH79dg2dgPWzehUgShPWu7W8+flXy2Hl84OGsZwBHtKcGdtt TLWRU8pie6MMLlaBjzZw6yQjen+QV1olbISpwxUuf9HMXon4UJ+w45O9lQvSz4/lb7Wo u2Xj9js21JLwMtXGd94EXI5yyK6rwjaTgPSB/WSV11JdiH29WixzgOftfDWHUn7EGicW n1IASj29JOYTT2wGKiUjrROsbsaQXI65EtLj9BksOVicXyccP3+dl/lf+skvmpUPIilF iybyGa+cxW8qRvJ1ZpeI+YOp5I2qeyDDNoC4rsAplobYwbC4yeSa7sxQL7dh9i3HBNc/ aaAw== X-Gm-Message-State: AC+VfDyt2zResL4zeiQ81/yWuwVXTm/hSY9CS2sLM+pmzfr8ci1MstXN RzX7bHikG5ZI4IxSeSL/52HgFIEsLNe2tZrHB5qaGTqbZCMt8JZrZp+PB0FBMXUVwS2+0MmA54D pfcikDTrA4Uc= X-Received: by 2002:a17:902:d4c4:b0:1ac:40f7:8b5a with SMTP id o4-20020a170902d4c400b001ac40f78b5amr23873902plg.3.1683780325402; Wed, 10 May 2023 21:45:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ748vMOPFgvF7BqbUBl3Z5M5SitkSDatlzHYrBmeugpx+1e8smaBL/ipLOyGDyFa3yDnAHbcw== X-Received: by 2002:a17:902:d4c4:b0:1ac:40f7:8b5a with SMTP id o4-20020a170902d4c400b001ac40f78b5amr23873884plg.3.1683780325041; Wed, 10 May 2023 21:45:25 -0700 (PDT) Received: from x1n ([64.114.255.114]) by smtp.gmail.com with ESMTPSA id c2-20020a170902d90200b001a9bfd4c5dfsm4702926plz.147.2023.05.10.21.45.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 May 2023 21:45:24 -0700 (PDT) Date: Wed, 10 May 2023 21:45:23 -0700 From: Peter Xu To: Linus Torvalds Cc: Andrew Lutomirski , Johannes Weiner , "Matthew Wilcox (Oracle)" , Josef Bacik , Andrew Morton , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, Dan Carpenter , syzbot+48011b86c8ea329af1b9@syzkaller.appspotmail.com, Christoph Hellwig Subject: Re: [PATCH] filemap: Handle error return from __filemap_get_folio() Message-ID: References: <20230506160415.2992089-1-willy@infradead.org> <20230509191918.GB18828@cmpxchg.org> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 8534C2000E X-Stat-Signature: 5nuiycucsc4hggms8b95u8m76mkqatjq X-HE-Tag: 1683787822-442474 X-HE-Meta: U2FsdGVkX18JvIENY4+lAgF26MEdYmx5E0LAfk7Eulp6DqDOddALp+T8FG0/p+qfKwusv0he5AgJlxigZ1vxaJluydZOZnLhIL2Twh1Fcqldk8WBElA4sKzzjfBOv+xhqndQsE3YX2QUjQS5dquVShgYxUdbCuOqUVyc3mpkIh5nTsgOgj+l17mnVJ4jBN0NJ34ISh8iE2Q7PpQMHPafL+FeEMptGzZcU1Kr0jNClun3TRFvxmwB7lfJxssnU/nzE6kH3GaubPGE5zd92SX45PqAUH4ObHk1mNm2FYE1QxKUJGFViuHwv4cNDheKoCTqTLSOI1/BdcBxdXBUOyidDxYZConz/6ci/aonId7f/GGyywFePLqKfm+9n7ERYHYScZY7z0kVvxBhfvUkRDy+pGjbZb3uWWxo+Rmj3A8ICAe9W5WS4QZipBJSCOU0Lz/65uNWQ3x08elVoWfz0t+TpEYhNhrH5k3zs6TMJdbWr1M55p8nmv0jMO51DKTYUBVb/uF21PPHMu61cZNz9GC84GAXx3+9gy2lX9g+ZHr8NkcO/PxalxAwnBDS+rfVldBmkxAo08sW1GHaxvRpe+Lq+eE4jlZqGoOiWvQIVTpeaS+EX52yNUcIaDGU+OlVLc1OwrXdpNbBQHBNsCGC5SJQCojEUloGaewi9bh92EJXym4UoqZ5isCSzjDkBpIokCqPK7JSrLwfMbs4l8IU+kAKWauIB0+V3F/n4cE528D1qtD4rGV5lWEY2Y2+te36Z2EHbpWlggdmCajqQJc1UGLvzyF7bf0rVWHu5/CNx0SMyQy+Da16n0R0+wPbgaqCzhqusVTgzEAQAzcUg8I+M3LCYq65ZbLJIsNW/qEbOJkmSnfgNnSTNn/UYe2m5SVEqWGHZ/j5IdkN0U/14gXuCmCHoi7ChxRdTqWmn0gnlS1oA9+jqo5PoiNJLFATAa9ztPXgvEt1yaXGUkDgfGOR0Tx e07JzRay +6xJaOiIBg7P9rkf9Z9Sw31MSkydaCAwDXe4s1uGyGyXlaqD8BNu106YMlaQZmKfcnbVLGXYX3btj0Tr318+HmRy9Dq/xKCG6HBxTm+qHsqfyJjAtEgVQdk/aKn4iMW0j2jtIHMIHmGyAKPNX24zbGxYZf+Vl0+CJFxO+K1c3gauBmRWnpcrj86Sgd58OOLq608mMkfNJYwvJJYK77jidG3PmJ2QBFe+bWyJdbUO4rjRJ9B/BxHZQ27FApUxbR9Rg+i8H1iMam8QB8YRiCHLUgupIIpEP8USl2igIWGOY1RQjKjSxNU5pO/KapEWtfn+WJK8q3eiVH/EOi4jqCR1wsKnfPuxvCtinBkUzHUtc1raRozmYqShwPUDRyBA8++D3jqX1vSu2riQKVgDtKsK72L2wbfUn8kJKxElbnCzsifFg7mq0JD/Mp67k9akoyz/E5tH1uam1jQrngryx+QK+NSmKz63mFM6/uKLSDfNRRlTfFu2FyV8iAmcOYDGRJuBdATP8uhmOynQRoIo8PZZhCzLAPjJrcZhElmb9OpMdE5dzGpTzWjkao2fppg== 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 Wed, May 10, 2023 at 04:44:59PM -0500, Linus Torvalds wrote: > On Wed, May 10, 2023 at 4:33 PM Linus Torvalds > wrote: > > > > We'd still keep the RETRY bit as a "this did not complete, you need to > > retry", but at least the whole secondary meaning of "oh, and if it > > isn't set, you need to release the lock you took" would go away. > > "unless VM_FAULT_COMPLETED is set, in which case everything was fine, > and you shouldn't release the lock because we already released it". > > I completely forgot about that wart that came in last year. > > I think that if we made handle_mm_fault() always unlock, that thing > would go away entirely, since "0" would now just mean the same thing. > > Is there really any case that *wants* to keep the mmap lock held, and > couldn't just always re-take it if it needs to do another page > (possibly retry, but the retry case obviously already has that issue)? FAULT_FLAG_RETRY_NOWAIT? > Certainly nothing wants the vma lock, so it's only the "mmap_sem" case > that would be an issue. You're definitely right that the gup path is broken which I didn't notice when reading... I know I shouldn't review such a still slightly involved patch during travel. :( I still think maybe we have chance to generalize at least the fault path, I'd still start with something like having just 2-3 archs having a shared routine handle only some part of the fault path (I remember there was a previous discussion previously, but I didn't follow up much from there..). So even if we still need duplicates over many archs, we'll start to have something we can use as a baseline in fault path. Does it sound a sane thing to consider as a start, or maybe not? The other question - considering RETRY_NOWAIT being there - do we still want to have something like what Johannes proposed first to fix the problem (with all arch and gup fixed)? I'd think yes, but I could missed something. Thanks, -- Peter Xu