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 X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0DAFC2B9F4 for ; Tue, 22 Jun 2021 18:23:52 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 92019611CE for ; Tue, 22 Jun 2021 18:23:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 92019611CE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8A7BF6B006E; Tue, 22 Jun 2021 14:23:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 87F5C6B0070; Tue, 22 Jun 2021 14:23:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7215F6B0071; Tue, 22 Jun 2021 14:23:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0202.hostedemail.com [216.40.44.202]) by kanga.kvack.org (Postfix) with ESMTP id 3C53F6B006E for ; Tue, 22 Jun 2021 14:23:51 -0400 (EDT) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 77AD61807655C for ; Tue, 22 Jun 2021 18:23:51 +0000 (UTC) X-FDA: 78282183462.06.891AD60 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 140768019361 for ; Tue, 22 Jun 2021 18:23:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624386230; 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; bh=4wcUku5VYFOIqpjq4OYU4JOlXU8CasqeJwQGFJvPLW0=; b=Fltty0BEitJdDVVvPwywYITyrlu0+uWGgNb2UykIci78jI6pK2PknEN82GXQZ66RhqaVJk dZaZx5U0LF9OuuJ0S1OaWeN1nArQIVOKUD9aKIuWtmynDOx/vrXWOlacpuqhXeqeb8jYix ZF4I8ZzCU6vQXudeaIgNMd+WF2lCwDU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-148-ixJxdKnMMziAfh0cKU_bOw-1; Tue, 22 Jun 2021 14:23:28 -0400 X-MC-Unique: ixJxdKnMMziAfh0cKU_bOw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5CA02804142; Tue, 22 Jun 2021 18:23:27 +0000 (UTC) Received: from warthog.procyon.org.uk (ovpn-118-65.rdu2.redhat.com [10.10.118.65]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9218B69CB4; Tue, 22 Jun 2021 18:23:24 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: References: <3221175.1624375240@warthog.procyon.org.uk> <3231150.1624384533@warthog.procyon.org.uk> To: Linus Torvalds Cc: dhowells@redhat.com, Matthew Wilcox , Al Viro , "Ted Ts'o" , Dave Hansen , Andrew Morton , Linux-MM , Ext4 Developers List , linux-fsdevel , Linux Kernel Mailing List Subject: Re: Do we need to unrevert "fs: do not prefault sys_write() user buffer pages"? MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <3233311.1624386204.1@warthog.procyon.org.uk> Date: Tue, 22 Jun 2021 19:23:24 +0100 Message-ID: <3233312.1624386204@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Fltty0BE; spf=none (imf27.hostedemail.com: domain of dhowells@redhat.com has no SPF policy when checking 170.10.133.124) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 140768019361 X-Stat-Signature: cixs1dk4om8eo9qdpd7s4es13c63yizw X-HE-Tag: 1624386230-61813 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: Linus Torvalds wrote: > I'm not sure how that would even look. I don't think it would > necessarily be *impossible* (special marker in the exception table to > let the fault code know that this is a "prepare" fault), but it would > be pretty challenging. Probably the most obvious way would be to set a flag in task_struct saying what you're doing and have the point that would otherwise wait for the page to become unlocked skip to the fault fixup code if the page is locked after ->readahead() has been invoked and the flag is set, then use get_user() in iov_iter_fault_in_readable(). But, as Willy says, there's a reasonable chance that the source page is present anyway (presumably you want to write out data you've just constructed or modified), in which case it's probably not worth the complexity. David