Eelco Chaudron <[email protected]> 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 <[email protected]>
> ---

LGTM,

Acked-by: Paolo Valerio <[email protected]>

>  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
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to