Bläddra i källkod

Make file/line handling for lock tracing compiled only when lock tracing is enabled instead of all the time

Samuel Thibault 11 år sedan
förälder
incheckning
9de08d8da8
3 ändrade filer med 200 tillägg och 194 borttagningar
  1. 157 91
      src/common/fxt.h
  2. 8 34
      src/common/starpu_spinlock.h
  3. 35 69
      src/common/thread.c

+ 157 - 91
src/common/fxt.h

@@ -400,11 +400,11 @@ do {										\
 /* We skip these events becasue they are called so often that they cause FxT to
  * fail and make the overall trace unreadable anyway. */
 #define _STARPU_TRACE_START_PROGRESS(memnode)		\
-	do {} while (0);
+	do {} while (0)
 //	FUT_DO_PROBE2(_STARPU_FUT_START_PROGRESS, memnode, _starpu_gettid());
 
 #define _STARPU_TRACE_END_PROGRESS(memnode)		\
-	do {} while (0);
+	do {} while (0)
 	//FUT_DO_PROBE2(_STARPU_FUT_END_PROGRESS, memnode, _starpu_gettid());
 	
 #define _STARPU_TRACE_USER_EVENT(code)			\
@@ -418,80 +418,146 @@ do {										\
 
 #ifdef STARPU_FXT_LOCK_TRACES 
 
-#define _STARPU_TRACE_LOCKING_MUTEX(file,line)	\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_LOCKING_MUTEX,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_MUTEX_LOCKED(file,line)			\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_MUTEX_LOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_UNLOCKING_MUTEX(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_MUTEX,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_MUTEX_UNLOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_MUTEX_UNLOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_TRYLOCK_MUTEX(file,line)			\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_TRYLOCK_MUTEX,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_RDLOCKING_RWLOCK(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RDLOCKING_RWLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_RWLOCK_RDLOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_RDLOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_WRLOCKING_RWLOCK(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_WRLOCKING_RWLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_RWLOCK_WRLOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_WRLOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_UNLOCKING_RWLOCK(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_RWLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_RWLOCK_UNLOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_UNLOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_LOCKING_SPINLOCK(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_LOCKING_SPINLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_SPINLOCK_LOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_SPINLOCK_LOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_UNLOCKING_SPINLOCK(file,line)	\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_SPINLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_SPINLOCK_UNLOCKED(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_SPINLOCK_UNLOCKED,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_TRYLOCK_SPINLOCK(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_TRYLOCK_SPINLOCK,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_COND_WAIT_BEGIN(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_COND_WAIT_BEGIN,line,_starpu_gettid(),file);
-
-#define _STARPU_TRACE_COND_WAIT_END(file,line)		\
-	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_COND_WAIT_END,line,_starpu_gettid(),file);
+#define _STARPU_TRACE_LOCKING_MUTEX()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_LOCKING_MUTEX,__LINE__,_starpu_gettid(),file); \
+} while (0)
+
+#define _STARPU_TRACE_MUTEX_LOCKED()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_MUTEX_LOCKED,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_UNLOCKING_MUTEX()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_MUTEX,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_MUTEX_UNLOCKED()	do {\
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_MUTEX_UNLOCKED,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_TRYLOCK_MUTEX()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_TRYLOCK_MUTEX,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_RDLOCKING_RWLOCK()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RDLOCKING_RWLOCK,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_RWLOCK_RDLOCKED()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_RDLOCKED,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_WRLOCKING_RWLOCK()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_WRLOCKING_RWLOCK,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_RWLOCK_WRLOCKED()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_WRLOCKED,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_UNLOCKING_RWLOCK()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_RWLOCK,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_RWLOCK_UNLOCKED()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_RWLOCK_UNLOCKED,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define STARPU_TRACE_SPINLOCK_CONDITITION (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER)
+
+#define _STARPU_TRACE_LOCKING_SPINLOCK()	do {\
+	if (STARPU_TRACE_SPINLOCK_CONDITITION) { \
+		const char *file; \
+		file = strrchr(__FILE__,'/') + 1; \
+		_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_LOCKING_SPINLOCK,__LINE__,_starpu_gettid(),file); \
+	} \
+} while(0)
+
+#define _STARPU_TRACE_SPINLOCK_LOCKED()		do { \
+	if (STARPU_TRACE_SPINLOCK_CONDITITION) { \
+		const char *file; \
+		file = strrchr(__FILE__,'/') + 1; \
+		_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_SPINLOCK_LOCKED,__LINE__,_starpu_gettid(),file); \
+	} \
+} while(0)
+
+#define _STARPU_TRACE_UNLOCKING_SPINLOCK()	do { \
+	if (STARPU_TRACE_SPINLOCK_CONDITITION) { \
+		const char *file; \
+		file = strrchr(__FILE__,'/') + 1; \
+		_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_UNLOCKING_SPINLOCK,__LINE__,_starpu_gettid(),file); \
+	} \
+} while(0)
+
+#define _STARPU_TRACE_SPINLOCK_UNLOCKED()	do { \
+	if (STARPU_TRACE_SPINLOCK_CONDITITION) { \
+		const char *file; \
+		file = strrchr(__FILE__,'/') + 1; \
+		_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_SPINLOCK_UNLOCKED,__LINE__,_starpu_gettid(),file); \
+	} \
+} while(0)
+
+#define _STARPU_TRACE_TRYLOCK_SPINLOCK()	do { \
+	if (STARPU_TRACE_SPINLOCK_CONDITITION) { \
+		const char *file; \
+		file = strrchr(__FILE__,'/') + 1; \
+		_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_TRYLOCK_SPINLOCK,__LINE__,_starpu_gettid(),file); \
+	} \
+} while(0)
+
+#define _STARPU_TRACE_COND_WAIT_BEGIN()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_COND_WAIT_BEGIN,__LINE__,_starpu_gettid(),file); \
+} while(0)
+
+#define _STARPU_TRACE_COND_WAIT_END()	do { \
+	const char *file; \
+	file = strrchr(__FILE__,'/') + 1; \
+	_STARPU_FUT_DO_PROBE2STR(_STARPU_FUT_COND_WAIT_END,__LINE__,_starpu_gettid(),file); \
+} while(0)
 
 #else // !STARPU_FXT_LOCK_TRACES
 
