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

Commit fce0ecf0 authored by Chris Redpath's avatar Chris Redpath
Browse files

schedstats/eas: guard properly to avoid breaking non-smp schedstats users



Add appropriate #ifdef guards to ensure the smp-only easstats structs
are not used when smp is not enabled. Arnd got a report from buildbot,
analysed it, and pointed out exactly what the issue was.

Reported-by: default avatar"Arnd Bergmann" <arnd@arndb.de>
Suggested-by: default avatar"Arnd Bergmann" <arnd@arndb.de>
Fixes: 4b85765a ("sched/fair: Add eas (& cas)
 specific rq, sd and task stats")
Signed-off-by: default avatarChris Redpath <chris.redpath@arm.com>
Change-Id: I60554dea20137f6774db3f59b4afd40a06554cfc
parent 57e54f41
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -734,9 +734,10 @@ struct rq {
	/* try_to_wake_up() stats */
	unsigned int ttwu_count;
	unsigned int ttwu_local;

#ifdef CONFIG_SMP
	struct eas_stats eas_stats;
#endif
#endif

#ifdef CONFIG_SMP
	struct llist_head wake_list;
+4 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
 */
#define SCHEDSTAT_VERSION 15

#ifdef CONFIG_SMP
static inline void show_easstat(struct seq_file *seq, struct eas_stats *stats)
{
	/* eas-specific runqueue stats */
@@ -31,6 +32,7 @@ static inline void show_easstat(struct seq_file *seq, struct eas_stats *stats)
	seq_printf(seq, "%llu %llu\n",
	    stats->cas_attempts, stats->cas_count);
}
#endif

static int show_schedstat(struct seq_file *seq, void *v)
{
@@ -59,8 +61,9 @@ static int show_schedstat(struct seq_file *seq, void *v)

		seq_printf(seq, "\n");

		show_easstat(seq, &rq->eas_stats);
#ifdef CONFIG_SMP
		show_easstat(seq, &rq->eas_stats);

		/* domain-specific stats */
		rcu_read_lock();
		for_each_domain(cpu, sd) {