X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Felog.c;h=8e3f6c18dfa57c1f8b275fa6c7c80db9db40b2d1;hb=b7b929931a07fbb27b43d5cd105f366c3e29807e;hp=12e3f5d4bd81ab58e224f96496b9bc144ba47658;hpb=903fd513e32a37e55aec0cfb4cf30e000680e0c3;p=vpp.git diff --git a/src/vppinfra/elog.c b/src/vppinfra/elog.c index 12e3f5d4bd8..8e3f6c18dfa 100644 --- a/src/vppinfra/elog.c +++ b/src/vppinfra/elog.c @@ -46,7 +46,7 @@ static inline void elog_lock (elog_main_t * em) { if (PREDICT_FALSE (em->lock != 0)) - while (__sync_lock_test_and_set (em->lock, 1)) + while (clib_atomic_test_and_set (em->lock)) ; } @@ -108,6 +108,13 @@ elog_event_type_register (elog_main_t * em, elog_event_type_t * t) elog_lock (em); + /* Multiple simultaneous registration attempts, */ + if (t->type_index_plus_one > 0) + { + elog_unlock (em); + return t->type_index_plus_one - 1; + } + l = vec_len (em->event_types); t->type_index_plus_one = 1 + l; @@ -406,7 +413,11 @@ elog_time_now (elog_time_stamp_t * et) #ifdef CLIB_UNIX { #include +#ifdef __APPLE__ + clock_gettime (CLOCK_REALTIME, &ts); +#else syscall (SYS_clock_gettime, CLOCK_REALTIME, &ts); +#endif cpu_time_now = clib_cpu_time_now (); /* Subtract 3/30/2017's worth of seconds to retain precision */ os_time_now_nsec = 1e9 * (ts.tv_sec - 1490885108) + ts.tv_nsec; @@ -458,7 +469,7 @@ elog_alloc (elog_main_t * em, u32 n_events) void elog_init (elog_main_t * em, u32 n_events) { - memset (em, 0, sizeof (em[0])); + clib_memset (em, 0, sizeof (em[0])); em->lock = 0; @@ -625,7 +636,7 @@ elog_merge (elog_main_t * dst, u8 * dst_tag, elog_main_t * src, u8 * src_tag, elog_track_t newt; int i; - memset (&newt, 0, sizeof (newt)); + clib_memset (&newt, 0, sizeof (newt)); /* Acquire src and dst events */ elog_get_events (src); @@ -725,7 +736,7 @@ elog_merge (elog_main_t * dst, u8 * dst_tag, elog_main_t * src, u8 * src_tag, /* * Move the earlier set of events later, to avoid creating - * events which preceed the Big Bang (aka have negative timestamps). + * events which precede the Big Bang (aka have negative timestamps). * * Not to any scale, we have something like the following picture: *