Lines Matching full:phase
1185 # contents: times for phase start/end, order/color data for html
1187 # device callback or action list for this phase
1262 for phase in sorted(self.dmesg.keys()):
1263 if '*' in phase:
1264 p = phase.split('*')
1266 self.dmesg[pnew] = self.dmesg.pop(phase)
1268 for phase in self.sortedPhases():
1269 self.devicegroups.append([phase])
1270 def nextPhase(self, phase, offset): argument
1271 order = self.dmesg[phase]['order'] + offset
1331 for phase in self.sortedPhases():
1332 list = self.dmesg[phase]['list']
1340 for phase in self.sortedPhases():
1341 if 'machine' in phase:
1343 pend = self.dmesg[phase]['end']
1345 return phase
1349 for phase in phaselist:
1350 list = self.dmesg[phase]['list']
1423 for phase in self.sortedPhases():
1424 list = self.dmesg[phase]['list']
1434 for phase in self.sortedPhases():
1435 list = self.dmesg[phase]['list']
1449 for phase in self.sortedPhases():
1450 list = self.dmesg[phase]['list']
1463 for phase in self.sortedPhases():
1464 list = self.dmesg[phase]['list']
1473 for phase in self.sortedPhases():
1474 list = self.dmesg[phase]['list']
1511 for phase in self.sortedPhases():
1512 p = self.dmesg[phase]
1540 for phase in self.sortedPhases():
1541 if 'resume_machine' in phase and 'suspend_machine' in lp:
1542 tS, tR = self.dmesg[lp]['end'], self.dmesg[phase]['start']
1548 lp = phase
1553 def setPhase(self, phase, ktime, isbegin, order=-1): argument
1555 # phase start over current phase
1558 sysvals.vprint('WARNING: phase %s failed to end' % self.currphase)
1561 color = self.phasedef[phase]['color']
1563 # create unique name for every new phase
1564 while phase in phases:
1565 phase += '*'
1566 self.dmesg[phase] = {'list': dict(), 'start': -1.0, 'end': -1.0,
1568 self.dmesg[phase]['start'] = ktime
1569 self.currphase = phase
1571 # phase end without a start
1572 if phase not in self.currphase:
1574 sysvals.vprint('WARNING: %s ended instead of %s, ftrace corruption?' % (phase, self.currphase))
1576 sysvals.vprint('WARNING: %s ended without a start, ftrace corruption?' % phase)
1577 return phase
1578 phase = self.currphase
1579 self.dmesg[phase]['end'] = ktime
1581 return phase
1582 def sortedDevices(self, phase): argument
1583 list = self.dmesg[phase]['list']
1585 def fixupInitcalls(self, phase): argument
1587 phaselist = self.dmesg[phase]['list']
1595 sysvals.vprint('%s (%s): callback didnt return' % (devname, phase))
1597 for phase in self.sortedPhases():
1598 list = self.dmesg[phase]['list']
1612 for phase in self.sortedPhases():
1613 self.fixupInitcalls(phase)
1618 for phase in phases:
1619 if phase not in group:
1630 # which phase is this device callback or action in
1636 for phase in phases:
1637 pstart = self.dmesg[phase]['start']
1638 pend = self.dmesg[phase]['end']
1639 # see if the action overlaps this phase
1642 myphases.append(phase)
1643 # set the target phase to the one that overlaps most
1645 if overlap > 0 and phase == 'post_resume':
1647 targetphase = phase
1649 # if no target phase was found, pin it to the edge
1667 def newAction(self, phase, name, pid, parent, start, end, drv, htmlclass='', color=''): argument
1668 # new device callback for a specific phase
1671 list = self.dmesg[phase]['list']
1688 def deviceChildren(self, devname, phase): argument
1690 list = self.dmesg[phase]['list']
1695 def maxDeviceNameSize(self, phase): argument
1697 for name in self.dmesg[phase]['list']:
1706 for phase in self.sortedPhases():
1707 devlist = self.dmesg[phase]['list']
1708 dc, ps, pe = len(devlist), self.dmesg[phase]['start'], self.dmesg[phase]['end']
1715 sysvals.vprint('%20s: %f - %f (%d devices)' % (phase, ps, pe, dc))
1718 maxname = '%d' % self.maxDeviceNameSize(phase)
1731 for phase in self.sortedPhases():
1732 list = self.deviceChildren(devname, phase)
1752 for phase in self.sortedPhases():
1753 list = self.dmesg[phase]['list']
1759 info += ('<li>%s: %.3fms</li>' % (phase, (e-s)*1000))
1773 for phase in self.sortedPhases():
1774 list = self.dmesg[phase]['list']
1780 for phase in self.sortedPhases():
1781 list = self.dmesg[phase]['list']
1797 for phase in self.dmesg:
1799 list = self.dmesg[phase]['list']
1805 self.tdevlist[phase] = devlist
1807 phase = 'suspend_prepare'
1808 self.newAction(phase, devname, -2, '', \
1810 if phase not in self.tdevlist:
1811 self.tdevlist[phase] = []
1812 self.tdevlist[phase].append(devname)
1813 d = DevItem(0, phase, self.dmesg[phase]['list'][devname])
1837 phase, devname = out
1838 dev = self.dmesg[phase]['list'][devname]
1893 # assume resume machine ends at next phase start
1972 # suspend_resume: phase or custom exec block data
2100 # Each instance is tied to a single device in a single phase, and is
2387 phase = ''
2391 phase = p
2393 if not phase:
2397 phase, myname = out
2398 data.dmesg[phase]['list'][myname]['ftrace'] = self
2416 def __init__(self, test, phase, dev): argument
2418 self.phase = phase
2432 …html_phase = '<div class="phase" style="left:{0}%;width:{1}%;top:{2}px;height:{3}px;background:{4}…
2467 # rawlist: the list of devices/actions for a single phase
2469 # The total number of rows needed to display this phase of the timeline
2510 # The total number of rows needed to display this phase of the timeline
2520 tp = (item.test, item.phase)
2584 def phaseRowHeight(self, test, phase, row): argument
2585 return self.rowheight[test][phase][row]
2586 def phaseRowTop(self, test, phase, row): argument
2588 for i in sorted(self.rowheight[test][phase]):
2591 top += self.rowheight[test][phase][i]
3072 # the execution phase. Used when the ftrace log is the primary data source
3099 phase = 'suspend_prepare'
3151 phase = data.setPhase('suspend_prepare', t.time, True)
3197 # -- phase changes --
3210 phase = data.setPhase('suspend_prepare', t.time, isbegin)
3214 phase = data.setPhase('suspend', t.time, isbegin)
3218 phase = data.setPhase('suspend_late', t.time, isbegin)
3222 phase = data.setPhase('suspend_noirq', t.time, isbegin)
3230 phase = data.setPhase('suspend_machine', data.dmesg[lp]['end'], True)
3231 data.setPhase(phase, t.time, False)
3235 phase = data.setPhase('resume_machine', t.time, True)
3237 susp = phase.replace('resume', 'suspend')
3245 phase = data.setPhase('resume_noirq', t.time, isbegin)
3249 phase = data.setPhase('resume_early', t.time, isbegin)
3253 phase = data.setPhase('resume', t.time, isbegin)
3257 phase = data.setPhase('resume_complete', t.time, isbegin)
3275 if phase not in data.dmesg:
3285 data.newAction(phase, n, pid, p, t.time, -1, drv)
3290 if phase not in data.dmesg:
3296 list = data.dmesg[phase]['list']
3323 if(phase == 'suspend_prepare' and kprobename in ksuscalls):
3334 if(phase != 'suspend_prepare' and kprobename in krescalls):
3335 if phase in data.dmesg:
3336 data.dmesg[phase]['end'] = t.time
3373 # dev source and procmon events can be unreadable with mixed phase height
3377 # expand phase boundaries so there are no gaps
3469 pprint('TEST%s FAILED: %s failed in %s phase' % (tn, sysvals.suspendmode, lp))
3470 terr = '%s%s failed in %s phase' % (sysvals.suspendmode, tn, lp)
3477 sysvals.vprint('WARNING: phase "%s" is missing!' % p)
3577 # the execution phase. Create a set of device structures in memory
3586 phase = 'suspend_runtime'
3592 # dmesg phase match table
3659 # check for a phase change line
3664 phasechange, phase = True, p
3669 and phase == 'resume_machine' and \
3671 data.setPhase(phase, ktime, False)
3672 phase = 'resume_noirq'
3673 data.setPhase(phase, ktime, True)
3676 if phase == 'suspend_prepare':
3677 data.setPhase(phase, ktime, True)
3680 elif phase == 'suspend':
3684 data.setPhase(phase, ktime, True)
3685 elif phase == 'suspend_late':
3689 data.setPhase(phase, ktime, True)
3690 elif phase == 'suspend_noirq':
3694 data.setPhase(phase, ktime, True)
3695 elif phase == 'suspend_machine':
3699 data.setPhase(phase, ktime, True)
3700 elif phase == 'resume_machine':
3711 data.setPhase(phase, ktime, True)
3712 elif phase == 'resume_noirq':
3716 data.setPhase(phase, ktime, True)
3717 elif phase == 'resume_early':
3721 data.setPhase(phase, ktime, True)
3722 elif phase == 'resume':
3726 data.setPhase(phase, ktime, True)
3727 elif phase == 'resume_complete':
3731 data.setPhase(phase, ktime, True)
3732 elif phase == 'post_resume':
3741 if(phase in data.sortedPhases()):
3750 data.newAction(phase, f, int(n), p, ktime, -1, '')
3758 list = data.dmesg[phase]['list']
3807 pprint('TEST FAILED: %s failed in %s phase' % (sysvals.suspendmode, lp))
3808 terr = '%s failed in %s phase' % (sysvals.suspendmode, lp)
3813 sysvals.vprint('WARNING: phase "%s" is missing!' % p)
4336 for phase in group:
4337 for devname in sorted(data.tdevlist[phase]):
4338 d = DevItem(data.testnumber, phase, data.dmesg[phase]['list'][devname])
4372 for phase in data.sortedPhases():
4373 if data.dmesg[phase]['start'] >= data.tSuspended:
4374 phases['resume'].append(phase)
4376 phases['suspend'].append(phase)
4399 # draw the phase color background
4400 phase = data.dmesg[b]
4401 length = phase['end']-phase['start']
4402 left = '%f' % (((phase['start']-m0)*100.0)/mTotal)
4414 # draw the devices for this phase
4494 for phase in sorted(phasedef, key=lambda k:phasedef[k]['order']):
4495 id, p = '', phasedef[phase]
4496 for word in phase.split('_'):
4499 name = phase.replace('_', ' ')
4517 phase = data.dmesg[b]
4518 length = phase['end']-phase['start']
4519 left = '%.3f' % (((phase['start']-t0)*100.0)/tTotal)
4639 .phase {position:absolute;overflow:hidden;border:0px;text-align:center;}\n\
4899 ' var name = tmp[0], phase = tmp[tmp.length-1];\n'\
4900 ' var dd = document.getElementById(phase);\n'\
5948 m = re.match('[a-z]* failed in (?P<p>[a-z0-9_]*) phase', error)
6002 name, time, phase = m.group('n'), m.group('t'), m.group('p')
6005 if phase.startswith('suspend'):
6007 elif phase.startswith('resume'):
6173 doError('invalid phase --> (%s: %s), valid phases are %s'\
6369 ' -cgphase P Only show callgraph data for phase P (e.g. suspend_late)\n'\
6375 ' -devdump Print out all the raw device data for each phase\n'\
6514 doError('No phase name supplied', True)
6517 doError('invalid phase --> (%s: %s), valid phases are %s'\