static void clear_time(void) { int i; profile_start_time.tv64 = 0; profile_finish_time.tv64 = 0; for_each_possible_cpu(i) clear_profile_info(&per_cpu(profile_info, i), state_count); }
static void clear_time(void) { int i; profile_start_time.tv64 = 0; profile_finish_time.tv64 = 0; for_each_possible_cpu(i) clear_profile_info(&per_cpu(profile_info, i), state_count); for (i = 0; i < NUM_CLUSTER; i++) clear_profile_info(&cpd_info[i], 1); clear_profile_info(&lpc_info, 1); clear_profile_info(&lpm_info, NUM_SYS_POWERDOWN); for (i = 0; i < MAX_NUM_BLOCKER; i++) lpa_blocker[i] = 0; }
static void cpuidle_profile_main_start(void) { if (profile_ongoing) { pr_err("cpuidle profile is ongoing\n"); return; } clear_time(); profile_start_time = ktime_get(); profile_ongoing = 1; /* Wakeup all cpus and clear own profile data to start profile */ preempt_disable(); clear_profile_info(&per_cpu(profile_info, smp_processor_id()), state_count); smp_call_function(call_cpu_start_profile, NULL, 1); preempt_enable(); pr_info("cpuidle profile start\n"); }