-#define _STARPU_TRACE_LOCKING_MUTEX(file,line)			do {} while(0)
-#define _STARPU_TRACE_MUTEX_LOCKED(file,line)			do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_MUTEX(file,line)		do {} while(0)
-#define _STARPU_TRACE_MUTEX_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_TRYLOCK_MUTEX(file,line)			do {} while(0)
-#define _STARPU_TRACE_RDLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_RDLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_WRLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_WRLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_LOCKING_SPINLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_SPINLOCK_LOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_SPINLOCK(file,line)	do {} while(0)
-#define _STARPU_TRACE_SPINLOCK_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_TRYLOCK_SPINLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_COND_WAIT_BEGIN(file,line)		do {} while(0)
-#define _STARPU_TRACE_COND_WAIT_END(file,line)			do {} while(0)
+#define _STARPU_TRACE_LOCKING_MUTEX()			do {} while(0)
+#define _STARPU_TRACE_MUTEX_LOCKED()			do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_MUTEX()		do {} while(0)
+#define _STARPU_TRACE_MUTEX_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_TRYLOCK_MUTEX()			do {} while(0)
+#define _STARPU_TRACE_RDLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_RDLOCKED()		do {} while(0)
+#define _STARPU_TRACE_WRLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_WRLOCKED()		do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_LOCKING_SPINLOCK()		do {} while(0)
+#define _STARPU_TRACE_SPINLOCK_LOCKED()		do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_SPINLOCK()	do {} while(0)
+#define _STARPU_TRACE_SPINLOCK_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_TRYLOCK_SPINLOCK()		do {} while(0)
+#define _STARPU_TRACE_COND_WAIT_BEGIN()		do {} while(0)
+#define _STARPU_TRACE_COND_WAIT_END()			do {} while(0)
 
 #endif // STARPU_FXT_LOCK_TRACES
 
