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 43C47C432BE for ; Fri, 27 Aug 2021 19:18:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2C72A60FE6 for ; Fri, 27 Aug 2021 19:18:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231490AbhH0TTg (ORCPT ); Fri, 27 Aug 2021 15:19:36 -0400 Received: from zeniv-ca.linux.org.uk ([142.44.231.140]:42758 "EHLO zeniv-ca.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231262AbhH0TTT (ORCPT ); Fri, 27 Aug 2021 15:19:19 -0400 Received: from viro by zeniv-ca.linux.org.uk with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1mJhKn-00GZbg-UX; Fri, 27 Aug 2021 19:16:13 +0000 Date: Fri, 27 Aug 2021 19:16:13 +0000 From: Al Viro To: Linus Torvalds 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 Subject: Re: [PATCH v7 04/19] iov_iter: Turn iov_iter_fault_in_readable into fault_in_iov_iter_readable Message-ID: References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-5-agruenba@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: Al Viro Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 27, 2021 at 11:57:19AM -0700, Linus Torvalds wrote: > On Fri, Aug 27, 2021 at 11:53 AM Al Viro wrote: > > > > I really disagree with these calling conventions. "Number not faulted in" > > is bloody useless > > It's what we already have for copy_to/from_user(), so it's actually > consistent with that. After copy_to/copy_from you've got the data copied and it's not going anywhere. After fault-in you still have to copy, and it still can give you less data than fault-in had succeeded for. So you must handle short copies separately, no matter how much you've got from fault-in. > And it avoids changing all the existing tests where people really > cared only about the "everything ok" case. The thing is, the checks tend to be wrong. We can't rely upon the full fault-in to expect the full copy-in/copy-out, so the checks downstream are impossible to avoid anyway. And fault-in failure is always a slow path, so we are not saving time here. And for the memory poisoining we end up aborting a copy potentially a lot earlier than we should. > Andreas' first patch did that changed version, and was ugly as hell. > > But if you have a version that avoids the ugliness... I'll need to dig my notes out... 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 EACDFC4320E for ; Fri, 27 Aug 2021 19:18:43 +0000 (UTC) Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.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 78D6960F58 for ; Fri, 27 Aug 2021 19:18:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 78D6960F58 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=zeniv.linux.org.uk Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 17RGXsKm015220; Fri, 27 Aug 2021 19:18:42 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ap4ekvfwg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 27 Aug 2021 19:18:42 +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 17RJBfNn053446; Fri, 27 Aug 2021 19:18:41 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3020.oracle.com with ESMTP id 3akb92nc4d-1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Fri, 27 Aug 2021 19:18:41 +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 1mJhNA-0002sS-8x; Fri, 27 Aug 2021 12:18:40 -0700 Received: from userp3030.oracle.com ([156.151.31.80]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1mJhN4-0002ry-8x for ocfs2-devel@oss.oracle.com; Fri, 27 Aug 2021 12:18:34 -0700 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17RJBpiA105036 for ; Fri, 27 Aug 2021 19:18:34 GMT Received: from mx0a-00069f01.pphosted.com (mx0a-00069f01.pphosted.com [205.220.165.26]) by userp3030.oracle.com with ESMTP id 3ajpm57dej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 27 Aug 2021 19:18:33 +0000 Received: from pps.filterd (m0246571.ppops.net [127.0.0.1]) by mx0b-00069f01.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 17RI6H2b022573 for ; Fri, 27 Aug 2021 19:18:32 GMT Received: from zeniv-ca.linux.org.uk (zeniv-ca.linux.org.uk [142.44.231.140]) by mx0b-00069f01.pphosted.com with ESMTP id 3aq2ymj3k4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 27 Aug 2021 19:18:32 +0000 Received: from viro by zeniv-ca.linux.org.uk with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1mJhKn-00GZbg-UX; Fri, 27 Aug 2021 19:16:13 +0000 Date: Fri, 27 Aug 2021 19:16:13 +0000 From: Al Viro To: Linus Torvalds Message-ID: References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-5-agruenba@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Source-IP: 142.44.231.140 X-ServerName: zeniv-ca.linux.org.uk X-Proofpoint-SPF-Result: None X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10089 signatures=668682 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 mlxscore=0 lowpriorityscore=0 priorityscore=221 mlxlogscore=999 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 clxscore=285 impostorscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108270112 domainage_hfrom=9157 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 spamscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108270112 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 04/19] iov_iter: Turn iov_iter_fault_in_readable into fault_in_iov_iter_readable 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-2108270112 X-Proofpoint-GUID: CFOP_bDA_2N5BxVeh2f-NYcilw3lHqIX X-Proofpoint-ORIG-GUID: CFOP_bDA_2N5BxVeh2f-NYcilw3lHqIX On Fri, Aug 27, 2021 at 11:57:19AM -0700, Linus Torvalds wrote: > On Fri, Aug 27, 2021 at 11:53 AM Al Viro wrote: > > > > I really disagree with these calling conventions. "Number not faulted in" > > is bloody useless > > It's what we already have for copy_to/from_user(), so it's actually > consistent with that. After copy_to/copy_from you've got the data copied and it's not going anywhere. After fault-in you still have to copy, and it still can give you less data than fault-in had succeeded for. So you must handle short copies separately, no matter how much you've got from fault-in. > And it avoids changing all the existing tests where people really > cared only about the "everything ok" case. The thing is, the checks tend to be wrong. We can't rely upon the full fault-in to expect the full copy-in/copy-out, so the checks downstream are impossible to avoid anyway. And fault-in failure is always a slow path, so we are not saving time here. And for the memory poisoining we end up aborting a copy potentially a lot earlier than we should. > Andreas' first patch did that changed version, and was ugly as hell. > > But if you have a version that avoids the ugliness... I'll need to dig my notes out... _______________________________________________ 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: Al Viro Date: Fri, 27 Aug 2021 19:16:13 +0000 Subject: [Cluster-devel] [PATCH v7 04/19] iov_iter: Turn iov_iter_fault_in_readable into fault_in_iov_iter_readable In-Reply-To: References: <20210827164926.1726765-1-agruenba@redhat.com> <20210827164926.1726765-5-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 11:57:19AM -0700, Linus Torvalds wrote: > On Fri, Aug 27, 2021 at 11:53 AM Al Viro wrote: > > > > I really disagree with these calling conventions. "Number not faulted in" > > is bloody useless > > It's what we already have for copy_to/from_user(), so it's actually > consistent with that. After copy_to/copy_from you've got the data copied and it's not going anywhere. After fault-in you still have to copy, and it still can give you less data than fault-in had succeeded for. So you must handle short copies separately, no matter how much you've got from fault-in. > And it avoids changing all the existing tests where people really > cared only about the "everything ok" case. The thing is, the checks tend to be wrong. We can't rely upon the full fault-in to expect the full copy-in/copy-out, so the checks downstream are impossible to avoid anyway. And fault-in failure is always a slow path, so we are not saving time here. And for the memory poisoining we end up aborting a copy potentially a lot earlier than we should. > Andreas' first patch did that changed version, and was ugly as hell. > > But if you have a version that avoids the ugliness... I'll need to dig my notes out...