Received: by 10.213.65.68 with SMTP id h4csp607404imn; Tue, 13 Mar 2018 14:48:26 -0700 (PDT) X-Google-Smtp-Source: AG47ELu1+95/B8IRggFARuCZkDQzEFMnAiFaMGtO3oDE847DD/iXtTAFwFv0yvbuR/a4Nzz9rKx0 X-Received: by 10.99.174.5 with SMTP id q5mr1687158pgf.170.1520977706665; Tue, 13 Mar 2018 14:48:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520977706; cv=none; d=google.com; s=arc-20160816; b=OXzXtvyVbhLwvOBzK41FODiQrwezfNnZBIaIfjOVHC5VkHdljzWqmTMA5ihEfcpQYe kzmpLP+UlqZiLbEGtrVvTmcm4GF9HEpat59oBf1F0GsCKdO2VdxvQgojrvNqtTyGkbWu SFy9gxgo72xxIL8RyuIr9yxuAK+bLtkSynhgxFY9ZH/80vXQ90kKfF+9bYhfQ5hsaJ4y dSWhRGhVysnIhnnuVIgmDwCmL/NMdU9btsYdcCsropGGKF/sqjrFeD/Ydq0rH2T4b0Zv vPPoBQMN9mWnwBWIVfbAz1ob8/my1lZP0qiYNQu97P49+vbY7/w50goyPCy29fMvr0Kr QD1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:references:cc:to:from:subject :arc-authentication-results; bh=kZIa4h3OwJGGk9fo2y0OwGyDvMd4rgjgdO7iJ8t3WEs=; b=MuCHGLfOAWD8kWA70btnpxSOCuLe5jYxfPCFgm9gFLDOMw5VoIGNrQzvHHpVHe2m/o 912ijtlBIO0Po5buFPvj0s8SJjbL65OgX8snj9dXKG/b5xPgqtuAp7GkAqz4FnNXymax 1kIgTktLtkx7LnsLKfROIqtJVB2ghOfIsqnGm3mzXYvHMX9sX8FvG+B/JrBednV98Fuv srq/8ezcHNRvroHqO/8iGO8aSEuDwMwSrKk691jTxznFuqWcfQIsovTIfJ0sUf273v2b S+G07nlYScfEGY2YAu07hEemxBsENVcJ8p/+YMuCyKKVCtcT14GGiXIKtmHwyx/6rPhE +CSg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a26si856396pfj.267.2018.03.13.14.48.12; Tue, 13 Mar 2018 14:48:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752555AbeCMVq4 (ORCPT + 99 others); Tue, 13 Mar 2018 17:46:56 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49266 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751279AbeCMVqz (ORCPT ); Tue, 13 Mar 2018 17:46:55 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A9B618424C; Tue, 13 Mar 2018 21:46:54 +0000 (UTC) Received: from [10.40.204.30] (ovpn-204-30.brq.redhat.com [10.40.204.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 74D626352A; Tue, 13 Mar 2018 21:46:51 +0000 (UTC) Subject: Re: Timing performance regression 4.15 to 4.16-rc1 From: Zdenek Kabelac To: Al Viro Cc: LKML , Mike Snitzer , Mikulas Patocka , Alasdair G Kergon References: <31a4b0d7-2c9e-ce76-a486-48ed18b96cc6@redhat.com> <20180313040354.GW30522@ZenIV.linux.org.uk> <8d51dd0a-97a9-fca5-9d82-1cedae211d10@redhat.com> Organization: Red Hat Message-ID: <523d279e-1c87-1f99-913a-534f459db775@redhat.com> Date: Tue, 13 Mar 2018 22:46:50 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=iso-8859-2; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 13 Mar 2018 21:46:54 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 13 Mar 2018 21:46:54 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'zkabelac@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dne 13.3.2018 v 17:45 Zdenek Kabelac napsal(a): > Dne 13.3.2018 v 12:17 Zdenek Kabelac napsal(a): >> Dne 13.3.2018 v 05:03 Al Viro napsal(a): >>> On Sun, Mar 11, 2018 at 02:02:03PM +0100, Zdenek Kabelac wrote: >>>> Hi >>>> >>>> I've noticed quite some drop of performance (around 15% in some cases) where >>>> execution of lvm2 tests took longer time - and while tests itself should not >>>> really load CPU system? - the overall running time just got bigger. >>>> >>>> Running bisect game pointed clearly to this commit: >>>> >>>> --- >>>> >>>> commit 44c02a2c3dc55835e9f0d8ef73966406cd805001 >>>> Author: Al Viro >>>> Date:?? Thu Oct 5 12:59:44 2017 -0400 >>>> >>>> ???? dev_ioctl(): move copyin/copyout to callers >>>> >>>> >>>> --- >>>> >>>> clear revert of this commit on top of >>>> 3266b5bd97eaa72793df0b6e5a106c69ccc166c4 >>>> (recent? ~4.16-rc4)? restored timing of tests back. >>>> >>>> >>>> I'm not sure why - so at this moment this is just a patch causing 15% longer >>>> running times on lvm2 test suite. >>> >>> I find it very hard to believe, TBH.? It doesn't go anywhere near drivers/md; >>> could you profile the damn thing and see where does it spend that extra time? >>> >>> It really doesn't touch anything on non-sockets... >> >> >> Hi >> >> Well I'm 100% sure it's this patch causing slowdown of the test runtime >> (just reverting this case makes it faster). >> >> But even though I've already tried to create some much more simplified >> reproducer I'm still unclear what's behind it. >> >> lvm2 alone is using sockets via i.e. udev communication - so the possible >> reason could be that used slows down? 'new node' events processing in some way. >> >> So for now the most visible reproducer is to run test in lvm2 build tree >> in directory tests/:?? 'make check_local T=lvconvert-mirror-basic-0.sh' >> >> I do have 'perf record' grabs if the would help anything - but looking at >> them myself there are not some directly visible things. >> >> As said -? User+Sys timing of the running test reported by 'time' command >> remains the same - just 'real' time gets longer - which means it's waiting >> for something much longer then before? - lvm2 typically waits till udev >> finishes it's scanning. >> > > Hello > > Here is my update - after some time of investigation - it seems the core > trouble is actually hidden inside? test monitoring tool which is effectively > grabbing test output through? a PF_UNIX socket stream - there are no other > sockets. (and via add printk() used commands are 21519? & 21505? for > dev_ioctl() call). > > Also there is no influence caused by udev as since timing is same with disable > udev. > > So ATM I'm checking, why there is such a big change in this case in the test's > is run via internal application which is collecting logs compare with direct > execution. > So further evaluation revealed the key issue that 'runner' tool is using: socketpair( PF_UNIX, SOCK_STREAM, 0, fds ) to create 2 FDs for capturing output of executed program. If just this 'socketpair()' is replaced back to 'good old' pipe(fds) it immediately restores performance back. So remembering lvm history here the code has been originally actually using pipe() and many years back and it's been upgraded to use socketpair(). So with your current kernel patch it seems some latency slowed down this use-case in noticeable way (any new buffering ??). The streamed buffer during this particular test has around 400K and 5K lines (which is not that much for ~70 second output) So let me know if you need some more info ? Regards Zdenek