Message ID | 163949553494.1639090.15674901303169003314.stgit@ebuild |
---|---|
State | Superseded |
Headers | show |
Series | adding USDT points to OVS | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | success | apply and check: success |
ovsrobot/github-robot-_Build_and_Test | success | github build: passed |
Eelco Chaudron <echaudro@redhat.com> writes: > This patch defines the OVS_STATIC_TRACE() macro, and as an > example, adds two of them in the bridge run loop. > > Signed-off-by: Eelco Chaudron <echaudro@redhat.com> > --- LGTM, Acked-by: Paolo Valerio <pvalerio@redhat.com> > include/openvswitch/automake.mk | 1 + > include/openvswitch/usdt_probes.h | 50 +++++++++++++++++++++++++++++++++++++ > vswitchd/ovs-vswitchd.c | 3 ++ > 3 files changed, 54 insertions(+) > create mode 100644 include/openvswitch/usdt_probes.h > > diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk > index 1fa6d88fa..317dc404f 100644 > --- a/include/openvswitch/automake.mk > +++ b/include/openvswitch/automake.mk > @@ -43,6 +43,7 @@ openvswitchinclude_HEADERS = \ > include/openvswitch/tun-metadata.h \ > include/openvswitch/type-props.h \ > include/openvswitch/types.h \ > + include/openvswitch/usdt_probes.h \ > include/openvswitch/util.h \ > include/openvswitch/uuid.h \ > include/openvswitch/version.h \ > diff --git a/include/openvswitch/usdt_probes.h b/include/openvswitch/usdt_probes.h > new file mode 100644 > index 000000000..2f8882bd4 > --- /dev/null > +++ b/include/openvswitch/usdt_probes.h > @@ -0,0 +1,50 @@ > +/* > + * Copyright (c) 2021 Red Hat, Inc. > + * > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at: > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > + > +#ifndef OPENVSWITCH_USDT_PROBES_H > +#define OPENVSWITCH_USDT_PROBES_H 1 > + > +#ifdef HAVE_USDT_PROBES > +#include <sys/sdt.h> > +#endif > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +#ifdef HAVE_USDT_PROBES > + > +#define GET_DTRACE_FUNC(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \ > + NAME, ...) NAME > + > +#define OVS_USDT_PROBE(provider, name, ...) \ > + GET_DTRACE_FUNC(_0, ##__VA_ARGS__, DTRACE_PROBE10, DTRACE_PROBE9, \ > + DTRACE_PROBE8, DTRACE_PROBE7, DTRACE_PROBE6, \ > + DTRACE_PROBE5, DTRACE_PROBE4, DTRACE_PROBE3, \ > + DTRACE_PROBE2, DTRACE_PROBE1, DTRACE_PROBE) \ > + (provider, name, ##__VA_ARGS__) > + > +#else > + > +#define OVS_USDT_PROBE(...) > + > +#endif > + > +#ifdef __cplusplus > +} > +#endif > + > +#endif /* usdt_probes.h */ > diff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c > index f007f9c0b..932a1ba0b 100644 > --- a/vswitchd/ovs-vswitchd.c > +++ b/vswitchd/ovs-vswitchd.c > @@ -50,6 +50,7 @@ > #include "util.h" > #include "openvswitch/vconn.h" > #include "openvswitch/vlog.h" > +#include "openvswitch/usdt_probes.h" > #include "lib/vswitch-idl.h" > #include "lib/dns-resolve.h" > > @@ -115,6 +116,7 @@ main(int argc, char *argv[]) > exiting = false; > cleanup = false; > while (!exiting) { > + OVS_USDT_PROBE(main, run_start); > memory_run(); > if (memory_should_report()) { > struct simap usage; > @@ -135,6 +137,7 @@ main(int argc, char *argv[]) > if (exiting) { > poll_immediate_wake(); > } > + OVS_USDT_PROBE(main, poll_block); > poll_block(); > if (should_service_stop()) { > exiting = true; > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk index 1fa6d88fa..317dc404f 100644 --- a/include/openvswitch/automake.mk +++ b/include/openvswitch/automake.mk @@ -43,6 +43,7 @@ openvswitchinclude_HEADERS = \ include/openvswitch/tun-metadata.h \ include/openvswitch/type-props.h \ include/openvswitch/types.h \ + include/openvswitch/usdt_probes.h \ include/openvswitch/util.h \ include/openvswitch/uuid.h \ include/openvswitch/version.h \ diff --git a/include/openvswitch/usdt_probes.h b/include/openvswitch/usdt_probes.h new file mode 100644 index 000000000..2f8882bd4 --- /dev/null +++ b/include/openvswitch/usdt_probes.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2021 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OPENVSWITCH_USDT_PROBES_H +#define OPENVSWITCH_USDT_PROBES_H 1 + +#ifdef HAVE_USDT_PROBES +#include <sys/sdt.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef HAVE_USDT_PROBES + +#define GET_DTRACE_FUNC(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \ + NAME, ...) NAME + +#define OVS_USDT_PROBE(provider, name, ...) \ + GET_DTRACE_FUNC(_0, ##__VA_ARGS__, DTRACE_PROBE10, DTRACE_PROBE9, \ + DTRACE_PROBE8, DTRACE_PROBE7, DTRACE_PROBE6, \ + DTRACE_PROBE5, DTRACE_PROBE4, DTRACE_PROBE3, \ + DTRACE_PROBE2, DTRACE_PROBE1, DTRACE_PROBE) \ + (provider, name, ##__VA_ARGS__) + +#else + +#define OVS_USDT_PROBE(...) + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* usdt_probes.h */ diff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c index f007f9c0b..932a1ba0b 100644 --- a/vswitchd/ovs-vswitchd.c +++ b/vswitchd/ovs-vswitchd.c @@ -50,6 +50,7 @@ #include "util.h" #include "openvswitch/vconn.h" #include "openvswitch/vlog.h" +#include "openvswitch/usdt_probes.h" #include "lib/vswitch-idl.h" #include "lib/dns-resolve.h" @@ -115,6 +116,7 @@ main(int argc, char *argv[]) exiting = false; cleanup = false; while (!exiting) { + OVS_USDT_PROBE(main, run_start); memory_run(); if (memory_should_report()) { struct simap usage; @@ -135,6 +137,7 @@ main(int argc, char *argv[]) if (exiting) { poll_immediate_wake(); } + OVS_USDT_PROBE(main, poll_block); poll_block(); if (should_service_stop()) { exiting = true;
This patch defines the OVS_STATIC_TRACE() macro, and as an example, adds two of them in the bridge run loop. Signed-off-by: Eelco Chaudron <echaudro@redhat.com> --- include/openvswitch/automake.mk | 1 + include/openvswitch/usdt_probes.h | 50 +++++++++++++++++++++++++++++++++++++ vswitchd/ovs-vswitchd.c | 3 ++ 3 files changed, 54 insertions(+) create mode 100644 include/openvswitch/usdt_probes.h