gs-common:dumpstate: Dump long irq metrics, resume latency metrics at bugreport
Create pixel_metrics to support bugreport for metrics
Bug: 227809911
Bug: 232541623
Test: Test: "adb bugreport" includes metrics capture.
Change-Id: If62a53b5ffa643c37c287f8ba0319de1d6b07529
Signed-off-by: Ziyi Cui <ziyic@google.com>
diff --git a/pixel_metrics/Android.bp b/pixel_metrics/Android.bp
new file mode 100644
index 0000000..3ad3ff4
--- /dev/null
+++ b/pixel_metrics/Android.bp
@@ -0,0 +1,10 @@
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+sh_binary {
+ name: "dump_pixel_metrics.sh",
+ src: "dump_pixel_metrics.sh",
+ vendor: true,
+ sub_dir: "dump",
+}
diff --git a/pixel_metrics/dump_pixel_metrics.sh b/pixel_metrics/dump_pixel_metrics.sh
new file mode 100644
index 0000000..229f618
--- /dev/null
+++ b/pixel_metrics/dump_pixel_metrics.sh
@@ -0,0 +1,6 @@
+#!/vendor/bin/sh
+echo "Long running IRQ metrics"
+cat /sys/kernel/metrics/irq/long_irq_metrics
+echo "Resume latency metrics"
+cat /sys/kernel/metrics/resume_latency/resume_latency_metrics
+
diff --git a/pixel_metrics/pixel_metrics.mk b/pixel_metrics/pixel_metrics.mk
new file mode 100644
index 0000000..41e027d
--- /dev/null
+++ b/pixel_metrics/pixel_metrics.mk
@@ -0,0 +1,3 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/pixel_metrics/sepolicy
+
+PRODUCT_PACKAGES += dump_pixel_metrics.sh
diff --git a/pixel_metrics/sepolicy/device.te b/pixel_metrics/sepolicy/device.te
new file mode 100644
index 0000000..63640e3
--- /dev/null
+++ b/pixel_metrics/sepolicy/device.te
@@ -0,0 +1,2 @@
+#vendor-metrics
+type sysfs_vendor_metrics, fs_type, sysfs_type;
diff --git a/pixel_metrics/sepolicy/dump_pixel_metrics.te b/pixel_metrics/sepolicy/dump_pixel_metrics.te
new file mode 100644
index 0000000..681670e
--- /dev/null
+++ b/pixel_metrics/sepolicy/dump_pixel_metrics.te
@@ -0,0 +1,5 @@
+pixel_bugreport(dump_pixel_metrics)
+
+#vendor-metrics
+r_dir_file(dump_pixel_metrics, sysfs_vendor_metrics)
+allow dump_pixel_metrics vendor_toolbox_exec:file execute_no_trans;
diff --git a/pixel_metrics/sepolicy/file_contexts b/pixel_metrics/sepolicy/file_contexts
new file mode 100644
index 0000000..1b5b11f
--- /dev/null
+++ b/pixel_metrics/sepolicy/file_contexts
@@ -0,0 +1 @@
+/vendor/bin/dump/dump_pixel_metrics\.sh u:object_r:dump_pixel_metrics_exec:s0
diff --git a/pixel_metrics/sepolicy/genfs_contexts b/pixel_metrics/sepolicy/genfs_contexts
new file mode 100644
index 0000000..36882aa
--- /dev/null
+++ b/pixel_metrics/sepolicy/genfs_contexts
@@ -0,0 +1,3 @@
+#vendor-metrics
+genfscon sysfs /kernel/metrics/resume_latency/resume_latency_metrics u:object_r:sysfs_vendor_metrics:s0
+genfscon sysfs /kernel/metrics/irq/long_irq_metrics u:object_r:sysfs_vendor_metrics:s0