Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5753d9d authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: thermal: Add ftrace logs in KTM"

parents 8a3e972f 84a7a572
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -40,6 +40,10 @@
#include <soc/qcom/rpm-smd.h>
#include <soc/qcom/scm.h>

#define CREATE_TRACE_POINTS
#define TRACE_MSM_THERMAL
#include <trace/trace_thermal.h>

#define MAX_CURRENT_UA 100000
#define MAX_RAILS 5
#define MAX_THRESHOLD 2
@@ -368,7 +372,13 @@ static void update_cpu_freq(int cpu)
	int ret = 0;

	if (cpu_online(cpu)) {
		trace_thermal_pre_frequency_mit(cpu,
			cpus[cpu].limited_max_freq,
			cpus[cpu].limited_min_freq);
		ret = cpufreq_update_policy(cpu);
		trace_thermal_post_frequency_mit(cpu,
			cpufreq_quick_get_max(cpu),
			cpus[cpu].limited_min_freq);
		if (ret)
			pr_err("Unable to update policy for cpu:%d. err:%d\n",
				cpu, ret);
@@ -1824,10 +1834,13 @@ static void __ref do_core_control(long temp)
				continue;
			pr_info("Set Offline: CPU%d Temp: %ld\n",
					i, temp);
			trace_thermal_pre_core_offline(i);
			ret = cpu_down(i);
			if (ret)
				pr_err("Error %d offline core %d\n",
					ret, i);
			trace_thermal_post_core_offline(i,
				cpumask_test_cpu(i, cpu_online_mask));
			cpus_offlined |= BIT(i);
			break;
		}
@@ -1846,10 +1859,13 @@ static void __ref do_core_control(long temp)
			 */
			if (cpu_online(i))
				continue;
			trace_thermal_pre_core_online(i);
			ret = cpu_up(i);
			if (ret)
				pr_err("Error %d online core %d\n",
						ret, i);
			trace_thermal_post_core_online(i,
				cpumask_test_cpu(i, cpu_online_mask));
			break;
		}
	}
@@ -1872,15 +1888,19 @@ static int __ref update_offline_cores(int val)
		if (cpus_offlined & BIT(cpu)) {
			if (!cpu_online(cpu))
				continue;
			trace_thermal_pre_core_offline(cpu);
			ret = cpu_down(cpu);
			if (ret)
				pr_err("Unable to offline CPU%d. err:%d\n",
					cpu, ret);
			else
				pr_debug("Offlined CPU%d\n", cpu);
			trace_thermal_post_core_offline(cpu,
				cpumask_test_cpu(cpu, cpu_online_mask));
		} else if (online_core && (previous_cpus_offlined & BIT(cpu))) {
			if (cpu_online(cpu))
				continue;
			trace_thermal_pre_core_online(cpu);
			ret = cpu_up(cpu);
			if (ret && ret == notifier_to_errno(NOTIFY_BAD))
				pr_debug("Onlining CPU%d is vetoed\n", cpu);
@@ -1889,6 +1909,8 @@ static int __ref update_offline_cores(int val)
						cpu, ret);
			else
				pr_debug("Onlined CPU%d\n", cpu);
			trace_thermal_post_core_online(cpu,
				cpumask_test_cpu(cpu, cpu_online_mask));
		}
	}
	return ret;
+105 −1
Original line number Diff line number Diff line
@@ -18,7 +18,111 @@
#define _TRACE_THERMAL_H

#include <linux/tracepoint.h>
#ifdef TRACE_MSM_THERMAL
DECLARE_EVENT_CLASS(msm_thermal_post_core_ctl,

	TP_PROTO(unsigned int cpu, unsigned int online),

	TP_ARGS(cpu, online),

	TP_STRUCT__entry(
		__field(unsigned int, cpu)
		__field(unsigned int, online)
	),

	TP_fast_assign(
		__entry->cpu = cpu;
		__entry->online = online;
	),

	TP_printk("device=cpu%u online=%u",
		 __entry->cpu,  __entry->online)
);
DECLARE_EVENT_CLASS(msm_thermal_pre_core_ctl,

	TP_PROTO(unsigned int cpu),

	TP_ARGS(cpu),

	TP_STRUCT__entry(
		__field(unsigned int, cpu)
	),

	TP_fast_assign(
		__entry->cpu = cpu;
	),

	TP_printk("device=cpu%u", __entry->cpu)
);

DEFINE_EVENT(msm_thermal_pre_core_ctl, thermal_pre_core_offline,

	TP_PROTO(unsigned int cpu),

	TP_ARGS(cpu)
);

DEFINE_EVENT(msm_thermal_post_core_ctl, thermal_post_core_offline,

	TP_PROTO(unsigned int cpu, unsigned int online),

	TP_ARGS(cpu, online)
);

DEFINE_EVENT(msm_thermal_pre_core_ctl, thermal_pre_core_online,

	TP_PROTO(unsigned int cpu),

	TP_ARGS(cpu)
);

DEFINE_EVENT(msm_thermal_post_core_ctl, thermal_post_core_online,

	TP_PROTO(unsigned int cpu, unsigned int online),

	TP_ARGS(cpu, online)
);

DECLARE_EVENT_CLASS(msm_thermal_freq_mit,

	TP_PROTO(unsigned int cpu, unsigned int max_freq,
		unsigned int min_freq),

	TP_ARGS(cpu, max_freq, min_freq),

	TP_STRUCT__entry(
		__field(unsigned int, cpu)
		__field(unsigned int, max_freq)
		__field(unsigned int, min_freq)
	),

	TP_fast_assign(
		__entry->cpu = cpu;
		__entry->max_freq = max_freq;
		__entry->min_freq = min_freq;
	),

	TP_printk("device=cpu%u max_frequency=%u min_frequency=%u",
			 __entry->cpu, __entry->max_freq,
			 __entry->min_freq)
);

DEFINE_EVENT(msm_thermal_freq_mit, thermal_pre_frequency_mit,

	TP_PROTO(unsigned int cpu, unsigned int max_freq,
		unsigned int min_freq),

	TP_ARGS(cpu, max_freq, min_freq)
);

DEFINE_EVENT(msm_thermal_freq_mit, thermal_post_frequency_mit,

	TP_PROTO(unsigned int cpu, unsigned int max_freq,
		unsigned int min_freq),

	TP_ARGS(cpu, max_freq, min_freq)
);
#else
DECLARE_EVENT_CLASS(tsens,

	TP_PROTO(unsigned long temp, unsigned int sensor),
@@ -60,7 +164,7 @@ DEFINE_EVENT(tsens, tsens_threshold_clear,
	TP_ARGS(temp, sensor)
);
#endif

#endif
#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_PATH .