Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4945459pxj; Tue, 22 Jun 2021 11:24:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeFpWsfv4Gk2WtFC9uZWQx2Dd3s1ZBc8heqIrAKPpee4m0jQSmP63SD+7l4ioBPx2WX42p X-Received: by 2002:a05:6402:848:: with SMTP id b8mr6928748edz.44.1624386256757; Tue, 22 Jun 2021 11:24:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624386256; cv=none; d=google.com; s=arc-20160816; b=RYT8VwQsV8QbBkvgnWkLsj4TNkE7JD4YhtZFCR5N+o7tL6brtt6RIDZscu6B/pMmmj F2P6CQeW3XYg+uroUqcL65NqYa4QB9n86bQwNQ0gsu8fpkRnOUWvgoXwgVF3CIpF/Gu3 0qNgtguNhPz1u3Tz32Vs/jHfsfes4kTCFw9IiJEiCgUyDMN1iDJWbYwrDlCPBal87eME gEU27AWwqDdlFab8O4YpxAJ73BlAnDL85dJoiHV1N1PZqhyKi/n4selroJWF1Ss2gZxm Mfe0DlMrJeDfHJkx3J8Jr57HDGX3WXnAw9KtH/FSAfGo+xEfpJezIlNjaUE6EarcN2oc skHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:content-id:mime-version:subject :cc:to:references:in-reply-to:from:organization:dkim-signature; bh=4wcUku5VYFOIqpjq4OYU4JOlXU8CasqeJwQGFJvPLW0=; b=hnGFB0HpXt73Ev/f1/By1rVMLXeV/0L2mDk0K3PEgNcU3L6MW4Qb99scAvher9TQaI QMpIMl5HUnNBaH+QvLw74KFR2w+/xE/xKOgAF0JyArYcXOVKZFw9p4C5xwe6Dnqe21WL SXJXKDHPqx7lmvhGEpajffMpwWK46jEYOTv3A46hpprPmudwuMDtE5EcPXCroKpiQ5W+ pAB6BtDC4QoBdbP/ezp4avhr9E0gPUlEXqE8JoSdczQd+p8Cb//TUs6SA94RYV7xV3FC PzoTBmVR48V6o9rlYYGLeuF+lOhB64vSL0kzrCveMQ+DV5bEw/h7P+FhLXZCEpUyoyvP aXjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=RneEJtGJ; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e6si14065437ejj.14.2021.06.22.11.23.52; Tue, 22 Jun 2021 11:24:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=RneEJtGJ; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232400AbhFVS0B (ORCPT + 99 others); Tue, 22 Jun 2021 14:26:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:42550 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232371AbhFVS0B (ORCPT ); Tue, 22 Jun 2021 14:26:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624386224; 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=RneEJtGJ2LlTcXcG9gnmQmSDJZlIUWqHf23uMU6xCuKbTptEmevba1y3Lxv6UqTzIWByL4 /jYgvZwAB3J87h/UpBLubhCgKth1rrIRzE3G4gNrdsHOygDEN9uOT7M9gSGguZLoJ9S5NN hKEErNPcI/ciTXYw5uAm6RZlCuBXKqI= 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 Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org 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