From: Xinghai Yu <yuxinghai@xxxxxxxxxxxxxx> Remove the macro PROBE's definition in 'internal.h' and repalce the old 'PROBE' calls with new tracepoint function in source codes. Preprocess judgement by 'WITH_TRACE_PROBES' is to avoid the undefined errors which come from 'virt-login-shell' which code containing tracepoints but will not link tracepoints definition target file since 'virt-login-shell' will be setuid. Signed-off-by: Xinghai Yu <yuxinghai@xxxxxxxxxxxxxx> --- daemon/remote.c | 77 +++++++++++++++++++++++--------------------- src/internal.h | 69 +----------------------------------------- src/qemu/qemu_monitor.c | 42 ++++++++++++------------ src/qemu/qemu_monitor_json.c | 12 ++++--- src/qemu/qemu_monitor_text.c | 8 ++--- src/rpc/virkeepalive.c | 42 ++++++++++++------------ src/rpc/virnetclient.c | 43 +++++++++++++------------ src/rpc/virnetserverclient.c | 31 +++++++++--------- src/rpc/virnetsocket.c | 22 +++++++------ src/rpc/virnettlscontext.c | 42 +++++++++++++----------- src/util/vireventpoll.c | 66 ++++++++++++++++++------------------- src/util/virobject.c | 16 ++++++--- 12 files changed, 213 insertions(+), 263 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index b48d456..77e1f84 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -2752,9 +2752,9 @@ authfail: virReportError(VIR_ERR_AUTH_FAILED, "%s", _("authentication failed")); virNetMessageSaveError(rerr); - PROBE(RPC_SERVER_CLIENT_AUTH_FAIL, - "client=%p auth=%d", - client, REMOTE_AUTH_SASL); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_fail(client, REMOTE_AUTH_SASL); +#endif virObjectUnref(sasl); virMutexUnlock(&priv->lock); return -1; @@ -2793,10 +2793,9 @@ remoteSASLFinish(virNetServerClientPtr client) VIR_DEBUG("Authentication successful %d", virNetServerClientGetFD(client)); - PROBE(RPC_SERVER_CLIENT_AUTH_ALLOW, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_SASL, identity); - +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_allow(client, REMOTE_AUTH_SASL, identity); +#endif virObjectUnref(priv->sasl); priv->sasl = NULL; @@ -2823,7 +2822,9 @@ remoteDispatchAuthSaslStart(virNetServerPtr server ATTRIBUTE_UNUSED, int rv = -1; struct daemonClientPrivate *priv = virNetServerClientGetPrivateData(client); +#ifdef WITH_TRACE_PROBES const char *identity; +#endif virMutexLock(&priv->lock); @@ -2882,16 +2883,16 @@ remoteDispatchAuthSaslStart(virNetServerPtr server ATTRIBUTE_UNUSED, return 0; authfail: - PROBE(RPC_SERVER_CLIENT_AUTH_FAIL, - "client=%p auth=%d", - client, REMOTE_AUTH_SASL); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_fail(client, REMOTE_AUTH_SASL); +#endif goto error; authdeny: +#ifdef WITH_TRACE_PROBES identity = virNetSASLSessionGetIdentity(priv->sasl); - PROBE(RPC_SERVER_CLIENT_AUTH_DENY, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_SASL, identity); + trace_rpc_server_client_auth_deny(client, REMOTE_AUTH_SASL, identity); +#endif goto error; error: @@ -2921,7 +2922,9 @@ remoteDispatchAuthSaslStep(virNetServerPtr server ATTRIBUTE_UNUSED, int rv = -1; struct daemonClientPrivate *priv = virNetServerClientGetPrivateData(client); +#ifdef WITH_TRACE_PROBES const char *identity; +#endif virMutexLock(&priv->lock); @@ -2980,16 +2983,16 @@ remoteDispatchAuthSaslStep(virNetServerPtr server ATTRIBUTE_UNUSED, return 0; authfail: - PROBE(RPC_SERVER_CLIENT_AUTH_FAIL, - "client=%p auth=%d", - client, REMOTE_AUTH_SASL); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_fail(client, REMOTE_AUTH_SASL); +#endif goto error; authdeny: +#ifdef WITH_TRACE_PROBES identity = virNetSASLSessionGetIdentity(priv->sasl); - PROBE(RPC_SERVER_CLIENT_AUTH_DENY, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_SASL, identity); + trace_rpc_server_client_auth_deny(client, REMOTE_AUTH_SASL, identity); +#endif goto error; error: @@ -3134,9 +3137,9 @@ remoteDispatchAuthPolkit(virNetServerPtr server ATTRIBUTE_UNUSED, action, (long long) callerPid, callerUid, status); goto authdeny; } - PROBE(RPC_SERVER_CLIENT_AUTH_ALLOW, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_POLKIT, ident); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_allow(client,REMOTE_AUTH_POLKIT, ident); +#endif VIR_INFO("Policy allowed action %s from pid %lld, uid %d", action, (long long) callerPid, callerUid); ret->complete = 1; @@ -3169,15 +3172,15 @@ error: return -1; authfail: - PROBE(RPC_SERVER_CLIENT_AUTH_FAIL, - "client=%p auth=%d", - client, REMOTE_AUTH_POLKIT); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_fail(client, REMOTE_AUTH_POLKIT); +#endif goto error; authdeny: - PROBE(RPC_SERVER_CLIENT_AUTH_DENY, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_POLKIT, ident); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_deny(client, REMOTE_AUTH_POLKIT, ident); +#endif goto error; } #elif WITH_POLKIT0 @@ -3288,9 +3291,9 @@ remoteDispatchAuthPolkit(virNetServerPtr server ATTRIBUTE_UNUSED, polkit_result_to_string_representation(pkresult)); goto authdeny; } - PROBE(RPC_SERVER_CLIENT_AUTH_ALLOW, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_POLKIT, ident); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_allow(client, REMOTE_AUTH_POLKIT, identity); +#endif VIR_INFO("Policy allowed action %s from pid %lld, uid %d, result %s", action, (long long) callerPid, callerUid, polkit_result_to_string_representation(pkresult)); @@ -3311,15 +3314,15 @@ error: return -1; authfail: - PROBE(RPC_SERVER_CLIENT_AUTH_FAIL, - "client=%p auth=%d", - client, REMOTE_AUTH_POLKIT); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_fail(client, REMOTE_AUTH_POLKIT); +#endif goto error; authdeny: - PROBE(RPC_SERVER_CLIENT_AUTH_DENY, - "client=%p auth=%d identity=%s", - client, REMOTE_AUTH_POLKIT, ident); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_auth_deny(client, REMOTE_AUTH_POLKIT, identity); +#endif goto error; } diff --git a/src/internal.h b/src/internal.h index 5a38448..042c896 100644 --- a/src/internal.h +++ b/src/internal.h @@ -366,75 +366,10 @@ # define VIR_ROUND_UP(value, size) (VIR_DIV_UP(value, size) * (size)) -# if WITH_DTRACE_PROBES +#ifdef WITH_TRACE_PROBES # ifndef LIBVIRT_PROBES_H # define LIBVIRT_PROBES_H # include "libvirt_probes.h" # endif /* LIBVIRT_PROBES_H */ - -/* Systemtap 1.2 headers have a bug where they cannot handle a - * variable declared with array type. Work around this by casting all - * arguments. This is some gross use of the preprocessor because - * PROBE is a var-arg macro, but it is better than the alternative of - * making all callers to PROBE have to be aware of the issues. And - * hopefully, if we ever add a call to PROBE with other than 9 - * end arguments, you can figure out the pattern to extend this hack. - */ -# define VIR_COUNT_ARGS(...) VIR_ARG11(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) -# define VIR_ARG11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) _11 -# define VIR_ADD_CAST_EXPAND(a, b, ...) VIR_ADD_CAST_PASTE(a, b, __VA_ARGS__) -# define VIR_ADD_CAST_PASTE(a, b, ...) a##b(__VA_ARGS__) - -/* The double cast is necessary to silence gcc warnings; any pointer - * can safely go to intptr_t and back to void *, which collapses - * arrays into pointers; while any integer can be widened to intptr_t - * then cast to void *. */ -# define VIR_ADD_CAST(a) ((void *)(intptr_t)(a)) -# define VIR_ADD_CAST1(a) \ - VIR_ADD_CAST(a) -# define VIR_ADD_CAST2(a, b) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b) -# define VIR_ADD_CAST3(a, b, c) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c) -# define VIR_ADD_CAST4(a, b, c, d) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d) -# define VIR_ADD_CAST5(a, b, c, d, e) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d), VIR_ADD_CAST(e) -# define VIR_ADD_CAST6(a, b, c, d, e, f) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d), VIR_ADD_CAST(e), VIR_ADD_CAST(f) -# define VIR_ADD_CAST7(a, b, c, d, e, f, g) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d), VIR_ADD_CAST(e), VIR_ADD_CAST(f), \ - VIR_ADD_CAST(g) -# define VIR_ADD_CAST8(a, b, c, d, e, f, g, h) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d), VIR_ADD_CAST(e), VIR_ADD_CAST(f), \ - VIR_ADD_CAST(g), VIR_ADD_CAST(h) -# define VIR_ADD_CAST9(a, b, c, d, e, f, g, h, i) \ - VIR_ADD_CAST(a), VIR_ADD_CAST(b), VIR_ADD_CAST(c), \ - VIR_ADD_CAST(d), VIR_ADD_CAST(e), VIR_ADD_CAST(f), \ - VIR_ADD_CAST(g), VIR_ADD_CAST(h), VIR_ADD_CAST(i) - -# define VIR_ADD_CASTS(...) \ - VIR_ADD_CAST_EXPAND(VIR_ADD_CAST, VIR_COUNT_ARGS(__VA_ARGS__), \ - __VA_ARGS__) - -# define PROBE_EXPAND(NAME, ARGS) NAME(ARGS) -# define PROBE(NAME, FMT, ...) \ - VIR_DEBUG_INT(VIR_LOG_FROM_TRACE, \ - __FILE__, __LINE__, __func__, \ - #NAME ": " FMT, __VA_ARGS__); \ - if (LIBVIRT_ ## NAME ## _ENABLED()) { \ - PROBE_EXPAND(LIBVIRT_ ## NAME, \ - VIR_ADD_CASTS(__VA_ARGS__)); \ - } -# else -# define PROBE(NAME, FMT, ...) \ - VIR_DEBUG_INT(VIR_LOG_FROM_TRACE, \ - __FILE__, __LINE__, __func__, \ - #NAME ": " FMT, __VA_ARGS__); # endif diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index a2769db..d874710 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -42,7 +42,7 @@ #include "virobject.h" #include "virstring.h" -#ifdef WITH_DTRACE_PROBES +#ifdef WITH_TRACE_PROBES # include "libvirt_qemu_probes.h" #endif @@ -392,8 +392,9 @@ qemuMonitorIOProcess(qemuMonitorPtr mon) # endif #endif - PROBE(QEMU_MONITOR_IO_PROCESS, - "mon=%p buf=%s len=%zu", mon, mon->buffer, mon->bufferOffset); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_io_process(mon, mon->buffer, mon->bufferOffset); +#endif if (mon->json) len = qemuMonitorJSONIOProcess(mon, @@ -496,17 +497,17 @@ qemuMonitorIOWrite(qemuMonitorPtr mon) mon->msg->txLength - mon->msg->txOffset, mon->msg->txFD); - PROBE(QEMU_MONITOR_IO_WRITE, - "mon=%p buf=%s len=%d ret=%d errno=%d", - mon, - mon->msg->txBuffer + mon->msg->txOffset, - mon->msg->txLength - mon->msg->txOffset, - done, errno); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_io_write(mon, + mon->msg->txBuffer + mon->msg->txOffset, + mon->msg->txLength - mon->msg->txOffset, + done, errno); +#endif if (mon->msg->txFD != -1) - PROBE(QEMU_MONITOR_IO_SEND_FD, - "mon=%p fd=%d ret=%d errno=%d", - mon, mon->msg->txFD, done, errno); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_io_send_fd(mon, mon->msg->txFD, done, errno); +#endif if (done < 0) { if (errno == EAGAIN) @@ -819,9 +820,9 @@ qemuMonitorOpenInternal(virDomainObjPtr vm, goto cleanup; } - PROBE(QEMU_MONITOR_NEW, - "mon=%p refs=%d fd=%d", - mon, mon->parent.parent.u.s.refs, mon->fd); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_new(mon, mon->parent.parent.u.s.refs, mon->fd); +#endif virObjectUnlock(mon); return mon; @@ -892,8 +893,9 @@ void qemuMonitorClose(qemuMonitorPtr mon) return; virObjectLock(mon); - PROBE(QEMU_MONITOR_CLOSE, - "mon=%p refs=%d", mon, mon->parent.parent.u.s.refs); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_close(mon, mon->parent.parent.u.s.refs); +#endif if (mon->fd >= 0) { if (mon->watch) { @@ -954,9 +956,9 @@ int qemuMonitorSend(qemuMonitorPtr mon, mon->msg = msg; qemuMonitorUpdateWatch(mon); - PROBE(QEMU_MONITOR_SEND_MSG, - "mon=%p msg=%s fd=%d", - mon, mon->msg->txBuffer, mon->msg->txFD); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_send_msg(mon, mon->msg->txBuffer, mon->msg->txFD); +#endif while (!mon->msg->finished) { if (virCondWait(&mon->notify, &mon->parent.lock) < 0) { diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 9a5b812..3cf5e1a 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -44,7 +44,7 @@ #include "virstring.h" #include "cpu/cpu_x86.h" -#ifdef WITH_DTRACE_PROBES +#ifdef WITH_TRACE_PROBES # include "libvirt_qemu_probes.h" #endif @@ -168,13 +168,15 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, if (virJSONValueObjectHasKey(obj, "QMP") == 1) { ret = 0; } else if (virJSONValueObjectHasKey(obj, "event") == 1) { - PROBE(QEMU_MONITOR_RECV_EVENT, - "mon=%p event=%s", mon, line); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_recv_event(mon, line); +#endif ret = qemuMonitorJSONIOProcessEvent(mon, obj); } else if (virJSONValueObjectHasKey(obj, "error") == 1 || virJSONValueObjectHasKey(obj, "return") == 1) { - PROBE(QEMU_MONITOR_RECV_REPLY, - "mon=%p reply=%s", mon, line); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_recv_reply(mon, line); +#endif if (msg) { msg->rxObject = obj; msg->finished = 1; diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 7b81079..9b3d772 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -42,7 +42,7 @@ #include "virbuffer.h" #include "virstring.h" -#ifdef WITH_DTRACE_PROBES +#ifdef WITH_TRACE_PROBES # include "libvirt_qemu_probes.h" #endif @@ -201,9 +201,9 @@ int qemuMonitorTextIOProcess(qemuMonitorPtr mon ATTRIBUTE_UNUSED, VIR_DEBUG("Finished 0 byte reply"); #endif } - PROBE(QEMU_MONITOR_RECV_REPLY, - "mon=%p reply=%s", - mon, msg->rxBuffer); +#ifdef WITH_TRACE_PROBES + trace_qemu_monitor_recv_reply(mon, msg->rxBuffer); +#endif msg->finished = 1; used += end - (data + used); used += strlen(BASIC_PROMPT); diff --git a/src/rpc/virkeepalive.c b/src/rpc/virkeepalive.c index 8ae5c6c..265b7a6 100644 --- a/src/rpc/virkeepalive.c +++ b/src/rpc/virkeepalive.c @@ -99,9 +99,9 @@ virKeepAliveMessage(virKeepAlivePtr ka, int proc) } VIR_DEBUG("Sending keepalive %s to client %p", procstr, ka->client); - PROBE(RPC_KEEPALIVE_SEND, - "ka=%p client=%p prog=%d vers=%d proc=%d", - ka, ka->client, msg->header.prog, msg->header.vers, msg->header.proc); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_send(ka, ka->client, msg->header.prog, msg->header.vers, msg->header.proc); +#endif return msg; @@ -128,9 +128,9 @@ virKeepAliveTimerInternal(virKeepAlivePtr ka, } timeval = now - ka->lastPacketReceived; - PROBE(RPC_KEEPALIVE_TIMEOUT, - "ka=%p client=%p countToDeath=%d idle=%d", - ka, ka->client, ka->countToDeath, timeval); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_timeout(ka, ka->client, ka->countToDeath, timeval); +#endif if (ka->countToDeath == 0) { VIR_WARN("No response from client %p after %d keepalive messages in" @@ -210,9 +210,9 @@ virKeepAliveNew(int interval, ka->deadCB = deadCB; ka->freeCB = freeCB; - PROBE(RPC_KEEPALIVE_NEW, - "ka=%p client=%p", - ka, ka->client); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_new(ka, ka->client); +#endif return ka; } @@ -223,8 +223,9 @@ virKeepAliveDispose(void *obj) { virKeepAlivePtr ka = obj; - PROBE(RPC_KEEPALIVE_DISPOSE, - "ka=%p", ka); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_dispose(ka); +#endif ka->freeCB(ka->client); } @@ -271,9 +272,9 @@ virKeepAliveStart(virKeepAlivePtr ka, goto cleanup; } - PROBE(RPC_KEEPALIVE_START, - "ka=%p client=%p interval=%d count=%u", - ka, ka->client, interval, count); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_start(ka, ka->client, interval, count); +#endif now = time(NULL); delay = now - ka->lastPacketReceived; @@ -302,9 +303,9 @@ virKeepAliveStop(virKeepAlivePtr ka) { virObjectLock(ka); - PROBE(RPC_KEEPALIVE_STOP, - "ka=%p client=%p", - ka, ka->client); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_stop(ka, ka->client); +#endif if (ka->timer > 0) { virEventRemoveTimeout(ka->timer); @@ -385,10 +386,9 @@ virKeepAliveCheckMessage(virKeepAlivePtr ka, if (msg->header.prog == KEEPALIVE_PROGRAM && msg->header.vers == KEEPALIVE_PROTOCOL_VERSION && msg->header.type == VIR_NET_MESSAGE) { - PROBE(RPC_KEEPALIVE_RECEIVED, - "ka=%p client=%p prog=%d vers=%d proc=%d", - ka, ka->client, msg->header.prog, - msg->header.vers, msg->header.proc); +#ifdef WITH_TRACE_PROBES + trace_rpc_keepalive_received(ka, ka->client, msg->header.prog, msg->header.vers, msg->header.proc); +#endif ret = true; switch (msg->header.proc) { case KEEPALIVE_PROC_PING: diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 9deec9e..51799cd 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -321,9 +321,9 @@ static virNetClientPtr virNetClientNew(virNetSocketPtr sock, if (VIR_STRDUP(client->hostname, hostname) < 0) goto error; - PROBE(RPC_CLIENT_NEW, - "client=%p sock=%p", - client, client->sock); +#ifdef WITH_TRACE_PROBES + trace_rpc_client_new(client, client->sock); +#endif return client; error: @@ -595,8 +595,9 @@ void virNetClientDispose(void *obj) virNetClientPtr client = obj; size_t i; - PROBE(RPC_CLIENT_DISPOSE, - "client=%p", client); +#ifdef WITH_TRACE_PROBES + trace_rpc_client_dispose(client); +#endif if (client->closeFf) client->closeFf(client->closeOpaque); @@ -1116,11 +1117,12 @@ virNetClientCallDispatch(virNetClientPtr client) { virNetMessagePtr response = NULL; - PROBE(RPC_CLIENT_MSG_RX, - "client=%p len=%zu prog=%u vers=%u proc=%u type=%u status=%u serial=%u", - client, client->msg.bufferLength, - client->msg.header.prog, client->msg.header.vers, client->msg.header.proc, - client->msg.header.type, client->msg.header.status, client->msg.header.serial); +#ifdef WITH_TRACE_PROBES + trace_rpc_client_msg_rx(client, client->msg.bufferLength, client->msg.header.prog, + client->msg.header.vers, client->msg.header.proc, + client->msg.header.type, client->msg.header.status, + client->msg.header.serial); +#endif if (virKeepAliveCheckMessage(client->keepalive, &client->msg, &response)) { if (response && @@ -1918,12 +1920,11 @@ virNetClientQueueNonBlocking(virNetClientPtr client, { virNetClientCallPtr call; - PROBE(RPC_CLIENT_MSG_TX_QUEUE, - "client=%p len=%zu prog=%u vers=%u proc=%u" - " type=%u status=%u serial=%u", - client, msg->bufferLength, - msg->header.prog, msg->header.vers, msg->header.proc, - msg->header.type, msg->header.status, msg->header.serial); +#ifdef WITH_TRACE_PROBES + trace_rpc_client_msg_tx_queue(client, msg->bufferLength, + msg->header.prog, msg->header.vers, msg->header.proc, + msg->header.type, msg->header.status, msg->header.serial); +#endif if (!(call = virNetClientCallNew(msg, false, true))) return -1; @@ -1945,11 +1946,11 @@ static int virNetClientSendInternal(virNetClientPtr client, virNetClientCallPtr call; int ret = -1; - PROBE(RPC_CLIENT_MSG_TX_QUEUE, - "client=%p len=%zu prog=%u vers=%u proc=%u type=%u status=%u serial=%u", - client, msg->bufferLength, - msg->header.prog, msg->header.vers, msg->header.proc, - msg->header.type, msg->header.status, msg->header.serial); +#ifdef WITH_TRACE_PROBES + trace_rpc_client_msg_tx_queue(client, msg->bufferLength, + msg->header.prog, msg->header.vers, msg->header.proc, + msg->header.type, msg->header.status, msg->header.serial); +#endif if (!client->sock || client->wantClose) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c index 52b4941..5a4bc8e 100644 --- a/src/rpc/virnetserverclient.c +++ b/src/rpc/virnetserverclient.c @@ -379,9 +379,9 @@ virNetServerClientNewInternal(virNetSocketPtr sock, goto error; client->nrequests = 1; - PROBE(RPC_SERVER_CLIENT_NEW, - "client=%p sock=%p", - client, client->sock); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_new(client, client->sock); +#endif return client; @@ -907,8 +907,9 @@ void virNetServerClientDispose(void *obj) { virNetServerClientPtr client = obj; - PROBE(RPC_SERVER_CLIENT_DISPOSE, - "client=%p", client); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_dispose(client); +#endif virObjectUnref(client->identity); @@ -1201,11 +1202,11 @@ readmore: /* Definitely finished reading, so remove from queue */ virNetMessageQueueServe(&client->rx); - PROBE(RPC_SERVER_CLIENT_MSG_RX, - "client=%p len=%zu prog=%u vers=%u proc=%u type=%u status=%u serial=%u", - client, msg->bufferLength, - msg->header.prog, msg->header.vers, msg->header.proc, - msg->header.type, msg->header.status, msg->header.serial); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_msg_rx(client, msg->bufferLength, + msg->header.prog,msg->header.vers, msg->header.proc, + msg->header.type, msg->header.status, msg->header.serial); +#endif if (virKeepAliveCheckMessage(client->keepalive, msg, &response)) { virNetMessageFree(msg); @@ -1458,11 +1459,11 @@ virNetServerClientSendMessageLocked(virNetServerClientPtr client, msg->donefds = 0; if (client->sock && !client->wantClose) { - PROBE(RPC_SERVER_CLIENT_MSG_TX_QUEUE, - "client=%p len=%zu prog=%u vers=%u proc=%u type=%u status=%u serial=%u", - client, msg->bufferLength, - msg->header.prog, msg->header.vers, msg->header.proc, - msg->header.type, msg->header.status, msg->header.serial); +#ifdef WITH_TRACE_PROBES + trace_rpc_server_client_msg_tx_queue(client, msg->bufferLength, + msg->header.prog, msg->header.vers, msg->header.proc, + msg->header.type, msg->header.status, msg->header.serial); +#endif virNetMessageQueuePush(&client->tx, msg); virNetServerClientUpdateEvent(client); diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index 04bf25a..f18059a 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -199,10 +199,9 @@ static virNetSocketPtr virNetSocketNew(virSocketAddrPtr localAddr, sock->client = isClient; - PROBE(RPC_SOCKET_NEW, - "sock=%p fd=%d errfd=%d pid=%lld localAddr=%s, remoteAddr=%s", - sock, fd, errfd, (long long) pid, - NULLSTR(sock->localAddrStr), NULLSTR(sock->remoteAddrStr)); +#ifdef WITH_TRACE_PROBES + trace_rpc_socket_new(sock, fd, errfd, (long long)pid, NULLSTR(sock->localAddrStr), NULLSTR(sock->remoteAddrStr)); +#endif return sock; @@ -1016,8 +1015,9 @@ void virNetSocketDispose(void *obj) { virNetSocketPtr sock = obj; - PROBE(RPC_SOCKET_DISPOSE, - "sock=%p", sock); +#ifdef WITH_TRACE_PROBES + trace_rpc_socket_dispose(sock); +#endif if (sock->watch > 0) { virEventRemoveHandle(sock->watch); @@ -1640,8 +1640,9 @@ int virNetSocketSendFD(virNetSocketPtr sock, int fd) return -1; } virObjectLock(sock); - PROBE(RPC_SOCKET_SEND_FD, - "sock=%p fd=%d", sock, fd); +#ifdef WITH_TRACE_PROBES + trace_rpc_socket_send_fd(sock, fd); +#endif if (sendfd(sock->fd, fd) < 0) { if (errno == EAGAIN) ret = 0; @@ -1683,8 +1684,9 @@ int virNetSocketRecvFD(virNetSocketPtr sock, int *fd) _("Failed to recv file descriptor")); goto cleanup; } - PROBE(RPC_SOCKET_RECV_FD, - "sock=%p fd=%d", sock, *fd); +#ifdef WITH_TRACE_PROBES + trace_rpc_socket_recv_fd( sock, *fd); +#endif ret = 1; cleanup: diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index cd69794..7716dd2 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -773,9 +773,9 @@ static virNetTLSContextPtr virNetTLSContextNew(const char *cacert, ctxt->x509dnWhitelist = x509dnWhitelist; ctxt->isServer = isServer; - PROBE(RPC_TLS_CONTEXT_NEW, - "ctxt=%p cacert=%s cacrl=%s cert=%s key=%s sanityCheckCert=%d requireValidCert=%d isServer=%d", - ctxt, cacert, NULLSTR(cacrl), cert, key, sanityCheckCert, requireValidCert, isServer); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_context_new(ctxt, cacert, NULLSTR(cacrl), cert, key, sanityCheckCert, requireValidCert, isServer); +#endif return ctxt; @@ -993,7 +993,9 @@ static int virNetTLSContextValidCertificate(virNetTLSContextPtr ctxt, unsigned int nCerts; size_t i; char dname[256]; +#ifdef WITH_TRACE_PROBES char *dnameptr = dname; +#endif size_t dnamesize = sizeof(dname); memset(dname, 0, dnamesize); @@ -1107,23 +1109,23 @@ static int virNetTLSContextValidCertificate(virNetTLSContextPtr ctxt, gnutls_x509_crt_deinit(cert); } - PROBE(RPC_TLS_CONTEXT_SESSION_ALLOW, - "ctxt=%p sess=%p dname=%s", - ctxt, sess, dnameptr); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_context_session_allow(ctxt, sess, dnameptr); +#endif return 0; authdeny: - PROBE(RPC_TLS_CONTEXT_SESSION_DENY, - "ctxt=%p sess=%p dname=%s", - ctxt, sess, dnameptr); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_context_session_deny(ctxt, sess, dnameptr); +#endif return -1; authfail: - PROBE(RPC_TLS_CONTEXT_SESSION_FAIL, - "ctxt=%p sess=%p", - ctxt, sess); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_context_session_fail(ctxt, sess); +#endif return -1; } @@ -1160,8 +1162,9 @@ void virNetTLSContextDispose(void *obj) { virNetTLSContextPtr ctxt = obj; - PROBE(RPC_TLS_CONTEXT_DISPOSE, - "ctxt=%p", ctxt); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_context_dispose(ctxt); +#endif gnutls_dh_params_deinit(ctxt->dhParams); gnutls_certificate_free_credentials(ctxt->x509cred); @@ -1254,9 +1257,9 @@ virNetTLSSessionPtr virNetTLSSessionNew(virNetTLSContextPtr ctxt, sess->isServer = ctxt->isServer; - PROBE(RPC_TLS_SESSION_NEW, - "sess=%p ctxt=%p hostname=%s isServer=%d", - sess, ctxt, hostname, sess->isServer); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_session_new(sess, ctxt, hostname, sess->isServer); +#endif return sess; @@ -1424,8 +1427,9 @@ void virNetTLSSessionDispose(void *obj) { virNetTLSSessionPtr sess = obj; - PROBE(RPC_TLS_SESSION_DISPOSE, - "sess=%p", sess); +#ifdef WITH_TRACE_PROBES + trace_rpc_tls_session_dispose( sess); +#endif VIR_FREE(sess->x509dname); VIR_FREE(sess->hostname); diff --git a/src/util/vireventpoll.c b/src/util/vireventpoll.c index 8a4c8bc..89db91c 100644 --- a/src/util/vireventpoll.c +++ b/src/util/vireventpoll.c @@ -131,9 +131,9 @@ int virEventPollAddHandle(int fd, int events, virEventPollInterruptLocked(); - PROBE(EVENT_POLL_ADD_HANDLE, - "watch=%d fd=%d events=%d cb=%p opaque=%p ff=%p", - watch, fd, events, cb, opaque, ff); +#ifdef WITH_TRACE_PROBES + trace_event_poll_add_handle(watch, fd, events, cb, opaque, ff); +#endif virMutexUnlock(&eventLoop.lock); return watch; @@ -142,9 +142,9 @@ int virEventPollAddHandle(int fd, int events, void virEventPollUpdateHandle(int watch, int events) { size_t i; bool found = false; - PROBE(EVENT_POLL_UPDATE_HANDLE, - "watch=%d events=%d", - watch, events); +#ifdef WITH_TRACE_PROBES + trace_event_poll_update_handle(watch, events); +#endif if (watch <= 0) { VIR_WARN("Ignoring invalid update watch %d", watch); @@ -175,9 +175,9 @@ void virEventPollUpdateHandle(int watch, int events) { */ int virEventPollRemoveHandle(int watch) { size_t i; - PROBE(EVENT_POLL_REMOVE_HANDLE, - "watch=%d", - watch); +#ifdef WITH_TRACE_PROBES + trace_event_poll_remove_handle(watch); +#endif if (watch <= 0) { VIR_WARN("Ignoring invalid remove watch %d", watch); @@ -243,9 +243,9 @@ int virEventPollAddTimeout(int frequency, ret = nextTimer-1; virEventPollInterruptLocked(); - PROBE(EVENT_POLL_ADD_TIMEOUT, - "timer=%d frequency=%d cb=%p opaque=%p ff=%p", - ret, frequency, cb, opaque, ff); +#ifdef WITH_TRACE_PROBES + trace_event_poll_add_timeout(ret, frequency, cb, opaque, ff); +#endif virMutexUnlock(&eventLoop.lock); return ret; } @@ -255,9 +255,9 @@ void virEventPollUpdateTimeout(int timer, int frequency) unsigned long long now; size_t i; bool found = false; - PROBE(EVENT_POLL_UPDATE_TIMEOUT, - "timer=%d frequency=%d", - timer, frequency); +#ifdef WITH_TRACE_PROBES + trace_event_poll_update_timeout(timer, frequency); +#endif if (timer <= 0) { VIR_WARN("Ignoring invalid update timer %d", timer); @@ -295,9 +295,9 @@ void virEventPollUpdateTimeout(int timer, int frequency) */ int virEventPollRemoveTimeout(int timer) { size_t i; - PROBE(EVENT_POLL_REMOVE_TIMEOUT, - "timer=%d", - timer); +#ifdef WITH_TRACE_PROBES + trace_event_poll_remove_timeout(timer); +#endif if (timer <= 0) { VIR_WARN("Ignoring invalid remove timer %d", timer); @@ -444,9 +444,9 @@ static int virEventPollDispatchTimeouts(void) eventLoop.timeouts[i].expiresAt = now + eventLoop.timeouts[i].frequency; - PROBE(EVENT_POLL_DISPATCH_TIMEOUT, - "timer=%d", - timer); +#ifdef WITH_TRACE_PROBES + trace_event_poll_dispatch_timeout(timer); +#endif virMutexUnlock(&eventLoop.lock); (cb)(timer, opaque); virMutexLock(&eventLoop.lock); @@ -494,9 +494,9 @@ static int virEventPollDispatchHandles(int nfds, struct pollfd *fds) { int watch = eventLoop.handles[i].watch; void *opaque = eventLoop.handles[i].opaque; int hEvents = virEventPollFromNativeEvents(fds[n].revents); - PROBE(EVENT_POLL_DISPATCH_HANDLE, - "watch=%d events=%d", - watch, hEvents); +#ifdef WITH_TRACE_PROBES + trace_event_poll_dispatch_handle( watch, hEvents); +#endif virMutexUnlock(&eventLoop.lock); (cb)(watch, fds[n].fd, hEvents, opaque); virMutexLock(&eventLoop.lock); @@ -525,9 +525,9 @@ static void virEventPollCleanupTimeouts(void) { continue; } - PROBE(EVENT_POLL_PURGE_TIMEOUT, - "timer=%d", - eventLoop.timeouts[i].timer); +#ifdef WITH_TRACE_PROBES + trace_event_poll_purge_timeout(eventLoop.timeouts[i].timer); +#endif if (eventLoop.timeouts[i].ff) { virFreeCallback ff = eventLoop.timeouts[i].ff; void *opaque = eventLoop.timeouts[i].opaque; @@ -573,9 +573,9 @@ static void virEventPollCleanupHandles(void) { continue; } - PROBE(EVENT_POLL_PURGE_HANDLE, - "watch=%d", - eventLoop.handles[i].watch); +#ifdef WITH_TRACE_PROBES + trace_event_poll_purge_handle(eventLoop.handles[i].watch); +#endif if (eventLoop.handles[i].ff) { virFreeCallback ff = eventLoop.handles[i].ff; void *opaque = eventLoop.handles[i].opaque; @@ -625,9 +625,9 @@ int virEventPollRunOnce(void) { virMutexUnlock(&eventLoop.lock); retry: - PROBE(EVENT_POLL_RUN, - "nhandles=%d timeout=%d", - nfds, timeout); +#ifdef WITH_TRACE_PROBES + trace_event_poll_run(nfds, timeout); +#endif ret = poll(fds, nfds, timeout); if (ret < 0) { EVENT_DEBUG("Poll got error event %d", errno); diff --git a/src/util/virobject.c b/src/util/virobject.c index 4f83bc1..349bd6a 100644 --- a/src/util/virobject.c +++ b/src/util/virobject.c @@ -196,7 +196,9 @@ void *virObjectNew(virClassPtr klass) obj->klass = klass; virAtomicIntSet(&obj->u.s.refs, 1); - PROBE(OBJECT_NEW, "obj=%p classname=%s", obj, obj->klass->name); +#ifdef WITH_TRACE_PROBES + trace_object_new( obj, obj->klass->name); +#endif return obj; } @@ -253,9 +255,13 @@ bool virObjectUnref(void *anyobj) return false; bool lastRef = virAtomicIntDecAndTest(&obj->u.s.refs); - PROBE(OBJECT_UNREF, "obj=%p", obj); +#ifdef WITH_TRACE_PROBES + trace_object_unref(obj); +#endif if (lastRef) { - PROBE(OBJECT_DISPOSE, "obj=%p", obj); +#ifdef WITH_TRACE_PROBES + trace_object_dispose(obj); +#endif virClassPtr klass = obj->klass; while (klass) { if (klass->dispose) @@ -290,7 +296,9 @@ void *virObjectRef(void *anyobj) if (!obj) return NULL; virAtomicIntInc(&obj->u.s.refs); - PROBE(OBJECT_REF, "obj=%p", obj); +#ifdef WITH_TRACE_PROBES + trace_object_ref(obj); +#endif return anyobj; } -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list