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 @@ PRODUCT_PACKAGES += pixel-experiments-recovery.sh 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;