Remove opal_recursion_depth_counter and opal_progress_thread_count. These counters add two
atomics in the critical path and are not currently used. We can bring them back if there turns out to be a good use for them. cmr=v1.7.4:reviewer=brbarret This commit was SVN r29994.
Этот коммит содержится в:
родитель
0c6b292442
Коммит
ee9cd13b90
@ -43,7 +43,6 @@ bool opal_progress_debug = false;
|
|||||||
* default parameters
|
* default parameters
|
||||||
*/
|
*/
|
||||||
static int opal_progress_event_flag = OPAL_EVLOOP_ONCE | OPAL_EVLOOP_NONBLOCK;
|
static int opal_progress_event_flag = OPAL_EVLOOP_ONCE | OPAL_EVLOOP_NONBLOCK;
|
||||||
volatile int32_t opal_progress_thread_count = 0;
|
|
||||||
int opal_progress_spin_count = 10000;
|
int opal_progress_spin_count = 10000;
|
||||||
|
|
||||||
|
|
||||||
@ -73,9 +72,6 @@ static int32_t event_progress_delta = 0;
|
|||||||
be every time */
|
be every time */
|
||||||
static int32_t num_event_users = 0;
|
static int32_t num_event_users = 0;
|
||||||
|
|
||||||
/* How deep are we in opal_progress recursion? */
|
|
||||||
uint32_t opal_progress_recursion_depth_counter = 0;
|
|
||||||
|
|
||||||
#if OPAL_ENABLE_DEBUG
|
#if OPAL_ENABLE_DEBUG
|
||||||
static int debug_output = -1;
|
static int debug_output = -1;
|
||||||
#endif
|
#endif
|
||||||
@ -155,8 +151,6 @@ opal_progress(void)
|
|||||||
size_t i;
|
size_t i;
|
||||||
int events = 0;
|
int events = 0;
|
||||||
|
|
||||||
opal_atomic_add(&opal_progress_recursion_depth_counter, 1);
|
|
||||||
|
|
||||||
if( opal_progress_event_flag != 0 ) {
|
if( opal_progress_event_flag != 0 ) {
|
||||||
#if OPAL_HAVE_WORKING_EVENTOPS
|
#if OPAL_HAVE_WORKING_EVENTOPS
|
||||||
#if OPAL_PROGRESS_USE_TIMERS
|
#if OPAL_PROGRESS_USE_TIMERS
|
||||||
@ -202,8 +196,6 @@ opal_progress(void)
|
|||||||
sched_yield();
|
sched_yield();
|
||||||
}
|
}
|
||||||
#endif /* defined(HAVE_SCHED_YIELD) */
|
#endif /* defined(HAVE_SCHED_YIELD) */
|
||||||
|
|
||||||
opal_atomic_add(&opal_progress_recursion_depth_counter, -1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -173,54 +173,26 @@ OPAL_DECLSPEC int opal_progress_register(opal_progress_callback_t cb);
|
|||||||
OPAL_DECLSPEC int opal_progress_unregister(opal_progress_callback_t cb);
|
OPAL_DECLSPEC int opal_progress_unregister(opal_progress_callback_t cb);
|
||||||
|
|
||||||
|
|
||||||
OPAL_DECLSPEC extern volatile int32_t opal_progress_thread_count;
|
|
||||||
OPAL_DECLSPEC extern int opal_progress_spin_count;
|
OPAL_DECLSPEC extern int opal_progress_spin_count;
|
||||||
|
|
||||||
static inline bool opal_progress_threads(void)
|
|
||||||
{
|
|
||||||
return (opal_progress_thread_count > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Progress until flag is true or poll iterations completed
|
* Progress until flag is true or poll iterations completed
|
||||||
*/
|
*/
|
||||||
static inline bool opal_progress_spin(volatile bool* complete)
|
static inline bool opal_progress_spin(volatile bool* complete)
|
||||||
{
|
{
|
||||||
int32_t c;
|
int32_t c;
|
||||||
OPAL_THREAD_ADD32(&opal_progress_thread_count,1);
|
|
||||||
for (c = 0; c < opal_progress_spin_count; c++) {
|
for (c = 0; c < opal_progress_spin_count; c++) {
|
||||||
if (true == *complete) {
|
if (true == *complete) {
|
||||||
OPAL_THREAD_ADD32(&opal_progress_thread_count,-1);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
opal_progress();
|
opal_progress();
|
||||||
}
|
}
|
||||||
OPAL_THREAD_ADD32(&opal_progress_thread_count,-1);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \internal
|
|
||||||
* Don't use this variable; use the opal_progress_recursion_depth()
|
|
||||||
* function.
|
|
||||||
*/
|
|
||||||
OPAL_DECLSPEC extern uint32_t opal_progress_recursion_depth_counter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the current level of recursion -- 0 means that we are not
|
|
||||||
* under an opal_progress() call at all. 1 means that you're in the
|
|
||||||
* top-level opal_progress() function (i.e., not deep in recursion).
|
|
||||||
* Higher values mean that you're that many levels deep in recursion.
|
|
||||||
*/
|
|
||||||
static inline uint32_t opal_progress_recursion_depth(void)
|
|
||||||
{
|
|
||||||
opal_atomic_mb();
|
|
||||||
return opal_progress_recursion_depth_counter;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
END_C_DECLS
|
END_C_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user