RE: v4.16+ seeing many unaligned access in dequeue_task_fair() on IA64

From: Luck, Tony
Date: Tue Apr 03 2018 - 20:04:08 EST


> bisect says:
>
> d519329f72a6 ("sched/fair: Update util_est only on util_avg updates")
>
> Reverting just this commit makes the problem go away.

The unaligned read and write seem to come from:

struct util_est ue = READ_ONCE(p->se.avg.util_est);
WRITE_ONCE(p->se.avg.util_est, ue);

which is puzzling as they were around before. Also the "avg"
field is tagged with an attribute to make it cache aligned
and there don't look to be holes in the structure that would
make util_est not be 8-byte aligned ... though it does consist
of two 4-byte fields, so legal for it to be 4-byte aligned.

-Tony