model-checker-benchmarks.git
5 years agofix commit that mistakenly happened master
bdemsky [Thu, 17 Dec 2015 09:17:51 +0000 (01:17 -0800)]
fix commit that mistakenly happened

5 years agofix compile errors on OS X
bdemsky [Thu, 17 Dec 2015 08:43:12 +0000 (00:43 -0800)]
fix compile errors on OS X

6 years agoraw elimination-backoff code from paper
Patrick Lam [Tue, 30 Jun 2015 01:22:44 +0000 (21:22 -0400)]
raw elimination-backoff code from paper

6 years agochanges
Peizhao Ou [Sat, 21 Mar 2015 12:35:18 +0000 (05:35 -0700)]
changes

6 years agoadd concurrent hashmap
Peizhao Ou [Sat, 21 Mar 2015 12:28:50 +0000 (05:28 -0700)]
add concurrent hashmap

7 years agoDescription of benchmarks
Patrick Lam [Fri, 31 Oct 2014 04:50:33 +0000 (00:50 -0400)]
Description of benchmarks

7 years agomake warnings go away
bdemsky [Wed, 10 Sep 2014 21:32:11 +0000 (14:32 -0700)]
make warnings go away

7 years agoclean up
Peizhao Ou [Wed, 10 Sep 2014 16:00:33 +0000 (09:00 -0700)]
clean up

7 years agoadd treiber stack
Peizhao Ou [Wed, 3 Sep 2014 22:17:59 +0000 (15:17 -0700)]
add treiber stack

7 years agosave fixed ms-queue
Peizhao Ou [Wed, 3 Sep 2014 21:09:29 +0000 (14:09 -0700)]
save fixed ms-queue

7 years agoadd cliff click hashtable
Peizhao Ou [Fri, 8 Aug 2014 01:18:20 +0000 (18:18 -0700)]
add cliff click hashtable

7 years agoadd result file
Peizhao Ou [Thu, 7 Aug 2014 18:42:33 +0000 (11:42 -0700)]
add result file

7 years agoadd seqlock
Peizhao Ou [Thu, 7 Aug 2014 01:39:41 +0000 (18:39 -0700)]
add seqlock

8 years agorun.sh: sync up with model-checker improvements
Brian Norris [Wed, 4 Sep 2013 02:23:45 +0000 (19:23 -0700)]
run.sh: sync up with model-checker improvements

8 years agoremove unused benchmarks
Brian Norris [Wed, 14 Aug 2013 01:23:29 +0000 (18:23 -0700)]
remove unused benchmarks

These benchmakrs are hard to support, and at least one of them isn't
even supported by my g++ draft C++0x compiler (it tries to use structs
with bitfields in an atomic<> template).

8 years agorun.sh: set Mac OSX DYLD_LIBRARY_PATH
Brian Norris [Tue, 13 Aug 2013 22:33:36 +0000 (15:33 -0700)]
run.sh: set Mac OSX DYLD_LIBRARY_PATH

DYLD_LIBRARY_PATH is the Mac OSX equivalent of Unix LD_LIBRARY_PATH.

8 years agobench.sh: only print git information when we're in git oopsla2013 oopsla2013-final
Brian Norris [Sat, 1 Jun 2013 01:14:31 +0000 (18:14 -0700)]
bench.sh: only print git information when we're in git

8 years agoMakefiles: use appropriate preprocessor vs. compiler flags
Brian Norris [Tue, 28 May 2013 22:09:44 +0000 (15:09 -0700)]
Makefiles: use appropriate preprocessor vs. compiler flags

We should differentiate preprocessor vs. C++ compiler vs. C compiler
flags, according to the CPPFLAGS, CXXFLAGS, and CFLAGS conventions. That
way we can, for instance, easily add the appropriate --std=XXX flags
necessary for compiling with a C++11 (or C++0x) or C11 (or C1x)
compliant compiler.

