From 96c77a718c48399b5bf9ac81922249381db5ba7f 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.common.diag.rc.userdebug | 15 +++++++++++++++ sepolicy/file.te | 2 ++ sepolicy/file_contexts | 3 +++ sepolicy/init.te | 5 +++++ 4 files changed, 25 insertions(+) diff --git a/init.common.diag.rc.userdebug b/init.common.diag.rc.userdebug index 08d063ec9..6a074bc73 100644 --- a/init.common.diag.rc.userdebug +++ b/init.common.diag.rc.userdebug @@ -134,3 +134,18 @@ on property:sys.logger.bluetooth=true on property:sys.logger.bluetooth=false setprop persist.service.bdroid.snooplog false setprop persist.service.bdroid.fwsnoop 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/file.te b/sepolicy/file.te index 65e94adb7..1cf90f0ef 100644 --- a/sepolicy/file.te +++ b/sepolicy/file.te @@ -36,6 +36,8 @@ type sysfs_video, sysfs_type, fs_type; type sysfs_wifi, sysfs_type, fs_type, mlstrustedobject; type sysfs_diag, fs_type, sysfs_type; type sysfs_scsi_devices_0000, sysfs_type, fs_type; +# b/70518189 vDSO experiments +type sysfs_vdso, fs_type, sysfs_type; # debugfs type debugfs_msm_core, debugfs_type, fs_type; diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index 60fd33b04..03d3ec356 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -202,3 +202,6 @@ # hidraw dynamic sensor /dev/hidraw[0-9]+ u:object_r:sensors_device:s0 + +# b/70518189 vDSO experiments +/sys/module/vdso/parameters u:object_r:sysfs_vdso:s0 diff --git a/sepolicy/init.te b/sepolicy/init.te index df9d146e2..4104ae356 100644 --- a/sepolicy/init.te +++ b/sepolicy/init.te @@ -10,3 +10,8 @@ allow init sysfs_type:lnk_file read; allow init firmware_file:dir mounton; allow init persist_file:dir mounton; allow init userdata_block_device:blk_file { write }; + +# b/70518189 vDSO experiments +userdebug_or_eng(` +allow init sysfs_vdso:file w_file_perms; +')