Add GPU work metrics processing

Add gpu_work eBPF program that defines the format of and processes the
power/gpu_work_period tracepoint.

Add code to gpuservice that attaches the eBPF program and reports the
GPU time in frequency state stats via `dumpsys gpu --gpuwork`.

Bug: b/213577594
Change-Id: I2774909e8a375a8b20e6fb55f8069ecdbe650ef2
diff --git a/services/gpuservice/GpuService.h b/services/gpuservice/GpuService.h
index 409084b..d7313d1 100644
--- a/services/gpuservice/GpuService.h
+++ b/services/gpuservice/GpuService.h
@@ -28,6 +28,10 @@
 
 namespace android {
 
+namespace gpuwork {
+class GpuWork;
+}
+
 class GpuMem;
 class GpuStats;
 class GpuMemTracer;
@@ -77,6 +81,7 @@
      * Attributes
      */
     std::shared_ptr<GpuMem> mGpuMem;
+    std::shared_ptr<gpuwork::GpuWork> mGpuWork;
     std::unique_ptr<GpuStats> mGpuStats;
     std::unique_ptr<GpuMemTracer> mGpuMemTracer;
     std::mutex mLock;