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: "Arnd Bergmann" <arnd@arndb.de>
Suggested-by: "Arnd Bergmann" <arnd@arndb.de>
Fixes: 4b85765a3dd9 ("sched/fair: Add eas (& cas)
 specific rq, sd and task stats")
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Change-Id: I60554dea20137f6774db3f59b4afd40a06554cfc
This commit is contained in:
Chris Redpath 2017-06-03 15:03:03 +01:00 committed by Amit Pundir
parent 2e320352b8
commit 3e6776b130
2 changed files with 6 additions and 2 deletions

View File

@ -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;

View File

@ -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) {