On 12/08/08 00:35, Li, Aubrey wrote: > 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. >
The idle PG should also be ignored when C-states are disabled. > 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 >> This does not seem right. > > 3) [bug #4616] cmt_balance schedules thread on any idle CPU instead of > shallow idle CPUs > This fix helps perf/power in the lower ranges, but it hurts higher load performance. A good fix for next item #4 [bug 5444] will help solve the high load issue. > 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 a bug for this? > Is there anything I missed? > 4607 is not required for initial putback. Eric and I are kicking around ideas for power scheduling with Hyper Thread awareness. That can probably be done after initial putback? (Fixing item #1 above will make this a lower priority.) -Bill > Thanks, > -Aubrey >
