diff --git a/boost.c b/boost.c index d68db19e185c6508433412c5e7580fa09916e303..d090b7656379df5c2cea2561eb37c244cd3b7daf 100644 --- a/boost.c +++ b/boost.c @@ -9,59 +9,74 @@ #include <trace/events/sched.h> unsigned int sysctl_sched_boost;unsigned int sched_boost_type;enum sched_boost_policy boost_policy;static enum sched_boost_policy z61af0b86f7= -SCHED_BOOST_NONE;static DEFINE_MUTEX(z6e41ffbf4c);static void za33e3d1e60(int -z3e92d20441){if(z3e92d20441==NO_BOOST||z3e92d20441==RESTRAINED_BOOST){ -boost_policy=SCHED_BOOST_NONE;return;}if(z61af0b86f7){boost_policy=z61af0b86f7; -return;}if(hmp_capable()){boost_policy=SCHED_BOOST_ON_BIG;return;}boost_policy= -SCHED_BOOST_ON_ALL;}static bool z9fe78fc867(int z3e92d20441){return z3e92d20441 ->=RESTRAINED_BOOST_DISABLE&&z3e92d20441<=RESTRAINED_BOOST;}static void -z1930bdc4b4(void){}static void z3d22747cee(void){core_ctl_set_boost(true); -walt_enable_frequency_aggregation(true);}static void z50f061c8fa(void){ -core_ctl_set_boost(false);walt_enable_frequency_aggregation(false);}static void -zc6ee839520(void){update_cgroup_boost_settings();sched_task_filter_util= +SCHED_BOOST_NONE;static DEFINE_MUTEX(z6e41ffbf4c); +#if defined(CONFIG_UCLAMP_TASK_GROUP) +void walt_init_sched_boost(struct task_group*zf1cad98b51){zf1cad98b51-> +sched_boost_no_override=false;zf1cad98b51->sched_boost_enabled=true;zf1cad98b51 +->colocate=false;zf1cad98b51->colocate_update_disabled=false;}static void +update_cgroup_boost_settings(void){struct task_group*zf1cad98b51;rcu_read_lock() +;list_for_each_entry_rcu(zf1cad98b51,&task_groups,list){if(zf1cad98b51-> +sched_boost_no_override)continue;zf1cad98b51->sched_boost_enabled=false;} +rcu_read_unlock();}static void restore_cgroup_boost_settings(void){struct +task_group*zf1cad98b51;rcu_read_lock();list_for_each_entry_rcu(zf1cad98b51,& +task_groups,list)zf1cad98b51->sched_boost_enabled=true;rcu_read_unlock();} +#else +static void update_cgroup_boost_settings(void){}static void +restore_cgroup_boost_settings(void){} +#endif +static void za33e3d1e60(int z3e92d20441){if(z3e92d20441==NO_BOOST||z3e92d20441== +RESTRAINED_BOOST){boost_policy=SCHED_BOOST_NONE;return;}if(z61af0b86f7){ +boost_policy=z61af0b86f7;return;}if(hmp_capable()){boost_policy= +SCHED_BOOST_ON_BIG;return;}boost_policy=SCHED_BOOST_ON_ALL;}static bool +z9fe78fc867(int z3e92d20441){return z3e92d20441>=RESTRAINED_BOOST_DISABLE&& +z3e92d20441<=RESTRAINED_BOOST;}static void z1930bdc4b4(void){}static void +z3d22747cee(void){core_ctl_set_boost(true);walt_enable_frequency_aggregation( +true);}static void z50f061c8fa(void){core_ctl_set_boost(false); +walt_enable_frequency_aggregation(false);}static void zc6ee839520(void){ +update_cgroup_boost_settings();sched_task_filter_util= sysctl_sched_min_task_util_for_boost;}static void z5e55108518(void){ sched_task_filter_util=sysctl_sched_min_task_util_for_colocation; restore_cgroup_boost_settings();}static void z5b02b95569(void){ walt_enable_frequency_aggregation(true);}static void z1c89b1952d(void){ walt_enable_frequency_aggregation(false);}struct zde3b1af216{int z2c102704c8; void(*z6e3a1d0a71)(void);void(*zc8253195c8)(void);};static struct zde3b1af216 -za01af1d7f0[]={[NO_BOOST]={.z2c102704c8=(0x1edd+254-0x1fdb),.z6e3a1d0a71= +za01af1d7f0[]={[NO_BOOST]={.z2c102704c8=(0x557+5871-0x1c46),.z6e3a1d0a71= z1930bdc4b4,.zc8253195c8=z1930bdc4b4,},[FULL_THROTTLE_BOOST]={.z2c102704c8= -(0x1f+4186-0x1079),.z6e3a1d0a71=z3d22747cee,.zc8253195c8=z50f061c8fa,},[ -CONSERVATIVE_BOOST]={.z2c102704c8=(0x1a04+1077-0x1e39),.z6e3a1d0a71=zc6ee839520, -.zc8253195c8=z5e55108518,},[RESTRAINED_BOOST]={.z2c102704c8=(0x64a+7705-0x2463), -.z6e3a1d0a71=z5b02b95569,.zc8253195c8=z1c89b1952d,},}; +(0xdf8+5948-0x2534),.z6e3a1d0a71=z3d22747cee,.zc8253195c8=z50f061c8fa,},[ +CONSERVATIVE_BOOST]={.z2c102704c8=(0xbe3+3716-0x1a67),.z6e3a1d0a71=zc6ee839520,. +zc8253195c8=z5e55108518,},[RESTRAINED_BOOST]={.z2c102704c8=(0xd9c+4080-0x1d8c),. +z6e3a1d0a71=z5b02b95569,.zc8253195c8=z1c89b1952d,},}; #define SCHED_BOOST_START FULL_THROTTLE_BOOST -#define z53b005dde7 (RESTRAINED_BOOST + (0x11ff+3410-0x1f50)) +#define z53b005dde7 (RESTRAINED_BOOST + (0x12ed+4453-0x2451)) static int z6e07b2160c(void){int z5d971be8b8;for(z5d971be8b8=SCHED_BOOST_START; z5d971be8b8<z53b005dde7;z5d971be8b8++){if(za01af1d7f0[z5d971be8b8].z2c102704c8>= -(0xb7a+1790-0x1277))return z5d971be8b8;}return NO_BOOST;}static void z82bb50b2e6 +(0x210a+881-0x247a))return z5d971be8b8;}return NO_BOOST;}static void z82bb50b2e6 (int z3e92d20441){struct zde3b1af216*z829d21719f=&za01af1d7f0[z3e92d20441];int -z1b640d0ec5;if(z829d21719f->z2c102704c8<=(0x9ef+5419-0x1f1a))return;z829d21719f +z1b640d0ec5;if(z829d21719f->z2c102704c8<=(0xa11+2505-0x13da))return;z829d21719f ->z2c102704c8--;if(z829d21719f->z2c102704c8)return;z829d21719f->zc8253195c8(); z1b640d0ec5=z6e07b2160c();za01af1d7f0[z1b640d0ec5].z6e3a1d0a71();}static void zde4620d4a3(int z3e92d20441){struct zde3b1af216*z829d21719f=&za01af1d7f0[ z3e92d20441];int z1b640d0ec5,zf5f877aea3=sched_boost_type;z829d21719f-> -z2c102704c8++;if(z829d21719f->z2c102704c8!=(0x140b+4829-0x26e7))return; -z1b640d0ec5=z6e07b2160c();if(z1b640d0ec5==zf5f877aea3)return;za01af1d7f0[ -zf5f877aea3].zc8253195c8();za01af1d7f0[z1b640d0ec5].z6e3a1d0a71();}static void -z6db3ec41d4(void){int z5d971be8b8;for(z5d971be8b8=SCHED_BOOST_START;z5d971be8b8< -z53b005dde7;z5d971be8b8++){if(za01af1d7f0[z5d971be8b8].z2c102704c8> -(0x77+3543-0xe4e)){za01af1d7f0[z5d971be8b8].zc8253195c8();za01af1d7f0[ -z5d971be8b8].z2c102704c8=(0xca+8705-0x22cb);}}}static void z991cee001b(int -z3e92d20441){if(z3e92d20441==(0xe3f+231-0xf26))z6db3ec41d4();else if(z3e92d20441 ->(0x3f+3108-0xc63))zde4620d4a3(z3e92d20441);else z82bb50b2e6(-z3e92d20441); -sched_boost_type=z6e07b2160c();sysctl_sched_boost=sched_boost_type;za33e3d1e60( -sysctl_sched_boost);trace_sched_set_boost(sysctl_sched_boost);}void z36aa7fba6a( -void){struct device_node*za9dc58639c;const char*boost_policy;za9dc58639c= -of_find_node_by_path("\x2f\x73\x63\x68\x65\x64\x2d\x68\x6d\x70");if(!za9dc58639c -)return;if(!of_property_read_string(za9dc58639c, +z2c102704c8++;if(z829d21719f->z2c102704c8!=(0x739+285-0x855))return;z1b640d0ec5= +z6e07b2160c();if(z1b640d0ec5==zf5f877aea3)return;za01af1d7f0[zf5f877aea3]. +zc8253195c8();za01af1d7f0[z1b640d0ec5].z6e3a1d0a71();}static void z6db3ec41d4( +void){int z5d971be8b8;for(z5d971be8b8=SCHED_BOOST_START;z5d971be8b8<z53b005dde7; +z5d971be8b8++){if(za01af1d7f0[z5d971be8b8].z2c102704c8>(0x1c8b+2100-0x24bf)){ +za01af1d7f0[z5d971be8b8].zc8253195c8();za01af1d7f0[z5d971be8b8].z2c102704c8= +(0x446+1837-0xb73);}}}static void z991cee001b(int z3e92d20441){if(z3e92d20441== +(0x62d+8367-0x26dc))z6db3ec41d4();else if(z3e92d20441>(0x63c+2829-0x1149)) +zde4620d4a3(z3e92d20441);else z82bb50b2e6(-z3e92d20441);sched_boost_type= +z6e07b2160c();sysctl_sched_boost=sched_boost_type;za33e3d1e60(sysctl_sched_boost +);trace_sched_set_boost(sysctl_sched_boost);}void z36aa7fba6a(void){struct +device_node*za9dc58639c;const char*boost_policy;za9dc58639c=of_find_node_by_path +("\x2f\x73\x63\x68\x65\x64\x2d\x68\x6d\x70");if(!za9dc58639c)return;if(! +of_property_read_string(za9dc58639c, "\x62\x6f\x6f\x73\x74\x2d\x70\x6f\x6c\x69\x63\x79",&boost_policy)){if(!strcmp( boost_policy,"\x62\x6f\x6f\x73\x74\x2d\x6f\x6e\x2d\x62\x69\x67"))z61af0b86f7= SCHED_BOOST_ON_BIG;else if(!strcmp(boost_policy, "\x62\x6f\x6f\x73\x74\x2d\x6f\x6e\x2d\x61\x6c\x6c"))z61af0b86f7= SCHED_BOOST_ON_ALL;}}int sched_set_boost(int z3e92d20441){int z083920bcc8= -(0x39d+5603-0x1980);mutex_lock(&z6e41ffbf4c);if(z9fe78fc867(z3e92d20441)) +(0xeda+2865-0x1a0b);mutex_lock(&z6e41ffbf4c);if(z9fe78fc867(z3e92d20441)) z991cee001b(z3e92d20441);else z083920bcc8=-EINVAL;mutex_unlock(&z6e41ffbf4c); return z083920bcc8;}int sched_boost_handler(struct ctl_table*z047dc75d0e,int z123284dc15,void __user*zfc9cd6af11,size_t*zc6af6558dd,loff_t*z9057b9d303){int