summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@amacapital.net>2014-11-22 08:10:34 -0800
committerAndy Lutomirski <luto@amacapital.net>2014-11-22 08:10:34 -0800
commitbcddfc53637d20d55bba633f8a2441b27e3f9055 (patch)
tree3ee39f82d07fdc581b6c38971d45d04e24b8a61f
parent7d2238d3ec8f9177dec008d35d1f541114e543a2 (diff)
downloadmisc-tests-bcddfc53637d20d55bba633f8a2441b27e3f9055.tar.gz
timing_test: Add some new timings
-rw-r--r--timing_test.cc15
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;