8 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks
Brian Norris [Tue, 28 May 2013 17:57:39 +0000 (10:57 -0700)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks

8 years agochase-lev-dequeue: fix compiler warning
Brian Norris [Tue, 28 May 2013 17:47:32 +0000 (10:47 -0700)]
chase-lev-dequeue: fix compiler warning

Fix this warning, found when compiling with GCC's C1x support:

  main.c: In function ‘task’:
  main.c:17:2: warning: implicit declaration of function ‘steal’ [-Wimplicit-function-declaration]

8 years agoMakefile: compile the chase-leve deque bugfix
Brian Norris [Wed, 8 May 2013 07:06:21 +0000 (00:06 -0700)]
Makefile: compile the chase-leve deque bugfix

8 years agobugfix for chase lev
Brian Demsky [Wed, 8 May 2013 01:28:31 +0000 (18:28 -0700)]
bugfix for chase lev

8 years agobench.sh: don't automatically log to file
Brian Norris [Wed, 20 Mar 2013 22:57:18 +0000 (15:57 -0700)]
bench.sh: don't automatically log to file

Just print to STDOUT, and the user can manually pipe to a file if they
want.

8 years agobench.sh: rearrange order again
Brian Norris [Mon, 18 Mar 2013 19:08:31 +0000 (12:08 -0700)]
bench.sh: rearrange order again

8 years agobench.sh: run dekker-fences
Brian Norris [Mon, 18 Mar 2013 18:09:22 +0000 (11:09 -0700)]
bench.sh: run dekker-fences

8 years agobench.sh: fixup Brian D.'s script change
Brian Norris [Fri, 15 Mar 2013 23:39:34 +0000 (16:39 -0700)]
bench.sh: fixup Brian D.'s script change

Remove some duplicates; probably just a bad merge.

8 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks
Brian Demsky [Fri, 15 Mar 2013 23:35:51 +0000 (16:35 -0700)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks

Conflicts:
bench.sh

8 years agomy changes to benchmark shell
Brian Demsky [Fri, 15 Mar 2013 23:34:35 +0000 (16:34 -0700)]
my changes to benchmark shell

8 years agobench.sh: rewrite benchmark list to match paper
Brian Norris [Fri, 15 Mar 2013 18:29:53 +0000 (11:29 -0700)]
bench.sh: rewrite benchmark list to match paper

Brian D. changed the benchmarks we run as well as the order. Let's
encode that in this script, so we can repeat the benchmarks
consistently.

8 years agompmc-queue: add to .gitignore
Brian Norris [Fri, 15 Mar 2013 18:25:49 +0000 (11:25 -0700)]
mpmc-queue: add to .gitignore

8 years agooptimizations to mpmc-queue yield placement
Brian Demsky [Thu, 14 Mar 2013 07:24:25 +0000 (00:24 -0700)]
optimizations to mpmc-queue yield placement
simpler test case for concurrent readers/writers of mpmc-queue

8 years agoFix all benchmarks to use yield
Brian Demsky [Thu, 14 Mar 2013 07:10:19 +0000 (00:10 -0700)]
Fix all benchmarks to use yield

All benchmarks now call thrd_yield when appropriate so that they terminate with the -y option.

8 years agodeque: add .gitignore
Brian Norris [Sat, 9 Mar 2013 00:18:19 +0000 (16:18 -0800)]
deque: add .gitignore

8 years agoms-queue: add extra POISON_IDX assertion
Brian Norris [Sat, 9 Mar 2013 00:01:02 +0000 (16:01 -0800)]
ms-queue: add extra POISON_IDX assertion

8 years agoms-queue: finally, the correct (?) memory orderings
Brian Norris [Fri, 8 Mar 2013 23:52:26 +0000 (15:52 -0800)]
ms-queue: finally, the correct (?) memory orderings

With much discussion over the intent of the algorithm and the accuracy
of these orderings, we have an accurate representation of the M&S Queue.

8 years agoms-queue: fixup initialization and free lists
Brian Norris [Fri, 8 Mar 2013 23:36:20 +0000 (15:36 -0800)]
ms-queue: fixup initialization and free lists

There are a few things we fix:

1) We shouldn't initialize node[0].next, since node[0] is the 'NULL'
pointer and should never be accessed.

2) The per-thread free list is too restrictive. Now, we generate a list
of free nodes for each thread that can contain up to 4 node indexes.
We only initialize this list with 2 nodes each (so each thread can
expand its free list, if needed). There is some minimal assertion
framework and race detection performed on these lists, just in case.

