X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftracing%2FREADME.md;fp=src%2Fceph%2Fsrc%2Ftracing%2FREADME.md;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=32ec17f4d9ff48de32fbeb8d1b3c21a51b8a35f7;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/tracing/README.md b/src/ceph/src/tracing/README.md deleted file mode 100644 index 32ec17f..0000000 --- a/src/ceph/src/tracing/README.md +++ /dev/null @@ -1,51 +0,0 @@ -Installation -============ - -The LTTng libraries that ship with Ubuntu 12.04 have been very buggy, and the -generated header files using `lttng-gen-tp` have needed to be fixed just to -compile in the Ceph tree. The packages available in Ubuntu 14.04 seem to work -alright, and for older versions please install LTTng from the LTTng PPA. - - https://launchpad.net/~lttng/+archive/ppa - -Then install as normal - - apt-get install lttng-tools liblttng-ust-dev - -Add/Update Provider -=================== - -## Create tracepoint definition file - -Add tracepoint definitions for the provider into a `.tp` file. Documentation -on defining a tracepoint can be found in `man lttng-ust`. By convention files -are named according to the logical sub-system they correspond to (e.g. -`mutex.tp`, `pg.tp`). And add a C source file to be compiled into the tracepoint -provider shared object, in which `TRACEPOINT_DEFINE` should be defined. See -[LTTng document](http://lttng.org/docs/#doc-dynamic-linking) for details. -Place the `.tp` and the `.c` files into the `src/tracing` directory -and modify the CMake file `src/tracing/CMakeLists.txt` accordingly. - -Function Instrumentation -======================== -Ceph supports instrumentation using GCC's `-finstrument-functions` flag. -Supported CMake flags are: - -* `-DWITH_OSD_INSTRUMENT_FUNCTIONS=ON`: instrument OSD code - -Note that this instrumentation adds an extra function call on each function entry -and exit of Ceph code. This option is currently only supported with GCC. Using it -with Clang has no effect. - -The only function tracing implementation at the moment is done using LTTng UST. -In order to use it, Ceph needs to be configured with LTTng using `-DWITH_LTTNG=ON`. -[TraceCompass](http://www.tracecompass.org) can be used to generate flame -charts/graphs and other metrics. - -It is also possible to use [libbabeltrace](http://diamon.org/babeltrace/#docs) -to write custom analysis. The entry and exit tracepoints are called -`lttng_ust_cyg_profile:func_enter` and `lttng_ust_cyg_profile:func_exit` -respectively. The payload variable `addr` holds the address of the function -called and the payload variable `call_site` holds the address where it is called. -`nm` can be used to resolve function addresses (`addr` to function name). -