@@ -544,24 +610,24 @@ do {										\
 #define _STARPU_TRACE_USER_EVENT(code)		do {} while(0)
 #define _STARPU_TRACE_SET_PROFILING(status)	do {} while(0)
 #define _STARPU_TRACE_TASK_WAIT_FOR_ALL		do {} while(0)
-#define _STARPU_TRACE_LOCKING_MUTEX(file,line)			do {} while(0)
-#define _STARPU_TRACE_MUTEX_LOCKED(file,line)			do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_MUTEX(file,line)		do {} while(0)
-#define _STARPU_TRACE_MUTEX_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_TRYLOCK_MUTEX(file,line)			do {} while(0)
-#define _STARPU_TRACE_RDLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_RDLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_WRLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_WRLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_RWLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_RWLOCK_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_LOCKING_SPINLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_SPINLOCK_LOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_UNLOCKING_SPINLOCK(file,line)	do {} while(0)
-#define _STARPU_TRACE_SPINLOCK_UNLOCKED(file,line)		do {} while(0)
-#define _STARPU_TRACE_TRYLOCK_SPINLOCK(file,line)		do {} while(0)
-#define _STARPU_TRACE_COND_WAIT_BEGIN(file,line)		do {} while(0)
-#define _STARPU_TRACE_COND_WAIT_END(file,line)			do {} while(0)
+#define _STARPU_TRACE_LOCKING_MUTEX()			do {} while(0)
+#define _STARPU_TRACE_MUTEX_LOCKED()			do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_MUTEX()		do {} while(0)
+#define _STARPU_TRACE_MUTEX_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_TRYLOCK_MUTEX()			do {} while(0)
+#define _STARPU_TRACE_RDLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_RDLOCKED()		do {} while(0)
+#define _STARPU_TRACE_WRLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_WRLOCKED()		do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_RWLOCK()		do {} while(0)
+#define _STARPU_TRACE_RWLOCK_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_LOCKING_SPINLOCK()		do {} while(0)
+#define _STARPU_TRACE_SPINLOCK_LOCKED()		do {} while(0)
+#define _STARPU_TRACE_UNLOCKING_SPINLOCK()	do {} while(0)
+#define _STARPU_TRACE_SPINLOCK_UNLOCKED()		do {} while(0)
+#define _STARPU_TRACE_TRYLOCK_SPINLOCK()		do {} while(0)
+#define _STARPU_TRACE_COND_WAIT_BEGIN()		do {} while(0)
+#define _STARPU_TRACE_COND_WAIT_END()			do {} while(0)
 #define _STARPU_TRACE_MEMORY_FULL(size)				do {} while(0)
 
 #endif // STARPU_USE_FXT

+ 8 - 34
src/common/starpu_spinlock.h

@@ -54,55 +54,29 @@ int _starpu_spin_destroy(struct _starpu_spinlock *lock);
 
 int _starpu_spin_lock(struct _starpu_spinlock *lock);
 #define _starpu_spin_lock(lock) ({ \
-	const char *file;   \
-	if (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER) \
-	{ \
-		file = strrchr(__FILE__,'/'); \
-		file += sizeof(char);\
-		_STARPU_TRACE_LOCKING_SPINLOCK(file,__LINE__); \
-	}\
+	_STARPU_TRACE_LOCKING_SPINLOCK(); \
 	_starpu_spin_lock(lock); \
-	if (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER) \
-	{ \
-		file = strrchr(__FILE__,'/'); \
-		file += sizeof(char);\
-		_STARPU_TRACE_SPINLOCK_LOCKED(file,__LINE__); \
-	}\
+	_STARPU_TRACE_SPINLOCK_LOCKED(); \
 	STARPU_RECORD_LOCK(lock); \
 	0; \
 }) 
 
 int _starpu_spin_trylock(struct _starpu_spinlock *lock);
 #define _starpu_spin_trylock(lock) ({ \
-	const char *file;   \
-	if (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER) \
-	{ \
-		file = strrchr(__FILE__,'/'); \
-		file += sizeof(char);\
-		_STARPU_TRACE_TRYLOCK_SPINLOCK(file,__LINE__); \
-	}\
+	_STARPU_TRACE_TRYLOCK_SPINLOCK(); \
 	int err = _starpu_spin_trylock(lock); \
-	if (!err) \
+	if (!err) { \
 		STARPU_RECORD_LOCK(lock); \
+		_STARPU_TRACE_SPINLOCK_LOCKED(); \
+	} \
 	err; \
 })
 int _starpu_spin_checklocked(struct _starpu_spinlock *lock);
 int _starpu_spin_unlock(struct _starpu_spinlock *lock);
 #define _starpu_spin_unlock(lock) ({ \
-	const char *file;   \
-	if (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER) \
-	{ \
-		file = strrchr(__FILE__,'/'); \
-		file += sizeof(char);\
-		_STARPU_TRACE_UNLOCKING_SPINLOCK(file,__LINE__); \
-	}\
+	_STARPU_TRACE_UNLOCKING_SPINLOCK(); \
 	_starpu_spin_unlock(lock); \
-	if (starpu_worker_get_type(starpu_worker_get_id()) == STARPU_CUDA_WORKER) \
-	{ \
-		file = strrchr(__FILE__,'/'); \
-		file += sizeof(char);\
-		_STARPU_TRACE_SPINLOCK_UNLOCKED(file,__LINE__); \
-	}\
+	_STARPU_TRACE_SPINLOCK_UNLOCKED(); \
 	0; \
 }) 
 

+ 35 - 69
src/common/thread.c

@@ -84,11 +84,7 @@ int starpu_pthread_mutex_destroy(starpu_pthread_mutex_t *mutex)
 
 int starpu_pthread_mutex_lock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-
-	_STARPU_TRACE_LOCKING_MUTEX(file,__LINE__);
+	_STARPU_TRACE_LOCKING_MUTEX();
 
 	if (!*mutex) STARPU_PTHREAD_MUTEX_INIT(mutex, NULL);
 
@@ -101,26 +97,23 @@ int starpu_pthread_mutex_lock(starpu_pthread_mutex_t *mutex)
 
 int starpu_pthread_mutex_unlock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_UNLOCKING_MUTEX(file,__LINE__);
