diff options
author | Andy Lutomirski <luto@amacapital.net> | 2014-11-22 08:10:34 -0800 |
---|---|---|
committer | Andy Lutomirski <luto@amacapital.net> | 2014-11-22 08:10:34 -0800 |
commit | bcddfc53637d20d55bba633f8a2441b27e3f9055 (patch) | |
tree | 3ee39f82d07fdc581b6c38971d45d04e24b8a61f | |
parent | 7d2238d3ec8f9177dec008d35d1f541114e543a2 (diff) | |
download | misc-tests-bcddfc53637d20d55bba633f8a2441b27e3f9055.tar.gz |
timing_test: Add some new timings
-rw-r--r-- | timing_test.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/timing_test.cc b/timing_test.cc index 3d3b5e5..748ba1f 100644 --- a/timing_test.cc +++ b/timing_test.cc @@ -9,6 +9,7 @@ #include <stdio.h> #include <string.h> #include <inttypes.h> +#include <atomic> typedef int (*vgettime_t)(clockid_t, timespec *); @@ -80,6 +81,20 @@ int main(int argc, char **argv) unsigned int a, d; asm volatile ("mfence;rdtsc;mfence" : "=a" (a), "=d" (d)); } + } else if (!strcmp(mode, "mfence")) { + for (size_t i = 0; i < loops; ++i) { + unsigned int a, d; + asm volatile ("mfence" : "=a" (a), "=d" (d)); + } + } else if (!strcmp(mode, "sfence")) { + for (size_t i = 0; i < loops; ++i) { + unsigned int a, d; + asm volatile ("sfence" : "=a" (a), "=d" (d)); + } + } else if (!strcmp(mode, "lock_addl")) { + std::atomic<unsigned int> x; + for (size_t i = 0; i < loops; ++i) + x += 2; } else if (!strcmp(mode, "rdtscp")) { for (size_t i = 0; i < loops; ++i) { unsigned int a, c, d; |