3) We only initialize those nodes that are placed in the free list.
Accesses to other nodes' 'next' pointer should trigger an uninitialized
loads assertion.

8 years agoms-queue: don't initialize node 0
Brian Norris [Fri, 8 Mar 2013 23:07:50 +0000 (15:07 -0800)]
ms-queue: don't initialize node 0

Node zero *should* be unused, since "0" is the NULL pointer index.
Removing this init will help catch bugs.

8 years agoms-queue: we should never dequeue 0
Brian Norris [Fri, 8 Mar 2013 23:06:06 +0000 (15:06 -0800)]
ms-queue: we should never dequeue 0

The test driver is written so that we should never dequeue 0.

8 years agoms-queue: revert Brian D. changes
Brian Norris [Fri, 8 Mar 2013 22:47:27 +0000 (14:47 -0800)]
ms-queue: revert Brian D. changes

On second (or third or fourth) thought, these changes were ill-advised.
We will make a different set of tweaks shortly.

This reverts commits 647601d3f341bb2a2a79534b3d044c039695839d and
fad3891f3158a4285984bb60415c1e4ebc2b767b.

8 years agowow... i think this version is correct...
Brian Demsky [Fri, 8 Mar 2013 08:38:47 +0000 (00:38 -0800)]
wow...  i think this version is correct...

8 years agomy changes
Brian Demsky [Fri, 8 Mar 2013 07:54:06 +0000 (23:54 -0800)]
my changes

8 years agoms-queue: relax the second load of head/tail
Brian Norris [Fri, 8 Mar 2013 02:09:18 +0000 (18:09 -0800)]
ms-queue: relax the second load of head/tail

8 years agoms-queue: strip down test driver
Brian Norris [Fri, 8 Mar 2013 01:56:23 +0000 (17:56 -0800)]
ms-queue: strip down test driver

+ a few assertions

8 years agoms-queue: relax the queue loads/stores/CAS
Brian Norris [Fri, 8 Mar 2013 01:55:59 +0000 (17:55 -0800)]
ms-queue: relax the queue loads/stores/CAS

8 years agoMakefile: build ms-queue
Brian Norris [Fri, 8 Mar 2013 00:42:10 +0000 (16:42 -0800)]
Makefile: build ms-queue

8 years agodeque: re-insert deleted MODEL_ASSERT()
Brian Norris [Thu, 7 Mar 2013 03:44:09 +0000 (19:44 -0800)]
deque: re-insert deleted MODEL_ASSERT()

8 years agodeque: #include's
Brian Norris [Thu, 7 Mar 2013 03:43:08 +0000 (19:43 -0800)]
deque: #include's

