-
Notifications
You must be signed in to change notification settings - Fork 37
Developers
C code for the libgputop.so server-side code
-
gputop-string.c
- utility api for concatenating formatted text -
gputop-list.c
- linux kernel style linked list api -
gputop-util.c
- array utility api + malloc wrapper + a few io utilities -
gputop-cpu.c
- for /proc cpu stats -
gputop-hash-table.c
- what it says on the tin -
gputop-ioctl.c
- we wrap ioctl() to track GEM ctx handles -
gputop-ncurses.c
- a left over filename this doesn't use ncurses any more. This provides the main entry point for the gputop server code which is linked as a shared library and the entry point is an attribute((constructor)) symbol in here -
gputop-log.c
- logging api -
gputop-gl.c
- for GL profiling, this deals with tracking contexts and surfaces and wrapping interesting entry GL/GLX/EGL points. -
gputop-main.c
- this is linked into a frontend executable for setting environment variables (note the rest of the gputop-server code is not directly linked with this executable, it's linked into a libgputop.so library. After setting environment variables this launches an application with an LD_PRELOAD which will load the rest of the server code. For system-wide monitoring it runs a dummy gputop-system program just to be consistent with profiling a single application. -
gputop.pb-c.c
- Generated Protobuf code used for the client/server RPC api -
gputop-server.c
- deals with listening for clients to connect, processing RPC requests and forwarding replies and metrics. -
gputop-system.c
- dummy program for gputop-main.c to run, only for consistency, when monitoring the system -
gputop-debugfs.c
- debugfs utilities -
gputop-perf.c
- This is where most of the code for interacting with the kernel is, to interact with the i915-perf/DAPC interface.
Shared code for handling counter normalization. Better suited to C than Javascript.
-
gputop-client-c.c
- The entry points into the client-side C code shared by all clients -
gputop-oa-counters.c
- given two OA reports at a time, this decodes the OA report format and drives counter normilzation. -
gputop-client-c-runtime.h
- the interface between the client-c code and the environment it's embedded (e.g. node, or the browser via Emscripten.) This would need adapting to embed within a Python C module. gputop-client-c-runtime.c - some shared (between different runtime environments) logging utilities -
gputop-client-c.js
- Node.js module's 'main' file -
gputop-client-c-bindings.cpp
- Node.js Javascript bindings (V8 bindings) for all client-side C entry points -
gputop-client-c-bindings.h
- Some types for the Node.js bindings -
gputop-client-c-runtime-bindings.cpp
- Implementation of the runtime interface for Node.js -
gputop-web-lib.js
- Implementation of the runtime interface for the browser using Emscripten -
Makefile.emscripten
- rules for compiling this source using the Emscripten toolchain -
oa-bdw.c
- autogenerated code for normalizing OA counters. -
oa-hsw.c
-
oa-skl.c
-
oa-chv.c