On Tue, Apr 21, 2020 at 7:55 PM David Marchand <david.march...@redhat.com> wrote: > > On Tue, Apr 21, 2020 at 3:54 PM Jerin Jacob <jerinjac...@gmail.com> wrote: > > > > On Tue, Apr 21, 2020 at 6:23 PM David Marchand > > <david.march...@redhat.com> wrote: > > > > > > On Sun, Apr 19, 2020 at 12:03 PM <jer...@marvell.com> wrote: > > > > > > > > From: Sunil Kumar Kori <sk...@marvell.com> > > > > > > > > Example commands to run UT and check the traces with babeltrace viewer. > > > > > > > > - Delete the existing /root/dpdk-traces/ directory if needed. > > > > > sudo rm -rf /root/dpdk-traces/ > > > > > > > > - Start the dpdk-test > > > > > sudo ./build/app/test/dpdk-test -c 0x3 - --trace=.* > > > > > > Unit tests are there to do sanity/non regression checks. > > > Here you describe a manual test procedure. > > > Could it work in the CI for the functional parts? > > > > Except for test_trace_mode() all test cases run with trace disabled. > > The trace memory will be allocated per thread IFF the trace is enabled. > > I would like to disable trace by default and enable only if " --trace=.*" > > provided. Not sure what is the next step here? > > > > 1) Add this test case in app/test/meson.build under "fast_tests" ? > > 2) Can CI start with --trace=? If yes, is it required? what would the > > integration challenges like > > filesystem need for storing the traces etc. > > > > Thoughts? > > - At least putting in fast_tests will get us basic checks on the rte_trace_ > API.
I will add UT and performance test cases to meson UT in v7. > > - Running with the traces on and checking against a reference (but > ignoring the timestamps) would be nice. > I did not think this through. Probably we need to install the babeltrace app in CI to check the sanity of the trace. I think, we can take it up later. > > > > > > diff --git a/app/test/test_trace_register.c > > > > b/app/test/test_trace_register.c > > > > new file mode 100644 > > > > index 000000000..1735149a2 > > > > --- /dev/null > > > > +++ b/app/test/test_trace_register.c > > > > @@ -0,0 +1,17 @@ > > > > +/* SPDX-License-Identifier: BSD-3-Clause > > > > + * Copyright(C) 2020 Marvell International Ltd. > > > > + */ > > > > +#define RTE_TRACE_POINT_REGISTER_SELECT /* Select trace point register > > > > macros */ > > > > > > I noticed this comment is copy/pasted in all trace points "register" code. > > > This does not help. > > > > > > The documentation on the other side does not describe this macro which > > > is quite important for developers adding tracepoints to their code > > > (Thomas already commented about it on the doc patch). > > > > > > We have the following comments in the header file. > > Let me know, what else you would like to mention here? > > > > /** > > * Macro to select rte_trace_point_emit_* definition for trace register > > function > > * > > * rte_trace_point_emit_* emits different definitions for trace function. > > * Application must define RTE_TRACE_POINT_REGISTER_SELECT before including > > * rte_trace_point.h in the C file where RTE_TRACE_POINT_REGISTER used. > > * > > * @see RTE_TRACE_POINT_REGISTER > > */ > > #define RTE_TRACE_POINT_REGISTER_SELECT > > > > Maybe summarize this in doc/guides/prog_guide/trace_lib.rst: > > the trace function and its name to be similar. However, it is recommended to > have a similar name for a better naming convention. > > +The special macro ``RTE_TRACE_POINT_REGISTER_SELECT`` must be defined before > +including the header for the tracepoint registration to work properly. > + > The user must register the tracepoint before the ``rte_eal_init`` invocation. > The user can use the ``RTE_INIT`` construction scheme to achieve the same. Yes. I planned to add the same in .rst based on Thomas's comment. > > > -- > David Marchand >