8 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks
Brian Norris [Thu, 7 Mar 2013 03:35:26 +0000 (19:35 -0800)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks

8 years agoms-queue: begin relaxing
Brian Norris [Thu, 7 Mar 2013 03:32:05 +0000 (19:32 -0800)]
ms-queue: begin relaxing

Not functioning yet.

8 years agodo merge...push right code
Brian Demsky [Thu, 7 Mar 2013 03:33:14 +0000 (19:33 -0800)]
do merge...push right code
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker-benchmarks

Conflicts:
chase-lev-deque/main.c

8 years agoms-queue: add initialization
Brian Norris [Thu, 7 Mar 2013 03:31:31 +0000 (19:31 -0800)]
ms-queue: add initialization

8 years agodeque: fix bugs in assertion code and move up 3 variables...
Brian Demsky [Thu, 7 Mar 2013 03:13:19 +0000 (19:13 -0800)]
deque: fix bugs in assertion code and move up 3 variables...

8 years agodeque: add MODEL_ASSERT(), fixup #include's
Brian Norris [Thu, 7 Mar 2013 03:10:36 +0000 (19:10 -0800)]
deque: add MODEL_ASSERT(), fixup #include's

8 years agodeque: wrong bug fix before...now the correct one
Brian Demsky [Thu, 7 Mar 2013 03:06:26 +0000 (19:06 -0800)]
deque: wrong bug fix before...now the correct one

8 years agodeque: bug fix...method could return empty
Brian Demsky [Thu, 7 Mar 2013 03:03:53 +0000 (19:03 -0800)]
deque: bug fix...method could return empty

8 years agodeque: add test driver, add print messages for now for resize method and if we pull...
Brian Demsky [Thu, 7 Mar 2013 02:58:10 +0000 (18:58 -0800)]
deque: add test driver, add print messages for now for resize method and if we pull the wrong values

test case exposes model checker bugs :(

8 years agofix bug
Brian Demsky [Thu, 7 Mar 2013 01:55:09 +0000 (17:55 -0800)]
fix bug

8 years agoms-queue: relax the initializations
Brian Norris [Wed, 6 Mar 2013 20:14:10 +0000 (12:14 -0800)]
ms-queue: relax the initializations

8 years agoadd make file, header, and extra code to deque
Brian Demsky [Wed, 6 Mar 2013 20:02:48 +0000 (12:02 -0800)]
add make file, header, and extra code to deque

8 years agoms-queue: fixups, add simple race detection
Brian Norris [Wed, 6 Mar 2013 03:08:32 +0000 (19:08 -0800)]
ms-queue: fixups, add simple race detection

8 years agoms-queue: bugfix - get_ptr() and get_count() were switched
Brian Norris [Wed, 6 Mar 2013 02:17:49 +0000 (18:17 -0800)]
ms-queue: bugfix - get_ptr() and get_count() were switched

I ported the implementation wrong, so that we were extracting bits from
the wrong field.

8 years agoms-queue: cleanups
Brian Norris [Wed, 6 Mar 2013 02:17:25 +0000 (18:17 -0800)]
ms-queue: cleanups

8 years agoms-queue: remove more externs and unintended shared data
Brian Norris [Wed, 6 Mar 2013 01:37:28 +0000 (17:37 -0800)]
ms-queue: remove more externs and unintended shared data

8 years agoms-queue: more cleanup
Brian Norris [Wed, 6 Mar 2013 00:43:14 +0000 (16:43 -0800)]
ms-queue: more cleanup

8 years agoms-queue: cleanups, convert to C11 atomics
Brian Norris [Wed, 6 Mar 2013 00:29:51 +0000 (16:29 -0800)]
ms-queue: cleanups, convert to C11 atomics

This converts the "pointer" to a 64-bit type (unsigned long long, or
'pointer') divided into two 32-bit halves (ptr and count), instead of
using a union of a struct and an 'unsigned long'.

All atomics are seq_cst for now. Once the code all looks a little
better, I'll relax these to reasonable memory orderings.

8 years agomcs-queue -> ms-queue
Brian Norris [Tue, 5 Mar 2013 18:10:53 +0000 (10:10 -0800)]
mcs-queue -> ms-queue

This queue is by Michael and Scott; hence, "M&S".

8 years agomcs-queue: a few changes
Brian Norris [Tue, 5 Mar 2013 18:10:22 +0000 (10:10 -0800)]
mcs-queue: a few changes

8 years agomcs-queue: add Makefile
Brian Norris [Tue, 5 Mar 2013 03:39:39 +0000 (19:39 -0800)]
mcs-queue: add Makefile

8 years agomcs-queue: modifications for compiling
Brian Norris [Tue, 5 Mar 2013 03:38:36 +0000 (19:38 -0800)]
mcs-queue: modifications for compiling

Remove backoff, shmem, fork, etc.

Moving closer to something that can compile.

8 years agomsc-queue: indentation, etc.
Brian Norris [Tue, 5 Mar 2013 02:57:12 +0000 (18:57 -0800)]
msc-queue: indentation, etc.

8 years agomcs-queue: initial checkin
Brian Norris [Tue, 5 Mar 2013 02:52:17 +0000 (18:52 -0800)]
mcs-queue: initial checkin

The "new" queue (i.e., "MCS Queue") code directly from:

  ftp://ftp.cs.rochester.edu/pub/packages/sched_conscious_synch/concurrent_queues/concurrent_queues.tar.gz

Except for the MIPS assembly implementation files and Makefile.

From README:

The compressed tar file in this directory conatins the C code for
the algorithms implemented for the paper

%A Maged M. Michael
%A Michael L. Scott
%T Simple, Fast, and Practical Non-Blocking and Blocking
Concurrent Queue Algorithms
%J PROC of the Fifteenth PODC
%C Philadelphia, PA
%D May 1996
%X 23-26 May 1996
%K tr600
%O Earlier version available as
TR 600,
URCSD,
December 1995

8 years agodeque: use atomic_uintptr_t
Brian Norris [Tue, 5 Mar 2013 01:56:25 +0000 (17:56 -0800)]
deque: use atomic_uintptr_t

'Atomic(Array *)' seems to be a pseudocode type. Just use
atomic_uintptr_t and allow the warnings for now (we could alternatively
use a cast every time).

8 years agodeque: improve compile-ability
Brian Norris [Tue, 5 Mar 2013 01:23:22 +0000 (17:23 -0800)]
deque: improve compile-ability

Add appropriate C headers.
Re-introduce atomic_* and memory_order_* prefixes.

8 years agodeque: add "proven correct" work-stealing Chase-Lev deque
Brian Norris [Tue, 5 Mar 2013 01:00:52 +0000 (17:00 -0800)]
deque: add "proven correct" work-stealing Chase-Lev deque

From the PPoPP 2013 paper "Correct and efficient work-stealing for weak
memory models"

By:

  Nhat Minh Lê
  Antoniu Pop
  Albert Cohen
  Francesco Zappa Nardelli

Citation URL:

  http://dl.acm.org/citation.cfm?id=2442524

8 years agobench.sh: add dekker-fences to benchmark runs
Brian Norris [Tue, 5 Mar 2013 00:57:11 +0000 (16:57 -0800)]
bench.sh: add dekker-fences to benchmark runs

8 years agobench.sh: log more information
Brian Norris [Thu, 28 Feb 2013 18:47:22 +0000 (10:47 -0800)]
bench.sh: log more information

We want the whole timing information and git-log info in our log files.

8 years agobench.sh: don't run tests twice
Brian Norris [Thu, 28 Feb 2013 18:32:18 +0000 (10:32 -0800)]
bench.sh: don't run tests twice

Now that we don't print so much garbage by default, we don't need to run
our tests twice (once with log and once without).

8 years agobench.sh: don't 'grep' output
Brian Norris [Tue, 11 Dec 2012 08:44:08 +0000 (00:44 -0800)]
bench.sh: don't 'grep' output

Model-checker output is concise now, so don't trim it.

8 years agorun.sh: sync up run script with model-checker
Brian Norris [Thu, 6 Dec 2012 23:03:21 +0000 (15:03 -0800)]
run.sh: sync up run script with model-checker

I improved the model-checker.git run script, so paste over the changes.

8 years agoMakefile: build dekker-fences automatically
Brian Norris [Wed, 5 Dec 2012 00:54:48 +0000 (16:54 -0800)]
Makefile: build dekker-fences automatically

8 years agodekker-fences: add Dekker's critical section algorithm
Brian Norris [Wed, 5 Dec 2012 00:54:04 +0000 (16:54 -0800)]
dekker-fences: add Dekker's critical section algorithm

Now that we support fences, add a test benchmark that uses fences. This
one just uses seq-cst fences.

Downloaded from:

   http://www.justsoftwaresolutions.co.uk/threading/

Modified to avoid static construction. i.e., change:
  std::atomic<int> turn(0);
to
  std::atomic<int> turn;
  ...
  turn = 0;
And added user_main() method to launch the two threads.

9 years agobench.sh: add spsc-bugfix to benchmark runs pldi2013
Brian Norris [Wed, 14 Nov 2012 03:43:07 +0000 (19:43 -0800)]
bench.sh: add spsc-bugfix to benchmark runs

9 years agoMakefile: build spsc-bugfix by default
Brian Norris [Wed, 14 Nov 2012 02:43:45 +0000 (18:43 -0800)]
Makefile: build spsc-bugfix by default

9 years agospsc-bugfix: fix deadlocked signalling bug
Brian Norris [Wed, 14 Nov 2012 02:39:00 +0000 (18:39 -0800)]
spsc-bugfix: fix deadlocked signalling bug

9 years agospsc-bugfree: make Relacy run exhaustive, fair scheduler
Brian Norris [Wed, 14 Nov 2012 02:38:33 +0000 (18:38 -0800)]
spsc-bugfree: make Relacy run exhaustive, fair scheduler

9 years agospsc-bugfix: duplicate the (buggy) spsc-queue
Brian Norris [Wed, 14 Nov 2012 01:30:30 +0000 (17:30 -0800)]
spsc-bugfix: duplicate the (buggy) spsc-queue

Preparing to fix the deadlock bug.

9 years agounrelacy: instrument relacy-marked normal loads/stores
Brian Norris [Tue, 13 Nov 2012 00:48:30 +0000 (16:48 -0800)]
unrelacy: instrument relacy-marked normal loads/stores

9 years agobench: reconfigure default tests
Brian Norris [Thu, 8 Nov 2012 23:26:02 +0000 (15:26 -0800)]
bench: reconfigure default tests

Now, run the "-noinit" tests for mpmc-queue (2R2W and 1R2W). Also,
switch to using '-f 10 -m 2 -e 1' model-checking parameters.

9 years agompmc-queue: .gitignore
Brian Norris [Thu, 8 Nov 2012 18:04:58 +0000 (10:04 -0800)]
mpmc-queue: .gitignore

9 years agompmc-queue: add "-noinit" builds
Brian Norris [Thu, 8 Nov 2012 18:02:28 +0000 (10:02 -0800)]
mpmc-queue: add "-noinit" builds

Build matching test cases where there is no initial element in the
queue.

9 years agompmc-queue: makefile bugfix
Brian Norris [Thu, 8 Nov 2012 17:59:50 +0000 (09:59 -0800)]
mpmc-queue: makefile bugfix

9 years agompmc-queue: remove duplicate source files
Brian Norris [Thu, 8 Nov 2012 17:54:34 +0000 (09:54 -0800)]
mpmc-queue: remove duplicate source files

9 years agompmc-queue: unify source file again
Brian Norris [Thu, 8 Nov 2012 17:53:11 +0000 (09:53 -0800)]
mpmc-queue: unify source file again

I really didn't want 3 copies of the same source file just to get around
some model-checker snapshotting limitations in argument parsing... So
now, it's a compile-time option to configure the number of reader/writer
threads.

9 years agompmc-queue: fix make clean
Brian Norris [Thu, 8 Nov 2012 17:52:10 +0000 (09:52 -0800)]
mpmc-queue: fix make clean

9 years agospsc-queue: add spsc-relacy build
Brian Norris [Tue, 6 Nov 2012 20:32:52 +0000 (12:32 -0800)]
spsc-queue: add spsc-relacy build

Now we can test a version of spsc-queue using Relacy. There were some
small modifications necessary, so I duplicated the source code, renamed
with "-relacy" in the name.

To use it, you need to do something like the following, from the
spsc-queue directory:

  make RELACYPATH=/path-to-relacy
  ./spsc-relacy

9 years agounrelacy: include <mutex> and <condition_variable>
Brian Norris [Tue, 6 Nov 2012 20:10:39 +0000 (12:10 -0800)]
unrelacy: include <mutex> and <condition_variable>

Relacy expects to have these headers even if they aren't included by the
program.

9 years agospsc-queue: fix some old Relacy syntax (RL_NEW/RL_DELETE)
Brian Norris [Tue, 6 Nov 2012 19:53:05 +0000 (11:53 -0800)]
spsc-queue: fix some old Relacy syntax (RL_NEW/RL_DELETE)

Relacy 2.4 doesn't even have RL_NEW and RL_DELETE, so we shouldn't use
it even if we're trying to be Relacy-compatible.

9 years agounrelacy: use new MODEL_ASSERT() macro
Brian Norris [Sat, 3 Nov 2012 22:54:39 +0000 (15:54 -0700)]
unrelacy: use new MODEL_ASSERT() macro

9 years agobench: allow log directory to be placed elsewhere
Brian Norris [Sat, 3 Nov 2012 03:14:31 +0000 (20:14 -0700)]
bench: allow log directory to be placed elsewhere

Now, you can run:

  ./bench.sh <dir>

e.g.,

  ./bench.sh /tmp

Will create a directory /tmp/run-<date-time> for the logs.

9 years agobench: send timings to stdout, not stderr
Brian Norris [Sat, 3 Nov 2012 02:37:20 +0000 (19:37 -0700)]
bench: send timings to stdout, not stderr