I just want to update the current working status of the c-state part of PAD.
I think before put back into ON, we have to finish the following things:
1) cmt_balance() should be aware of the requirement of the current system,
not messed power and perf up. That is, if perf is prefered, power related pg
should be ignored.
2) [bug #4581] power idle group should be ahead of power active group for cmt
coalesce policy
> I failed to understand why it is marked as a duplicate of bug 4616
3) [bug #4616] cmt_balance schedules thread on any idle CPU instead of shallow
idle CPUs
4) [bug #5444] the system should not enter deep cstate at all when under heavy
load.
5) Per current implementation
=====================================================
pg = GROUP_ACCESS(cmt_pgs, level);
siblings = pg->cmt_siblings;
nsiblings = GROUP_SIZE(siblings); /* self inclusive */
if (nsiblings == 1)
continue; /* nobody to balance against */
=====================================================
cmt balance will ignore a pg if its siblings size = 1. I found on pad head,
power idle pg's sibling
size = 1, that means power idle pg will be ignored forever. \
This problem is simiar as "[Bug 4015] Integer Pipeline processor group is
broken", which is
closed and move the issue to 4616.
Is there anything I missed?
Thanks,
-Aubrey