From: gilles.carry <gilles.carry>

Signed-off-by: Gilles Carry <[EMAIL PROTECTED]>
Cc: Tim Chavez <[EMAIL PROTECTED]>

---
 .../func/async_handler/async_handler_tsc.c         |   33 -------------------
 .../realtime/func/measurement/preempt_timing.c     |   20 -----------
 .../realtime/func/measurement/rdtsc-latency.c      |   34 --------------------
 testcases/realtime/include/librttest.h             |   26 +++++++++++++++
 testcases/realtime/lib/librttest.c                 |   13 +++++++
 5 files changed, 39 insertions(+), 87 deletions(-)

diff --git a/testcases/realtime/func/async_handler/async_handler_tsc.c 
b/testcases/realtime/func/async_handler/async_handler_tsc.c
index 07ecf3d..d93e9a7 100644
--- a/testcases/realtime/func/async_handler/async_handler_tsc.c
+++ b/testcases/realtime/func/async_handler/async_handler_tsc.c
@@ -70,27 +70,6 @@ atomic_t step;
 pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
 pthread_mutex_t mutex;
 
-#define ULL_MAX 18446744073709551615ULL // (1 << 64) - 1
-#if defined(__i386__)
-#define rdtscll(val) __asm__ __volatile__("rdtsc" : "=A" (val))
-#elif defined(__x86_64__)
-#define rdtscll(val)                                   \
-       do {                                            \
-               uint32_t low, high;                     \
-               __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); \
-               val = (uint64_t)high << 32 | low;       \
-       } while(0)
-#elif defined(__powerpc__)     /* 32bit version */
-#define rdtscll(val)                                                   \
-        do {                                                           \
-               uint32_t tbhi, tblo ;                                   \
-               __asm__ __volatile__ ("mftbu %0" : "=r" (tbhi));        \
-               __asm__ __volatile__ ("mftbl %0" : "=r" (tblo));        \
-               val = 1000 * ((uint64_t) tbhi << 32) | tblo;            \
-       } while(0)
-#else
-#error
-#endif
 
 static int run_jvmsim=0;
 
@@ -119,18 +98,6 @@ int parse_args(int c, char *v)
         return handled;
 }
 
-/* return difference in microseconds */
-unsigned long long tsc_minus(unsigned long long tsc_start, unsigned long long 
tsc_end)
-{
-       unsigned long long delta;
-       if (tsc_start < tsc_end)
-               delta = tsc_end - tsc_start;
-       else {
-               delta = ULL_MAX - (tsc_end - tsc_start) + 1;
-               printf("TSC wrapped, delta=%llu\n", delta);
-       }
-       return delta;
-}
 
 /* calculate the tsc period */
 unsigned long long tsc_period_ps(void)
diff --git a/testcases/realtime/func/measurement/preempt_timing.c 
b/testcases/realtime/func/measurement/preempt_timing.c
index 989b97b..b0e24d4 100644
--- a/testcases/realtime/func/measurement/preempt_timing.c
+++ b/testcases/realtime/func/measurement/preempt_timing.c
@@ -55,26 +55,6 @@
 #include <librttest.h>
 #include <libjvmsim.h>
 
-#if defined(__i386__)
-#define rdtscll(val)   __asm__ __volatile__("rdtsc" : "=A" (val))
-#elif defined(__x86_64__)
-#define rdtscll(val)                                   \
-       do {                                            \
-               uint32_t low, high;                     \
-                __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); \
-               val = (uint64_t)high << 32 | low;       \
-       } while(0)
-#elif defined(__powerpc__)     /* 32bit version */
-#define rdtscll(val)                                                   \
-        do {                                                           \
-               uint32_t tbhi, tblo ;                                   \
-               __asm__ __volatile__ ("mftbu %0" : "=r" (tbhi));        \
-               __asm__ __volatile__ ("mftbl %0" : "=r" (tblo));        \
-               val = 1000 * ((uint64_t) tbhi <<32) | tblo;             \
-       } while(0)
-#else
-#error
-#endif
 
 #define ITERATIONS 1000000ULL
 #define INTERVALS 10
diff --git a/testcases/realtime/func/measurement/rdtsc-latency.c 
b/testcases/realtime/func/measurement/rdtsc-latency.c
index 38883c4..1d266fb 100644
--- a/testcases/realtime/func/measurement/rdtsc-latency.c
+++ b/testcases/realtime/func/measurement/rdtsc-latency.c
@@ -46,28 +46,6 @@
 #include <librttest.h>
 
 #define ITERATIONS 1000000