+	_STARPU_TRACE_UNLOCKING_MUTEX();
 
 	xbt_mutex_release(*mutex);
 
-	_STARPU_TRACE_MUTEX_UNLOCKED(file,__LINE__);
+	_STARPU_TRACE_MUTEX_UNLOCKED();
 
 	return 0;
 }
 
 int starpu_pthread_mutex_trylock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_TRYLOCK_MUTEX(file,__LINE__);
+	_STARPU_TRACE_TRYLOCK_MUTEX();
 
 	xbt_mutex_acquire(*mutex);
+
+	_STARPU_TRACE_MUTEX_LOCKED();
+
 	return 0;
 }
 
@@ -185,16 +178,13 @@ int starpu_pthread_cond_broadcast(starpu_pthread_cond_t *cond)
 
 int starpu_pthread_cond_wait(starpu_pthread_cond_t *cond, starpu_pthread_mutex_t *mutex)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_COND_WAIT_BEGIN(file,__LINE__);
+	_STARPU_TRACE_COND_WAIT_BEGIN();
 
 	if (!*cond)
 		STARPU_PTHREAD_COND_INIT(cond, NULL);
 	xbt_cond_wait(*cond, *mutex);
 
-	_STARPU_TRACE_COND_WAIT_END(file,__LINE__);
+	_STARPU_TRACE_COND_WAIT_END();
 
 	return 0;
 }
@@ -218,42 +208,33 @@ int starpu_pthread_rwlock_destroy(starpu_pthread_rwlock_t *rwlock)
 
 int starpu_pthread_rwlock_rdlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_RDLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_RDLOCKING_RWLOCK();
 
  	int p_ret = starpu_pthread_mutex_lock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_RDLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_RDLOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_rwlock_wrlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_WRLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_WRLOCKING_RWLOCK();
 
  	int p_ret = starpu_pthread_mutex_lock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_WRLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_WRLOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_UNLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_UNLOCKING_RWLOCK();
 
  	int p_ret = starpu_pthread_mutex_unlock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_UNLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_UNLOCKED();
 
 	return p_ret;
 }
@@ -262,94 +243,79 @@ int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock)
 
 int starpu_pthread_mutex_lock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_LOCKING_MUTEX(file,__LINE__);
+	_STARPU_TRACE_LOCKING_MUTEX();
 
 	int p_ret = pthread_mutex_lock(mutex);
 
-	_STARPU_TRACE_MUTEX_LOCKED(file,__LINE__);
+	_STARPU_TRACE_MUTEX_LOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_mutex_unlock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_UNLOCKING_MUTEX(file,__LINE__);
+	_STARPU_TRACE_UNLOCKING_MUTEX();
 
 	int p_ret = pthread_mutex_unlock(mutex);
 
-	_STARPU_TRACE_MUTEX_UNLOCKED(file,__LINE__);
+	_STARPU_TRACE_MUTEX_UNLOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_mutex_trylock(starpu_pthread_mutex_t *mutex)
 {
-	const char *file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_LOCKING_MUTEX(file,__LINE__);
+	int ret;
+	_STARPU_TRACE_TRYLOCK_MUTEX();
+
+	ret = pthread_mutex_trylock(mutex);
+
+	if (!ret)
+		_STARPU_TRACE_MUTEX_LOCKED();
 
-	return pthread_mutex_trylock(mutex);
+	return ret;
 }
 
 int starpu_pthread_cond_wait(starpu_pthread_cond_t *cond, starpu_pthread_mutex_t *mutex)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_COND_WAIT_BEGIN(file,__LINE__);
+	_STARPU_TRACE_COND_WAIT_BEGIN();
 
  	int p_ret = pthread_cond_wait(cond, mutex);
 
-	_STARPU_TRACE_COND_WAIT_END(file,__LINE__);
+	_STARPU_TRACE_COND_WAIT_END();
 
 	return p_ret;
 }
 
 int starpu_pthread_rwlock_rdlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_RDLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_RDLOCKING_RWLOCK();
 
  	int p_ret = pthread_rwlock_rdlock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_RDLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_RDLOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_rwlock_wrlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_WRLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_WRLOCKING_RWLOCK();
 
  	int p_ret = pthread_rwlock_wrlock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_WRLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_WRLOCKED();
 
 	return p_ret;
 }
 
 int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock)
 {
-	const char* file;
-	file = strrchr(__FILE__,'/');
-	file += sizeof(char);
-	_STARPU_TRACE_UNLOCKING_RWLOCK(file,__LINE__);
+	_STARPU_TRACE_UNLOCKING_RWLOCK();
 
  	int p_ret = pthread_rwlock_unlock(rwlock);
 
-	_STARPU_TRACE_RWLOCK_UNLOCKED(file,__LINE__);
+	_STARPU_TRACE_RWLOCK_UNLOCKED();
 
 	return p_ret;
 }