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.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,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 A2B47C43468 for ; Mon, 21 Sep 2020 16:29:27 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 2D0A82396D for ; Mon, 21 Sep 2020 16:29:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="AZrmHX7s" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2D0A82396D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=zeniv.linux.org.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=VQSMEl04KTRxAp2NoR9MEt/Z7uKUY3V23iv6BIA4XBI=; b=AZrmHX7sTDfAusuxXVLIEq1ZC HUlZfaaPzaNF3tl22MdfzekFYlxm8g+i/noB3D2RIbKwON3OMl4DbzctO+rGSULKTCcgOvg0U1bAh 6P5Who3HkYy+1rDZsZZ1Rn3K27ieiaL+GzQtW05eNauhSdG9JyKWY1oTfg/koiWxL2i2yffmrKsDp Y7M8cLODvjx0p4PRfFLkqu0onHAWy0OcHBMqjnD4Ld4v+5sM5EYPv/o157J20BTBZoIFHTDntgfsS gQjt2TYirSOyUBabmGysfzMdy+h4Tr1Pd6pAJCyqL+DkXPV3muEBil1voXu60maTZcclUKt4xDj11 7oRIpmBIg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKOfb-00072j-U7; Mon, 21 Sep 2020 16:28:03 +0000 Received: from [2002:c35c:fd02::1] (helo=ZenIV.linux.org.uk) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKOfZ-00072D-US for linux-arm-kernel@lists.infradead.org; Mon, 21 Sep 2020 16:28:02 +0000 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKOfR-003EDr-FT; Mon, 21 Sep 2020 16:27:53 +0000 Date: Mon, 21 Sep 2020 17:27:53 +0100 From: Al Viro To: David Laight Subject: Re: [PATCH 02/11] mm: call import_iovec() instead of rw_copy_check_uvector() in process_vm_rw() Message-ID: <20200921162753.GY3421308@ZenIV.linux.org.uk> References: <20200921143434.707844-1-hch@lst.de> <20200921143434.707844-3-hch@lst.de> <20200921150211.GS3421308@ZenIV.linux.org.uk> <20200921152937.GX3421308@ZenIV.linux.org.uk> <226e03bf941844eba4d64af31633c177@AcuMS.aculab.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <226e03bf941844eba4d64af31633c177@AcuMS.aculab.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200921_122802_182057_BB5A6584 X-CRM114-Status: GOOD ( 18.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-aio@kvack.org" , "linux-mips@vger.kernel.org" , David Howells , "linux-mm@kvack.org" , "keyrings@vger.kernel.org" , "sparclinux@vger.kernel.org" , Christoph Hellwig , "linux-arch@vger.kernel.org" , "linux-s390@vger.kernel.org" , "linux-scsi@vger.kernel.org" , Arnd Bergmann , "linux-block@vger.kernel.org" , "io-uring@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Jens Axboe , "linux-parisc@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-security-module@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , Andrew Morton , "linuxppc-dev@lists.ozlabs.org" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Sep 21, 2020 at 03:44:00PM +0000, David Laight wrote: > From: Al Viro > > Sent: 21 September 2020 16:30 > > > > On Mon, Sep 21, 2020 at 03:21:35PM +0000, David Laight wrote: > > > > > You really don't want to be looping through the array twice. > > > > Profiles, please. > > I did some profiling of send() v sendmsg() much earlier in the year. > I can't remember the exact details but the extra cost of sendmsg() > is far more than you might expect. > (I was timing sending fully built IPv4 UDP packets using a raw socket.) > > About half the difference does away if you change the > copy_from_user() to __copy_from_user() when reading the struct msghdr > and iov[] from userspace (user copy hardening is expensive). Wha...? So the difference is within 4 times the overhead of the hardening checks done for one call of copy_from_user()? > The rest is just code path, my gut feeling is that a lot of that > is in import_iovec(). > > Remember semdmsg() is likely to be called with an iov count of 1. ... which makes that loop unlikely to be noticable in the entire mess, whether you pass it once or twice. IOW, unless you can show profiles where that loop is sufficiently hot or if you can show the timings change from splitting it in two, I'll remain very sceptical about that assertion. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel