From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-3.4 required=3.0 tests=AWL,BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 0B79820248 for ; Tue, 9 Apr 2019 05:26:00 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=HkTgt5PIWWkFQTIP wx3x3KNF47W0aowG/BBMgMQwHyj3Q5OVBoKMD6P4JmUInN7iFDVBpWn9M6fboZ3D lHlmNMRKXyJ8OQ0THYizP3xZb51LztSoPZWD7O3HaNTZyOWD+gCKuPPmUrCMgwxa 00O8jBpGw2pPJtiiDnqkQKV5AhY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=dFbLmTex3HeyP1t/KT4tLA MQJm4=; b=yk49dbA4o8L/IC4Y87rtB3cp+Z60gBOO7u9us8rIFTMVDGGTF4VPSw 9Y86yV4IXIE+pj0EBZpRi4h5ocZrdW9aD7x9J9co4c8frPIm2D3Vy7e4Dvusg9HR DNG/nwz8GLB/3fZVhi9mKutizzwo0koFdvfDxhGr7XLqZEeDifJOY= Received: (qmail 115530 invoked by alias); 9 Apr 2019 05:25:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 115520 invoked by uid 89); 9 Apr 2019 05:25:56 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: mail-qk1-f195.google.com Subject: Re: [PATCH] Add malloc micro benchmark To: Wilco Dijkstra , Carlos O'Donell , 'GNU C Library' Cc: nd , Florian Weimer References: <8ef46134-94fa-ffba-8f98-13a10a956e7b@redhat.com> From: Carlos O'Donell Message-ID: <9640810a-36ee-3ee4-c4d4-f262056ceb6b@redhat.com> Date: Tue, 9 Apr 2019 01:25:50 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 3/18/19 1:16 PM, Wilco Dijkstra wrote: > ping > > > Hi Carlos, > >> BUILDSTDERR: bench-malloc-simple.c: In function 'bench': >> BUILDSTDERR: bench-malloc-simple.c:89:17: error: variable 'res' set but not used [-Werror=unused-but-set-variable] >> BUILDSTDERR:    89 |   unsigned long res; >> BUILDSTDERR:       |                 ^~~ >> BUILDSTDERR: cc1: all warnings being treated as errors >> >> Affects aarch64, armv7hl, and s390x. >> >> I assume we need a "(void) res" like we have in bench-malloc-thread.c? >> >> I'm going to checkin a quick fix to Rawhide and report back if anything >> else breaks. > > Does that enable extra errors somehow? I can't reproduce it. > > Anyway TIMING_INIT is redundant for bench-malloc-*.c, so here's a > patch to just kill it: LGTM. Sorry for the delay. Reviewed-by: Carlos O'Donell > > Remove TIMING_INIT since it's only used in bench-skeleton.c if there > is no hp-timing support (which will become the default after [1]). > > [1] https://sourceware.org/ml/libc-alpha/2019-02/msg00468.html > > ChangeLog: > 2019-03-04  Wilco Dijkstra  > >         * benchtests/bench-malloc-simple.c: Remove TIMING_INIT. >         * benchtests/bench-malloc-thread.c: Likewise. >         * benchtests/bench-skeleton.c: Likewise. >         * benchtests/bench-strtod.c: Likewise. >         * benchtests/bench-timing.h: Likewise. > > -- > > diff --git a/benchtests/bench-malloc-simple.c b/benchtests/bench-malloc-simple.c > index 83203ff3187654a1710c9ef81016f854957b9d64..b8bb2cc116953c6691c17633d18c5661c7d9243e 100644 > --- a/benchtests/bench-malloc-simple.c > +++ b/benchtests/bench-malloc-simple.c > @@ -86,9 +86,6 @@ bench (unsigned long size) >  { >    size_t iters = NUM_ITERS; >    int **arr = (int**) malloc (MAX_ALLOCS * sizeof (void*)); > -  unsigned long res; > - > -  TIMING_INIT (res); OK. > >    for (int t = 0; t <= 3; t++) >      for (int i = 0; i < NUM_ALLOCS; i++) > diff --git a/benchtests/bench-malloc-thread.c b/benchtests/bench-malloc-thread.c > index bb4ba727a88059ecbe7305f5b8ad1693c1f1f266..52261425b0f1af32c17328ea5e0a5bb6f230df47 100644 > --- a/benchtests/bench-malloc-thread.c > +++ b/benchtests/bench-malloc-thread.c > @@ -225,7 +225,6 @@ main (int argc, char **argv) >  { >    timing_t cur; >    size_t iters = 0, num_threads = 1; > -  unsigned long res; OK. >    json_ctx_t json_ctx; >    double d_total_s, d_total_i; >    struct sigaction act; > @@ -261,10 +260,6 @@ main (int argc, char **argv) > >    json_attr_object_begin (&json_ctx, ""); > > -  TIMING_INIT (res); > - > -  (void) res; OK. > - >    memset (&act, 0, sizeof (act)); >    act.sa_handler = &alarm_handler; > > diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c > index 37625c4296882268f6260d99adbc7f0295164ffc..854151e5a82028e74fe3a966e82004572542f411 100644 > --- a/benchtests/bench-skeleton.c > +++ b/benchtests/bench-skeleton.c > @@ -48,14 +48,11 @@ main (int argc, char **argv) > >    memset (&runtime, 0, sizeof (runtime)); > > -  unsigned long iters, res; > +  unsigned long iters = 1000; OK. A fixed number of iterations will do. > >  #ifdef BENCH_INIT >    BENCH_INIT (); >  #endif > -  TIMING_INIT (res); > - > -  iters = 1000 * res; OK. > >    json_init (&json_ctx, 2, stdout); > > diff --git a/benchtests/bench-strtod.c b/benchtests/bench-strtod.c > index 4de0b9acb67eb925a80249322957ce8b3c08c8d6..d5b2503553ef74f33cace919ae9c62f79cd11c9c 100644 > --- a/benchtests/bench-strtod.c > +++ b/benchtests/bench-strtod.c > @@ -89,9 +89,6 @@ int >  do_bench (void) >  { >    const size_t iters = INNER_LOOP_ITERS; > -  timing_t res __attribute__ ((unused)); > - > -  TIMING_INIT (res); OK. > >    for (size_t i = 0; inputs[i] != NULL; ++i) >      { > diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h > index 41b7324527b9deed67b3479cb1308fbd291bc5ca..f9b19fcd29efb45ea02c375e37caba94c93956d1 100644 > --- a/benchtests/bench-timing.h > +++ b/benchtests/bench-timing.h > @@ -28,8 +28,6 @@ typedef hp_timing_t timing_t; > >  # define TIMING_TYPE "hp_timing" > > -# define TIMING_INIT(res) ({ (res) = 1; }) OK. > - >  # define TIMING_NOW(var) HP_TIMING_NOW (var) >  # define TIMING_DIFF(diff, start, end) HP_TIMING_DIFF ((diff), (start), (end)) >  # define TIMING_ACCUM(sum, diff) HP_TIMING_ACCUM_NT ((sum), (diff)) > @@ -41,15 +39,6 @@ typedef uint64_t timing_t; > >  # define TIMING_TYPE "clock_gettime" > > -/* Measure the resolution of the clock so we can scale the number of > -   benchmark iterations by this value.  */ > -# define TIMING_INIT(res) \ > -({                                                                           \ > -  struct timespec start;                                                     \ > -  clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start);                           \ > -  (res) = start.tv_nsec;                                             \ > -}) OK. > - >  # define TIMING_NOW(var) \ >  ({                                                                            \ >    struct timespec tv;                                                        \ > > -- Cheers, Carlos.