From bb267fa16f8a1a13283575a4e89b880cd44a00b2 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Thu, 14 Dec 2017 12:23:05 -0800 Subject: [PATCH] STOPSHIP: sys.vdso reflector for experiments On userdebug or eng, permit vdso to be enabled or disabled at will to manage performance experiments on the dogfood population. ro.debuggable=1 -> permit sys.vdso to maintain an influence over vdso sys.vdso=false -> 32 and 64 bit vdso disabled sys.vdso=32 -> 64 bit vdso disabled sys.vdso=64 -> 32 bit vdso disabled sys.vdso= -> 32 and 64 bit vdso enabled NB: sys.vdso set to any other value will default to vdso enabled. Test: manual, bionic-benchmarks --bionic_xml=vdso.xml to confirm. Bug: 70518189 Change-Id: I839feff206a1404f228a5bdf35fb0c392fd8974a --- init.hardware.diag.rc.userdebug | 15 +++++++++++++++ sepolicy/vendor/file.te | 2 ++ sepolicy/vendor/file_contexts | 3 +++ sepolicy/vendor/init.te | 5 +++++ 4 files changed, 25 insertions(+) diff --git a/init.hardware.diag.rc.userdebug b/init.hardware.diag.rc.userdebug index c0536379..0366ee48 100644 --- a/init.hardware.diag.rc.userdebug +++ b/init.hardware.diag.rc.userdebug @@ -401,3 +401,18 @@ on property:persist.bluetooth.btsnoopenable=true on property:persist.bluetooth.btsnoopenable=false setprop persist.service.bdroid.soclog false + +# b/70518189 vDSO experiments +on property:sys.vdso=* + write /sys/module/vdso/parameters/enable_32 1 + write /sys/module/vdso/parameters/enable_64 1 + +on property:sys.vdso=false + write /sys/module/vdso/parameters/enable_32 0 + write /sys/module/vdso/parameters/enable_64 0 + +on property:sys.vdso=64 + write /sys/module/vdso/parameters/enable_32 0 + +on property:sys.vdso=32 + write /sys/module/vdso/parameters/enable_64 0 diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te index 118fbd16..f503f7a5 100644 --- a/sepolicy/vendor/file.te +++ b/sepolicy/vendor/file.te @@ -15,6 +15,8 @@ type sysfs_timestamp_switch, sysfs_type, fs_type; type sysfs_touch, sysfs_type, fs_type; type sysfs_usb_c, sysfs_type, fs_type; type sysfs_usb_device, sysfs_type, fs_type; +# b/70518189 vDSO experiments +type sysfs_vdso, fs_type, sysfs_type; type debugfs_clk, debugfs_type, fs_type; type debugfs_ion, debugfs_type, fs_type; diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index 11839321..26078d08 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -282,3 +282,6 @@ /metadata u:object_r:rootfs:s0 /metadata/.* u:object_r:vold_data_file:s0 + +# b/70518189 vDSO experiments +/sys/module/vdso/parameters u:object_r:sysfs_vdso:s0 diff --git a/sepolicy/vendor/init.te b/sepolicy/vendor/init.te index fe41cf49..5a8db16a 100644 --- a/sepolicy/vendor/init.te +++ b/sepolicy/vendor/init.te @@ -15,3 +15,8 @@ allow init boot_block_device:lnk_file relabelto; allow init persist_block_device:lnk_file relabelto; dontaudit init kernel:system module_request; + +# b/70518189 vDSO experiments +userdebug_or_eng(` +allow init sysfs_vdso:file w_file_perms; +')