Snap for 12765415 from 81762fe2188a8d589f7c1d6c781f382088061e42 to 25Q1-release

Change-Id: I1dd5ea7669dc2329f93bd95f23c3283823bf5163
diff --git a/interrupts/init.interrupts.rc b/interrupts/init.interrupts.rc
index 9492fdc..52fcaa5 100644
--- a/interrupts/init.interrupts.rc
+++ b/interrupts/init.interrupts.rc
@@ -1,23 +1,16 @@
 on init
     # Create the directory for the trace instance during early init
-    mkdir /sys/kernel/tracing/instances/irq_gia_google 0755 root root
+    chmod 666 /sys/kernel/tracing/instances/irq_gia_google
+    chmod 666 /sys/kernel/tracing/instances/irq_gia_google/trace
     chown system system /sys/kernel/tracing/instances/irq_gia_google
     chown system system /sys/kernel/tracing/instances/irq_gia_google/trace
 
-    # Enable gia events
-    write /sys/kernel/tracing/instances/irq_gia_google/events/irq_gia/enable 1
-
     # There are some very high frequency IRQ events happening all the time. Tracing
     # them is not absolute necessity, but a flood of them is noise for more interesting
     # events that we want to capture. All these high frequency IRQs have virq < 11.
     write /sys/kernel/tracing/instances/irq_gia_google/events/irq/filter "irq > 11"
-    write /sys/kernel/tracing/instances/irq_gia_google/events/irq/irq_handler_entry/enable 1
-    write /sys/kernel/tracing/instances/irq_gia_google/events/irq/irq_handler_exit/enable 1
 
     # Keep the buffer size small. This size is practically enough for debug purpose.
     # Having low size helps because this entire buffer gets dumped in bugreport.
     # Having a large size can impact bugreport size and time it takes to pack/unpack.
     write /sys/kernel/tracing/instances/irq_gia_google/buffer_size_kb 512
-
-    # Go!
-    write /sys/kernel/tracing/instances/irq_gia_google/tracing_on 1
diff --git a/performance/experiments/amm/Android.bp b/performance/experiments/amm/Android.bp
new file mode 100644
index 0000000..a1c2e3b
--- /dev/null
+++ b/performance/experiments/amm/Android.bp
@@ -0,0 +1,10 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+prebuilt_etc {
+    name: "pixel-amm-experiment.rc",
+    src: "pixel-amm-experiment.rc",
+    vendor: true,
+    sub_dir: "init",
+}
diff --git a/performance/experiments/amm/amm.mk b/performance/experiments/amm/amm.mk
new file mode 100644
index 0000000..84f2b9e
--- /dev/null
+++ b/performance/experiments/amm/amm.mk
@@ -0,0 +1 @@
+PRODUCT_PACKAGES += pixel-amm-experiment.rc
diff --git a/performance/experiments/amm/pixel-amm-experiment.rc b/performance/experiments/amm/pixel-amm-experiment.rc
new file mode 100644
index 0000000..2d724f2
--- /dev/null
+++ b/performance/experiments/amm/pixel-amm-experiment.rc
@@ -0,0 +1,21 @@
+# Activate DISABLE_AMM hint.
+service pixel-amm-experiment-activate /vendor/bin/sendhint -m DISABLE_AMM
+    disabled
+    oneshot
+
+# Deactivate DISABLE_AMM hint.
+service pixel-amm-experiment-deactivate /vendor/bin/sendhint -m DISABLE_AMM -e 0
+    disabled
+    oneshot
+
+# AMM experiment (go/pixel-perf-amm-experiment).
+on property:vendor.perf.allow_experiments=1 && \
+    property:vendor.pixel.system.phenotype.Perf__amm_experiment=true
+    setprop vendor.powerhal.amm_enabled false
+    start pixel-amm-experiment-activate
+
+# Rampdown of the experiment.
+on property:vendor.perf.allow_experiments=1 && \
+    property:vendor.pixel.system.phenotype.Perf__amm_experiment=""
+    setprop vendor.powerhal.amm_enabled ""
+    start pixel-amm-experiment-deactivate
diff --git a/performance/experiments/experiments.mk b/performance/experiments/experiments.mk
index b14b823..3fbaa52 100644
--- a/performance/experiments/experiments.mk
+++ b/performance/experiments/experiments.mk
@@ -4,3 +4,4 @@
 
 include device/google/gs-common/performance/experiments/kswapd/kswapd.mk
 include device/google/gs-common/performance/experiments/apf/apf.mk
+include device/google/gs-common/performance/experiments/amm/amm.mk
diff --git a/performance/sepolicy/proc_vendor_sched.te b/performance/sepolicy/proc_vendor_sched.te
new file mode 100644
index 0000000..dc78c75
--- /dev/null
+++ b/performance/sepolicy/proc_vendor_sched.te
@@ -0,0 +1,2 @@
+#Vendor Sched
+allow proc_vendor_sched proc:filesystem associate;