From: "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
To: rostedt@goodmis.org
Cc: linux-trace-devel@vger.kernel.org,
"Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
Subject: [PATCH v7 00/32] Start KernelShark v2 transformation
Date: Fri, 11 Dec 2020 16:44:39 +0200 [thread overview]
Message-ID: <20201211144511.575346-1-y.karadz@gmail.com> (raw)
In this patch-set we are starting the introduction of the changes
in the C API of libkshark. The goal of this transformation is to
turn KernelShark into a general purpose toolkit for analysis of
tracing data that is no longer strongly coupled to the Ftrace/trace-cmd
data format. At the end of the transformation KernelShark will be able
to merge and simultaneously visualize data from different tracers,
recorded in different data formats. It will also significantly extend
the possibilities for user customization.
This patch-set transforms the way KernelShark processes the raw tracing
data. Later, in a consecutive patch-sets we will introduce the changes
in the visualization instruments and in the KernelShark GUI itself.
Changes in v7:
* Patches 1-5 are new, but these are only infrastructureal changes
that have no functional effects on the API.
- License info is added.
- README is updated.
- KernelShark now builds and links against the stand-alone versions
of libtraceevent and libtracefs.
Changes in v6:
* The patches from the "OpenGL wrapper" patch-set (already reviewed by
Steven) have been added here (patches 21-24).
* Patches 25-27 are new, but these are only infrastructureal changes
that have no functional effects on the API.
Changes in v5:
* Only minor modifications addressing issues pointed out by Steven in
his reviews of v4.
Changes in v4:
* The integer data format identifier is replaced with a string value
that gets registered by the readout plugin.
* Plus several small modifications addressing the issues pointed out
by Steven.
Changes in v3.
This version contains number of small modifications addressing the
issues pointed out by Steven in his review. However, it also contains
the following major changes:
* The session context (kshark_context) holds a pointer to unspecified
data processing interface (void *interface). This will allow to
easily introduce new versions of this interface in the future, while
keeping the interface that we have now for backward compatibility.
The necessary type checking when using the interface made the helper
functions wrapping the corresponding methods of the interface
relatively complicated, so the implementations have been moved from
the header to the source file.
* A more sophisticated management of the Data stream descriptors that
can handle the case when Data streams are constantly added and
removed has been implemented. The design for this change was
suggested by Steven in his review.
Changes in v2:
* Tried to address review comments for "kernel-shark: Introduce libkshark-hash"
* The huge patch "kernel-shark: Integrate the stream definitions with
the C API" in the previous version is now split into 8 smaller patches.
The last of these 8 new patches (kernel-shark: Complete the stream
integration) is still a bit entangled. I can try to further break this
patch in future versions of the patch-set, if this is needed.
Yordan Karadzhov (1):
kernel-shark: Add "github Actions" workflow
Yordan Karadzhov (VMware) (31):
kernel-shark: Add license information
kernel-shark: Change the CMake minimum version required
kernel-shark: Use libtraceevent and libtracefs
kernel-shark: Update README
kernel-shark: Define build target for JSONC
kernel-shark: Use only signed types in kshark_entry
kernel-shark: Add stream_id to kshark_entry
kernel-shark: Introduce libkshark-hash
kernel-shark: Introduce Data streams
kernel-shark: Rename static methods in libkshark
kernel-shark: Add basic methods for Data streams
kernel-shark: Housekeeping before implementing stream interface
kernel-shark: Add stream interface for trace-cmd data
kernel-shark: Start introducing KernelShark 2.0
kernel-shark: Start using data streams
kernel-shark: Remove dead code
kernel-shark: Redesign the plugin interface
kernel-shark: Complete the stream integration
kernel-shark: Provide merging of multiple data streams
kernel-shark: Integrate the stream definitions with data model
kernel-shark: Use only signed types for model defs
kernel-shark: Add ksmodel_get_bin()
kernel-shark: Protect ksmodel_set_in_range_bining()
kernel-shark: Add methods for time calibration
kernel-shark: Integrate streams with libkshark-configio
kernel-shark: Add support for drawing text
kernel-shark: Make GLUT optional dependency
kernel-shark: Add ksplot_draw_polyline()
kernel-shark: Optimize ksplot_draw_polygon()
kernel-shark: Do not use the ARRAY_SIZE macro
kernel-shark: Add basic infrastructure for testing
.github/workflows/main.yml | 61 +
CMakeLists.txt | 25 +-
Documentation/doxygen/dox_config | 1 +
LICENSES/GPL-2.0 | 359 +++
LICENSES/LGPL-2.1 | 503 +++
README | 129 +-
build/FindJSONC.cmake | 70 +-
build/FindTraceCmd.cmake | 53 +-
build/FindTraceEvent.cmake | 75 +
build/FindTraceFS.cmake | 75 +
build/cmake_clean.sh | 4 +
build/deff.h.cmake | 15 +-
examples/CMakeLists.txt | 34 +-
examples/configio.c | 20 +-
examples/datafilter.c | 67 +-
examples/datahisto.c | 38 +-
examples/dataload.c | 28 +-
examples/multibufferload.c | 53 +
src/CMakeLists.txt | 18 +-
src/libkshark-collection.c | 121 +-
src/libkshark-configio.c | 1208 +++++--
src/libkshark-hash.c | 239 ++
src/libkshark-model.c | 154 +-
src/libkshark-model.h | 55 +-
src/libkshark-plot.c | 317 +-
src/libkshark-plot.h | 73 +
src/libkshark-plugin.c | 658 +++-
src/libkshark-plugin.h | 294 +-
src/libkshark-tepdata.c | 1914 ++++++++++++
src/libkshark-tepdata.h | 112 +
src/libkshark.c | 2619 +++++++++-------
src/libkshark.h | 704 ++++-
src/stb_truetype.h | 5011 ++++++++++++++++++++++++++++++
tests/CMakeLists.txt | 14 +
tests/libkshark-tests.cpp | 48 +
35 files changed, 13177 insertions(+), 1992 deletions(-)
create mode 100644 .github/workflows/main.yml
create mode 100644 LICENSES/GPL-2.0
create mode 100644 LICENSES/LGPL-2.1
create mode 100644 build/FindTraceEvent.cmake
create mode 100644 build/FindTraceFS.cmake
create mode 100644 examples/multibufferload.c
create mode 100644 src/libkshark-hash.c
create mode 100644 src/libkshark-tepdata.c
create mode 100644 src/libkshark-tepdata.h
create mode 100644 src/stb_truetype.h
create mode 100644 tests/CMakeLists.txt
create mode 100644 tests/libkshark-tests.cpp
--
2.25.1
next reply other threads:[~2020-12-11 15:14 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-11 14:44 Yordan Karadzhov (VMware) [this message]
2020-12-11 14:44 ` [PATCH v7 01/32] kernel-shark: Add license information Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 02/32] kernel-shark: Change the CMake minimum version required Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 03/32] kernel-shark: Use libtraceevent and libtracefs Yordan Karadzhov (VMware)
2020-12-11 19:38 ` Steven Rostedt
2020-12-11 14:44 ` [PATCH v7 04/32] kernel-shark: Update README Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 05/32] kernel-shark: Define build target for JSONC Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 06/32] kernel-shark: Use only signed types in kshark_entry Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 07/32] kernel-shark: Add stream_id to kshark_entry Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 08/32] kernel-shark: Introduce libkshark-hash Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 09/32] kernel-shark: Introduce Data streams Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 10/32] kernel-shark: Rename static methods in libkshark Yordan Karadzhov (VMware)
2020-12-11 14:44 ` [PATCH v7 11/32] kernel-shark: Add basic methods for Data streams Yordan Karadzhov (VMware)
2020-12-11 15:07 [PATCH v7 00/32] Start KernelShark v2 transformation Yordan Karadzhov (VMware)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201211144511.575346-1-y.karadz@gmail.com \
--to=y.karadz@gmail.com \
--cc=linux-trace-devel@vger.kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.