Skip to content

Instantly share code, notes, and snippets.

View sbahra's full-sized avatar

Samy Al Bahra sbahra

View GitHub Profile
This isn't exactly a formal performance comparison. First column is length of
buffer in bytes, second column is the libc implementation and third column is
my implementation.
nehalem:string sbahra$ uname -a
Darwin nehalem.home 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
nehalem:string sbahra$ for j in memchr memset strchr strlen; do echo $j; for i in 32 64 128 256 512 1024; do ./${j} $i; done; done
memchr
32 214 61
64 279 65
Tommy benchmark program.
100000 concurrencykit forward
forward, insert, concurrencykit, 82 [ns]
forward, change, concurrencykit, 169 [ns]
forward, hit, concurrencykit, 84 [ns]
forward, miss, concurrencykit, 79 [ns]
forward, remove, concurrencykit, 80 [ns]
100000 concurrencykit random
random, insert, concurrencykit, 82 [ns]
random, change, concurrencykit, 175 [ns]
Tommy benchmark program.
10000 concurrencykit forward
forward, insert, concurrencykit, 88 [ns]
forward, change, concurrencykit, 112 [ns]
forward, hit, concurrencykit, 46 [ns]
forward, miss, concurrencykit, 62 [ns]
forward, remove, concurrencykit, 61 [ns]
10000 concurrencykit random
random, insert, concurrencykit, 83 [ns]
random, change, concurrencykit, 111 [ns]
sbahra@broadwell:~/projects/tommyds/benchmark$ LD_PRELOAD=/opt/backtrace/lib/libck.so ../benchmark.test -n 100000 -d concurrencykit
Tommy benchmark program.
100000 concurrencykit forward
forward, insert, concurrencykit, 99 [ns]
forward, change, concurrencykit, 91 [ns]
forward, hit, concurrencykit, 83 [ns]
forward, miss, concurrencykit, 101 [ns]
forward, remove, concurrencykit, 45 [ns]
100000 concurrencykit random
random, insert, concurrencykit, 94 [ns]
haswell:benchmark sbahra$ ./latency
WRITE: brlock 33
WRITE: naive 31
READ: brlock 38
READ: naive 35
haswell:benchmark sbahra$ ./throughput 1 4
Creating threads (brlock)...done
Waiting for threads to finish acquisition regression...done
1 51

Keybase proof

I hereby claim:

  • I am sbahra on github.
  • I am sbahra (https://keybase.io/sbahra) on keybase.
  • I have a public key whose fingerprint is 8EE0 B9E3 185A AA72 99E6 0BE5 19D2 E15A 9105 9E27

To claim this, I am signing this object:

### Keybase proof
I hereby claim:
* I am sbahra on github.
* I am sbahra (https://keybase.io/sbahra) on keybase.
* I have a public key whose fingerprint is 8EE0 B9E3 185A AA72 99E6 0BE5 19D2 E15A 9105 9E27
To claim this, I am signing this object:
@sbahra
sbahra / -
Created August 11, 2014 23:53
PID: 21634
--------------------------------------------------------------------------------
Thread 21640
[ 0] libpthread-2.13.so pause (../sysdeps/unix/syscall-template.S:82)
=> mov (%rsp), %rdi
[ 1] crash crash_signal (crash.c:511)
=> call 0xffffffffffffd0ae
s = (parameter) 11
si = (parameter) reference(0x7fb8cdbfa9e0, 0x7fb8cdbfab30)
-><> = structure
diff --git a/configure.ac b/configure.ac
index db006a8..1112e73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,19 @@ AC_ARG_ENABLE(lenient, [
lenient=$enableval
])
+rtm=no
+AC_ARG_ENABLE(rtm, [
i5:ck sbahra$ git diff
diff --git a/include/ck_epoch.h b/include/ck_epoch.h
index 1b7d1b5..dd2f998 100644
--- a/include/ck_epoch.h
+++ b/include/ck_epoch.h
@@ -147,7 +147,7 @@ ck_epoch_call(ck_epoch_t *epoch,
void ck_epoch_init(ck_epoch_t *);
ck_epoch_record_t *ck_epoch_recycle(ck_epoch_t *);
void ck_epoch_register(ck_epoch_t *, ck_epoch_record_t *);
-void ck_epoch_unregister(ck_epoch_record_t *);