From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2200 invoked by alias); 3 Sep 2013 17:37:17 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 2191 invoked by uid 89); 3 Sep 2013 17:37:17 -0000 Received: from popelka.ms.mff.cuni.cz (HELO popelka.ms.mff.cuni.cz) (195.113.20.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Sep 2013 17:37:17 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,SPF_NEUTRAL autolearn=no version=3.3.2 X-HELO: popelka.ms.mff.cuni.cz Received: from domone.kolej.mff.cuni.cz (popelka.ms.mff.cuni.cz [195.113.20.131]) by popelka.ms.mff.cuni.cz (Postfix) with ESMTPS id E99C9580CA; Tue, 3 Sep 2013 19:37:10 +0200 (CEST) Received: by domone.kolej.mff.cuni.cz (Postfix, from userid 1000) id D38FF5F822; Tue, 3 Sep 2013 19:37:10 +0200 (CEST) Date: Tue, 03 Sep 2013 17:37:00 -0000 From: =?utf-8?B?T25kxZllaiBCw61sa2E=?= To: Carlos O'Donell Cc: Will Newton , "libc-ports@sourceware.org" , Patch Tracking , Siddhesh Poyarekar Subject: Re: [PATCH] sysdeps/arm/armv7/multiarch/memcpy_impl.S: Improve performance. Message-ID: <20130903173710.GA2028@domone.kolej.mff.cuni.cz> References: <520894D5.7060207@linaro.org> <5220D30B.9080306@redhat.com> <5220F1F0.80501@redhat.com> <52260BD0.6090805@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <52260BD0.6090805@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-IsSubscribed: yes X-SW-Source: 2013-09/txt/msg00021.txt.bz2 On Tue, Sep 03, 2013 at 12:18:24PM -0400, Carlos O'Donell wrote: > On 09/02/2013 09:58 AM, Will Newton wrote: > >> If it's not obvious how is someone supposed to review this patch? :-) > > > > With difficulty. ;-) > > Thank you for acknowledging that. > > > Joseph has raised some good points about the comments and I'll go back > > through the code and make sure everything is correct in that regard. > > The change was actually made to the copy of the code in cortex-strings > > some time ago but I delayed pushing the patch due to the 2.18 release > > so I have to refresh my memory somewhat. > > > > Ideally we would have an agreed upon benchmark with which everyone > > could analyse the performance of the code on their systems, however > > that does not seem to exist as far as I can tell. > > We have one, it's the glibc microbenchmark, and we want to expand it, > otherwise when ACME comes with their patch for ARM and breaks performance > for targets that Linaro cares about I have no way to reject the patch > objectively :-) > Carlos, you are asking for impossible. When you publish benchmark people will try to maximize benchmark number. After certain point this becomes possible only by employing shady accounting: Move part of time to place wehre it will not be measured by benchmark (for example by having function that is 4kb large, on benchmarks it will fit into instruction cache but that does not happen in reality). Taking care of common factors that can cause that is about ten times more complex than whole system benchmarking, analysis will be quite difficult as you will get twenty numbers and you will need to decide which ones could made real impact and which wont. > > The key advantage of the cortex-strings framework is that it allows > > graphing the results of benchmarks. Often changes to string function > > performance can only really be analysed graphically as otherwise you > > end up with a huge soup of numbers, some going up, some going down and > > it is very hard to separate the signal from the noise. > > I disagree strongly. You *must* come up with a measurable answer and > looking at a graph is never a solution I'm going to accept. > You can have that opinion. Looking at performance graphs is most powerful technique how to understand performance. I got most of my improvements from analyzing these. > You need to statistically analyze the numbers, assign weights to ranges, > and come up with some kind of number that evaluates the results based > on *some* formula. That is the only way we are going to keep moving > performance forward (against some kind of criteria). > These accurate assigning weigths is best done by taking program running it and measuring time. Without taking this into account weigths will not tell much, as you will likely just optimize cold code at expense of hot code. > > The glibc benchmarks also have some other weaknesses that should > > really be addressed, hopefully I'll have some time to write patches > > for some of this work. > > Thank you very much. > > Cheers, > Carlos.