aboutsummaryrefslogtreecommitdiffstats
path: root/src/vlibapi
diff options
context:
space:
mode:
authorColin Tregenza Dancer <ctd@metaswitch.com>2017-09-06 20:23:24 +0100
committerDave Barach <openvpp@barachs.net>2017-09-11 11:44:44 +0000
commiteb1ac1732f15f9a99edbeffeb94c525b9ff25c1d (patch)
tree3753d83d94c05904e3fcb64370e75661d0afa0bb /src/vlibapi
parenta19e1054b58024891691eaebeb13700cdce57fea (diff)
Recombine diags and minimum barrier open time changes (VPP-968)
Support logging to both syslog and elog Also include DaveB is_mp_safe fix, which had been lost Change-Id: If82f7969e2f43c63c3fed5b1a0c7434c90c1f380 Signed-off-by: Colin Tregenza Dancer <ctd@metaswitch.com>
Diffstat (limited to 'src/vlibapi')
-rw-r--r--src/vlibapi/api_common.h6
-rw-r--r--src/vlibapi/api_shared.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h
index 651566aea29..bbeccfc2540 100644
--- a/src/vlibapi/api_common.h
+++ b/src/vlibapi/api_common.h
@@ -144,6 +144,12 @@ void vl_msg_api_queue_handler (unix_shared_memory_queue_t * q);
void vl_msg_api_barrier_sync (void) __attribute__ ((weak));
void vl_msg_api_barrier_release (void) __attribute__ ((weak));
+#ifdef BARRIER_TRACING
+void vl_msg_api_barrier_trace_context (const char *context)
+ __attribute__ ((weak));
+#else
+#define vl_msg_api_barrier_trace_context(X)
+#endif
void vl_msg_api_free (void *);
void vl_noop_handler (void *mp);
void vl_msg_api_increment_missing_client_counter (void);
diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c
index 5c1a9940dc7..59dc2375cf6 100644
--- a/src/vlibapi/api_shared.c
+++ b/src/vlibapi/api_shared.c
@@ -418,7 +418,10 @@ msg_handler_internal (api_main_t * am,
if (do_it)
{
if (!am->is_mp_safe[id])
- vl_msg_api_barrier_sync ();
+ {
+ vl_msg_api_barrier_trace_context (am->msg_names[id]);
+ vl_msg_api_barrier_sync ();
+ }
(*am->msg_handlers[id]) (the_msg);
if (!am->is_mp_safe[id])
vl_msg_api_barrier_release ();
@@ -498,7 +501,10 @@ vl_msg_api_handler_with_vm_node (api_main_t * am,
vl_msg_api_trace (am, am->rx_trace, the_msg);
if (!am->is_mp_safe[id])
- vl_msg_api_barrier_sync ();
+ {
+ vl_msg_api_barrier_trace_context (am->msg_names[id]);
+ vl_msg_api_barrier_sync ();
+ }
(*handler) (the_msg, vm, node);
if (!am->is_mp_safe[id])
vl_msg_api_barrier_release ();