From 2c41fdac3207d6e2c67efda05e9e5761d577daa4 Mon Sep 17 00:00:00 2001 From: Piotr Klasa Date: Thu, 5 Dec 2024 12:05:19 +0100 Subject: [PATCH 1/3] Add Proc Vendor Sched Sepolicy Fix Bug: 361092565 Test: m atest && atest-dev com.google.android.selinux.pts.SELinuxTest#scanAvcDeniedLogRightAfterReboot Test: adb shell dmesg | grep proc_vendor_sched ; adb logcat -d | grep proc_vendor_sched Evidences 12-02 19:31:34.952 279 279 W init : type=1400 audit(0.0:7): avc: denied { associate } for name="uclamp_min" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.956 279 279 W init : type=1400 audit(0.0:8): avc: denied { associate } for name="prefer_idle" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.956 279 279 W init : type=1400 audit(0.0:9): avc: denied { associate } for name="uclamp_min" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.956 279 279 W init : type=1400 audit(0.0:10): avc: denied { associate } for name="prefer_idle" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.956 279 279 W init : type=1400 audit(0.0:11): avc: denied { associate } for name="uclamp_min" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.956 279 279 W init : type=1400 audit(0.0:12): avc: denied { associate } for name="prefer_idle" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.960 279 279 W init : type=1400 audit(0.0:13): avc: denied { associate } for name="prefer_idle" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.960 279 279 W init : type=1400 audit(0.0:14): avc: denied { associate } for name="uclamp_min" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.960 279 279 W init : type=1400 audit(0.0:15): avc: denied { associate } for name="prefer_idle" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 12-02 19:31:34.960 279 279 W init : type=1400 audit(0.0:16): avc: denied { associate } for name="uclamp_min" scontext=u:object_r:proc_vendor_sched:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 Flag: EXEMPT bugfix Change-Id: Iad58e23abc1a7e27c3f5f4130e50d7e4aa0b6cf8 --- performance/sepolicy/proc_vendor_sched.te | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 performance/sepolicy/proc_vendor_sched.te 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; From 842b86dcc1353033d1091f4148fa68cdb33962e5 Mon Sep 17 00:00:00 2001 From: Dmitry Skiba Date: Fri, 6 Dec 2024 22:09:53 +0000 Subject: [PATCH 2/3] Add amm experiment. See go/pixel-perf-amm-experiment for more info. Bug: 365855872 Test: build/flash; set .Perf__amm_experiment=true, observe auto_migration_margins_enable value changing 1->0; set .Perf__amm_experiment="", observe the value changing 0->1 Flag: NONE controlled by Mendel instead Change-Id: I02b98e3601a0564929acb73250e2e943664bc80a Signed-off-by: Dmitry Skiba --- performance/experiments/amm/Android.bp | 10 +++++++++ performance/experiments/amm/amm.mk | 1 + .../experiments/amm/pixel-amm-experiment.rc | 21 +++++++++++++++++++ performance/experiments/experiments.mk | 1 + 4 files changed, 33 insertions(+) create mode 100644 performance/experiments/amm/Android.bp create mode 100644 performance/experiments/amm/amm.mk create mode 100644 performance/experiments/amm/pixel-amm-experiment.rc 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 From 2d6b42c48746b28adc80557fcf701fddbbbd2079 Mon Sep 17 00:00:00 2001 From: Chintan Pandya Date: Thu, 5 Dec 2024 18:21:02 +0000 Subject: [PATCH 3/3] Remove code that just re-enables IRQ and GIA events These events are already enabled from kernel. Bug: 378928822 Test: Verified that trace functionality works as expected. Flag: EXEMPT, just a clean up in init rc Change-Id: I9e50e3d86e914b0db8633a1ae7287875b4df9838 Signed-off-by: Chintan Pandya --- interrupts/init.interrupts.rc | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) 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