This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PING][PATCH v1.1] benchtests: Add new directive for benchmark initialization hook


Ping!

On Mon, May 19, 2014 at 04:47:15PM +0530, Siddhesh Poyarekar wrote:
> Sorry, I forgot to update this old patch before sending it.  Here's
> the correct version.
> 
> Siddhesh
> 
> 	* benchtests/README: Document 'init' directive.
> 	* benchtests/bench-skeleton.c (main) [BENCH_INIT]: Call
> 	BENCH_INIT.
> 	* scripts/bench.py (gen_source): Define BENCH_INIT macro.
> 	(parse_file): Recognize 'init' directive.
> 
> From 469da08fd32c5a38c0f8dcc985e0c2342bd729e3 Mon Sep 17 00:00:00 2001
> From: Siddhesh Poyarekar <siddhesh@redhat.com>
> Date: Sat, 22 Feb 2014 10:09:27 +0530
> Subject: [PATCH] benchtests: Add new directive for benchmark initialization
>  hook
> 
> Add a new 'init' directive that specifies the name of the function to
> call to do function-specific initialization.  This is useful for
> benchmarks that need to do a one-time initialization before the
> functions are executed.
> ---
>  benchtests/README           | 1 +
>  benchtests/bench-skeleton.c | 3 +++
>  benchtests/scripts/bench.py | 7 ++++++-
>  3 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/benchtests/README b/benchtests/README
> index 52a3cc2..999d268 100644
> --- a/benchtests/README
> +++ b/benchtests/README
> @@ -62,6 +62,7 @@ one to add `foo' to the bench tests:
>      and functions (specifically, this includes using "#include "source").
>      See pthread_once-inputs and pthreads_once-source.c for an example of how
>      to use this to benchmark a function that needs state across several calls.
> +  - init: Name of an initializer function to call to initialize the benchtest.
>    - name: See following section for instructions on how to use this directive.
>  
>    Lines beginning with a single hash '#' are treated as comments.  See
> diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c
> index 29d6bda..68a91dc 100644
> --- a/benchtests/bench-skeleton.c
> +++ b/benchtests/bench-skeleton.c
> @@ -62,6 +62,9 @@ main (int argc, char **argv)
>  
>    unsigned long iters, res;
>  
> +#ifdef BENCH_INIT
> +  BENCH_INIT ();
> +#endif
>    TIMING_INIT (res);
>  
>    iters = 1000 * res;
> diff --git a/benchtests/scripts/bench.py b/benchtests/scripts/bench.py
> index 492c764..eb5a141 100755
> --- a/benchtests/scripts/bench.py
> +++ b/benchtests/scripts/bench.py
> @@ -128,6 +128,10 @@ def gen_source(func, directives, all_vals):
>      else:
>          getret = ''
>  
> +    # Test initialization.
> +    if directives['init']:
> +        print('#define BENCH_INIT %s' % directives['init'])
> +
>      print(EPILOGUE % {'getret': getret, 'func': func})
>  
>  
> @@ -232,7 +236,8 @@ def parse_file(func):
>              'args': [],
>              'includes': [],
>              'include-sources': [],
> -            'ret': ''
> +            'ret': '',
> +            'init': ''
>      }
>  
>      try:
> -- 
> 1.9.0
> 


Attachment: pgp_wl_s3d0Fr.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]