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=-5.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS 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 DF55BC4320E for ; Fri, 27 Aug 2021 19:33:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C719E60EB0 for ; Fri, 27 Aug 2021 19:33:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230329AbhH0TeN (ORCPT ); Fri, 27 Aug 2021 15:34:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230405AbhH0TeL (ORCPT ); Fri, 27 Aug 2021 15:34:11 -0400 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D76CDC0613CF for ; Fri, 27 Aug 2021 12:33:21 -0700 (PDT) Received: by mail-lf1-x134.google.com with SMTP id j4so16511537lfg.9 for ; Fri, 27 Aug 2021 12:33:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=noHCPSrtAkyzCrVsyQD6F8PSfdWl+QDD2xq/GV377n4=; b=OubElFYVmhZbc+A4cMbmNe0TfihA1IDFIUGNFFLF4+YO14gBPAxD7udrxkX02hDHv8 AfKEsOmsIOPceXNppuc1+woLySYPcxqVPmdyCnzYp/DWgTgYZru2vKMDv0QdVLj5OUdo 9eyfmRKJeFyRGIgCMVyovNvNTjyCKilmw7e2E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=noHCPSrtAkyzCrVsyQD6F8PSfdWl+QDD2xq/GV377n4=; b=FbjlqHy89JW9mR/B/V8ra6clBOiweJli5zVc7bk/+HvJNm1q+v1Ln47d7SNumaJSst 18GQ4jnmwm6PhzJQgka8CAcpTH8Y5Jn9cHTmESfrxTDAXUOC6209JfqlKKVcdEw7RWbm vM+fl9ZnrnEqS2Uz3SY7YqdYLzKS1DwEBpaxkHcSa7R7JPAlnykMeEkJfSiaHJGDRIdN CNnbItrYYJhPp5+qDVSHVEjE9iDrCFmj/yiFekKYSXF3plaER6VHuD5bR0i6whvRTTsI Yg4HqSNSkwLhCEFV5Enq9Gy4pIfk7M4nmau5q30bLCKmzFbbL4CdGfMRMC0CaSqLG5ir X49Q== X-Gm-Message-State: AOAM530qBv0ryYpj6fVni5dTZk2f5naVFoAGNOJulGb3hj6GndBwssch 25YaBnsx8qEkgjnlFQeklsjaBHV7y04egGAQ X-Google-Smtp-Source: ABdhPJzLhLWaS/O4EdUbVN1LctU5pnba+9PSqfUhIzPgwvbc+hY1oXqK/zmRXevzvWUWh73DePVYBA== X-Received: by 2002:ac2:4e0a:: with SMTP id e10mr8167198lfr.66.1630092799565; Fri, 27 Aug 2021 12:33:19 -0700 (PDT) Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com. [209.85.208.170]) by smtp.gmail.com with ESMTPSA id u20sm782068ljl.76.2021.08.27.12.33.17 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Aug 2021 12:33:17 -0700 (PDT) Received: by mail-lj1-f170.google.com with SMTP id m4so13248354ljq.8 for ; Fri, 27 Aug 2021 12:33:17 -0700 (PDT) X-Received: by 2002:a05:651c:908:: with SMTP id e8mr8956231ljq.507.1630092796791; Fri, 27 Aug 2021 12:33:16 -0700 (PDT) MIME-Version: 1.0 References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-6-agruenba@redhat.com> In-Reply-To: From: Linus Torvalds Date: Fri, 27 Aug 2021 12:33:00 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v7 05/19] iov_iter: Introduce fault_in_iov_iter_writeable To: Al Viro Cc: Andreas Gruenbacher , Christoph Hellwig , "Darrick J. Wong" , Jan Kara , Matthew Wilcox , cluster-devel , linux-fsdevel , Linux Kernel Mailing List , ocfs2-devel@oss.oracle.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 27, 2021 at 12:23 PM Al Viro wrote: > > Could you show the cases where "partial copy, so it's OK" behaviour would > break anything? Absolutely. For example, i t would cause an infinite loop in restore_fpregs_from_user() if the "buf" argument is a situation where the first page is fine, but the next page is not. Why? Because __restore_fpregs_from_user() would take a fault, but then fault_in_pages_readable() (renamed) would succeed, so you'd just do that "retry" forever and ever. Probably there are a number of other places too. That was literally the *first* place I looked at. Seriously. The current semantics are "check the whole area". THOSE MUST NOT CHANGE. Linus 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=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 29AF3C432BE for ; Fri, 27 Aug 2021 19:33:34 +0000 (UTC) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CC9DC60ED3 for ; Fri, 27 Aug 2021 19:33:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CC9DC60ED3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 17RHD4pe025386; Fri, 27 Aug 2021 19:33:33 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3aq1kvgqfj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 27 Aug 2021 19:33:33 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17RJVdmg109266; Fri, 27 Aug 2021 19:33:31 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3020.oracle.com with ESMTP id 3akb92p0ev-1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Fri, 27 Aug 2021 19:33:31 +0000 Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mJhbW-0003Nl-MM; Fri, 27 Aug 2021 12:33:30 -0700 Received: from userp3020.oracle.com ([156.151.31.79]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mJhbQ-0003NF-UL for ocfs2-devel@oss.oracle.com; Fri, 27 Aug 2021 12:33:25 -0700 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17RJVdMV109282 for ; Fri, 27 Aug 2021 19:33:24 GMT Received: from mx0b-00069f01.pphosted.com (mx0b-00069f01.pphosted.com [205.220.177.26]) by userp3020.oracle.com with ESMTP id 3akb92p07q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 27 Aug 2021 19:33:23 +0000 Received: from pps.filterd (m0246576.ppops.net [127.0.0.1]) by mx0b-00069f01.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 17RIk5WO015147 for ; Fri, 27 Aug 2021 19:33:22 GMT Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by mx0b-00069f01.pphosted.com with ESMTP id 3aq08umbr6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK) for ; Fri, 27 Aug 2021 19:33:21 +0000 Received: by mail-lj1-f173.google.com with SMTP id q21so13263239ljj.6 for ; Fri, 27 Aug 2021 12:33:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=noHCPSrtAkyzCrVsyQD6F8PSfdWl+QDD2xq/GV377n4=; b=dO24ihNKdKaNOX3mgNRLptmgbhwqDjMzsoFbYMeRZ0OvQNBolhrmFkp/jbMubIHS/0 yDU8KdUCejLko9uTiCQkKud/ItZA5mGNbugVpCH/kvyo9BZnNLD0GOIBNF0RFXk6ikVn 5cMp9/iUpaDxsoDVnIoSrNyy5/MUvSsjufPKx8AjjEN0aSIIDGIqH3BTubrcV9njZben q42CDqlDriquEjZAePilT75yqhWWdCr0Bvi/rRG9//6/tkjfpc68dkCoYaFul2uC6/M1 4rEctNPXigOmXn7W3fYfJjE0xjhfPL+bsUtqnHdYuEJzDOnVJfh6sLEV899ky35d+tQh Tjgg== X-Gm-Message-State: AOAM531gN7Jsg5qHdItHEhRldC+ymcIaE13ZTh+jsdJw/dagneGx3A5H 0Yj6HfQ5nkFDc20srhNOGAKGsAcIvgPpLXng X-Google-Smtp-Source: ABdhPJyVUkLXUaDdCWPUZw1rLn7Hg/OFaNTVwLcVfkPJqPNXjio6mSvn2CGGWOMRQCBFDNKkNc8x4A== X-Received: by 2002:a2e:b050:: with SMTP id d16mr8980264ljl.282.1630092798812; Fri, 27 Aug 2021 12:33:18 -0700 (PDT) Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com. [209.85.208.174]) by smtp.gmail.com with ESMTPSA id s9sm773700ljp.34.2021.08.27.12.33.17 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Aug 2021 12:33:17 -0700 (PDT) Received: by mail-lj1-f174.google.com with SMTP id p15so13286384ljn.3 for ; Fri, 27 Aug 2021 12:33:17 -0700 (PDT) X-Received: by 2002:a05:651c:908:: with SMTP id e8mr8956231ljq.507.1630092796791; Fri, 27 Aug 2021 12:33:16 -0700 (PDT) MIME-Version: 1.0 References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-6-agruenba@redhat.com> In-Reply-To: From: Linus Torvalds Date: Fri, 27 Aug 2021 12:33:00 -0700 X-Gmail-Original-Message-ID: Message-ID: To: Al Viro X-Source-IP: 209.85.208.173 X-ServerName: mail-lj1-f173.google.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 ip4:198.145.29.98/31 ip4:72.55.140.81 include:_spf.google.com include:amazonses.com include:_spf.salesforce.com ~all X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10089 signatures=668682 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 phishscore=0 adultscore=0 clxscore=383 malwarescore=0 bulkscore=0 impostorscore=0 mlxlogscore=893 priorityscore=323 mlxscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108270113 domainage_hfrom=5365 X-Spam: Clean X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10089 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108270113 Cc: cluster-devel , Jan Kara , Andreas Gruenbacher , Linux Kernel Mailing List , Christoph Hellwig , linux-fsdevel , ocfs2-devel@oss.oracle.com Subject: Re: [Ocfs2-devel] [PATCH v7 05/19] iov_iter: Introduce fault_in_iov_iter_writeable X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10089 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108270113 X-Proofpoint-GUID: xeKlLyhDIzNXBAvBtMX9lSBx3kqUAjDp X-Proofpoint-ORIG-GUID: xeKlLyhDIzNXBAvBtMX9lSBx3kqUAjDp On Fri, Aug 27, 2021 at 12:23 PM Al Viro wrote: > > Could you show the cases where "partial copy, so it's OK" behaviour would > break anything? Absolutely. For example, i t would cause an infinite loop in restore_fpregs_from_user() if the "buf" argument is a situation where the first page is fine, but the next page is not. Why? Because __restore_fpregs_from_user() would take a fault, but then fault_in_pages_readable() (renamed) would succeed, so you'd just do that "retry" forever and ever. Probably there are a number of other places too. That was literally the *first* place I looked at. Seriously. The current semantics are "check the whole area". THOSE MUST NOT CHANGE. Linus _______________________________________________ Ocfs2-devel mailing list Ocfs2-devel@oss.oracle.com https://oss.oracle.com/mailman/listinfo/ocfs2-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Date: Fri, 27 Aug 2021 12:33:00 -0700 Subject: [Cluster-devel] [PATCH v7 05/19] iov_iter: Introduce fault_in_iov_iter_writeable In-Reply-To: References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-6-agruenba@redhat.com> Message-ID: List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Fri, Aug 27, 2021 at 12:23 PM Al Viro wrote: > > Could you show the cases where "partial copy, so it's OK" behaviour would > break anything? Absolutely. For example, i t would cause an infinite loop in restore_fpregs_from_user() if the "buf" argument is a situation where the first page is fine, but the next page is not. Why? Because __restore_fpregs_from_user() would take a fault, but then fault_in_pages_readable() (renamed) would succeed, so you'd just do that "retry" forever and ever. Probably there are a number of other places too. That was literally the *first* place I looked at. Seriously. The current semantics are "check the whole area". THOSE MUST NOT CHANGE. Linus