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 B233AC43468 for ; Mon, 21 Sep 2020 14:58:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 802CF20758 for ; Mon, 21 Sep 2020 14:58:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727683AbgIUO57 convert rfc822-to-8bit (ORCPT ); Mon, 21 Sep 2020 10:57:59 -0400 Received: from eu-smtp-delivery-151.mimecast.com ([185.58.86.151]:43290 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726973AbgIUO56 (ORCPT ); Mon, 21 Sep 2020 10:57:58 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-131-fTlCPAkmNqyVcSMjZfvb1A-1; Mon, 21 Sep 2020 15:57:54 +0100 X-MC-Unique: fTlCPAkmNqyVcSMjZfvb1A-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Mon, 21 Sep 2020 15:57:53 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Mon, 21 Sep 2020 15:57:53 +0100 From: David Laight To: 'Christoph Hellwig' CC: "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "io-uring@vger.kernel.org" , Jens Axboe , "David S. Miller" , Al Viro , linux-fsdevel Subject: RE: [PATCH 3/9 next] lib/iov_iter: Improved function for importing iovec[] from userpace. Thread-Topic: [PATCH 3/9 next] lib/iov_iter: Improved function for importing iovec[] from userpace. Thread-Index: AdaLbgrHxt5yVpCaR/OQiuIAS4DQuQEqpZKAAAOMgSA= Date: Mon, 21 Sep 2020 14:57:53 +0000 Message-ID: <715ff68740fe4f1eb2c7713584450f1e@AcuMS.aculab.com> References: <20200921141051.GC24515@infradead.org> In-Reply-To: <20200921141051.GC24515@infradead.org> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org From: Christoph Hellwig > Sent: 21 September 2020 15:11 > > On Tue, Sep 15, 2020 at 02:55:17PM +0000, David Laight wrote: > > > > import_iovec() has a 'pointer by reference' parameter to pass in the > > (on-stack) iov[] cache and return the address of a larger copy that > > the caller must free. > > This is non-intuitive, faffy to setup, and not that efficient. > > Instead just pass in the address of the cache and return the address > > to free (on success) or PTR_ERR() (on error). > > To me it seems pretty sensible, and in fact the conversions to your > new API seem to add more lines than they remove. They probably add a line because the two variables get defined on separate lines. The problem is the inefficiency of passing the addresses by 'double reference'. Although your suggestion of putting the 'address to free' in the same structure as the cache does resolve that. It also gets rid of all the PTR_ERR() faffing. Still probably best to return 0 on success. Plenty of code was converting the +ve to 0. I might to a v2 on top of your compat iovec changes - once they hit Linus's tree. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)