-#define ULL_MAX 18446744073709551615ULL // (1 << 64) - 1
-
-#if defined(__i386__)
-#define rdtscll(val)    __asm__ __volatile__("rdtsc" : "=A" (val))
-#elif defined(__x86_64__)
-#define rdtscll(val)                                   \
-       do {                                            \
-               uint32_t low, high;                     \
-               __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); \
-               val = (uint64_t)high << 32 | low;       \
-       } while(0)
-#elif defined(__powerpc__)     /* 32 bit version */
-#define rdtscll(val)                                                   \
-        do {                                                           \
-               uint32_t tbhi, tblo ;                                   \
-               __asm__ __volatile__ ("mftbu %0" : "=r" (tbhi));        \
-               __asm__ __volatile__ ("mftbl %0" : "=r" (tblo));        \
-               val = 1000 * ((uint64_t) tbhi <<32) | tblo;             \
-       } while(0)
-#else
-#error
-#endif
 
 void usage(void)
 {
@@ -100,18 +78,6 @@ unsigned long long tv_minus(struct timeval *tv_start, 
struct timeval *tv_end)
        return nsecs;
 }
 
-/* return difference in microseconds */
-unsigned long long tsc_minus(unsigned long long tsc_start, unsigned long long 
tsc_end)
-{
-       unsigned long long delta;
-       if (tsc_start < tsc_end)
-               delta = tsc_end - tsc_start;
-       else {
-               delta = ULL_MAX - (tsc_end - tsc_start) + 1;
-               printf("TSC wrapped, delta=%llu\n", delta);
-       }
-       return delta;
-}
 
 /* calculate the tsc period */
 unsigned long long tsc_period_ps(void)
diff --git a/testcases/realtime/include/librttest.h 
b/testcases/realtime/include/librttest.h
index 16e1ec9..8f1b362 100644
--- a/testcases/realtime/include/librttest.h
+++ b/testcases/realtime/include/librttest.h
@@ -96,6 +96,29 @@ typedef struct { volatile int counter; } atomic_t;
 
 #define PRINT_BUFFER_SIZE (1024*1024*4)
 
+/* TSC macros */
+#define ULL_MAX 18446744073709551615ULL // (1 << 64) - 1
+#if defined(__i386__)
+#define rdtscll(val) __asm__ __volatile__("rdtsc" : "=A" (val))
+#elif defined(__x86_64__)
+#define rdtscll(val)                                   \
+       do {                                            \
+               uint32_t low, high;                     \
+               __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high)); \
+               val = (uint64_t)high << 32 | low;       \
+       } while(0)
+#elif defined(__powerpc__)     /* 32bit version */
+#define rdtscll(val)                                                   \
+        do {                                                           \
+               uint32_t tbhi, tblo ;                                   \
+               __asm__ __volatile__ ("mftbu %0" : "=r" (tbhi));        \
+               __asm__ __volatile__ ("mftbl %0" : "=r" (tblo));        \
+               val = 1000 * ((uint64_t) tbhi << 32) | tblo;            \
+       } while(0)
+#else
+#error
+#endif
+
 extern pthread_mutex_t _buffer_mutex;
 extern char * _print_buffer;
 extern int _print_buffer_offset;
@@ -312,6 +335,9 @@ void nsec_to_ts(nsec_t ns, struct timespec *ts);
  */
 int ts_to_nsec(struct timespec *ts, nsec_t *ns);
 
+/* return difference in microseconds */
+unsigned long long tsc_minus(unsigned long long tsc_start, unsigned long long 
tsc_end);
+
 /* rt_nanosleep: sleep for ns nanoseconds using clock_nanosleep
  */
 void rt_nanosleep(nsec_t ns);
diff --git a/testcases/realtime/lib/librttest.c 
b/testcases/realtime/lib/librttest.c
index 20cb7a1..2fc2513 100644
--- a/testcases/realtime/lib/librttest.c
+++ b/testcases/realtime/lib/librttest.c
@@ -398,6 +398,19 @@ void nsec_to_ts(nsec_t ns, struct timespec *ts)
        ts->tv_nsec = ns%NS_PER_SEC;
 }
 
+/* return difference in microseconds */
+unsigned long long tsc_minus(unsigned long long tsc_start, unsigned long long 
tsc_end)
+{
+       unsigned long long delta;
+       if (tsc_start < tsc_end)
+               delta = tsc_end - tsc_start;
+       else {
+               delta = ULL_MAX - (tsc_end - tsc_start) + 1;
+               printf("TSC wrapped, delta=%llu\n", delta);
+       }
+       return delta;
+}
+
 void rt_nanosleep_until(nsec_t ns) {
        struct timespec ts_sleep, ts_rem;
        int rc;
-- 
1.5.5.GIT


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to