15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2011 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from syscalls import syscalls
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def parseEvents(z):
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  calls = { }
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for e in z:
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if e['eventtype'] == 'EVENT_TYPE_SYSCALL' and e['done'] > 0:
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      delta = e['done'] - e['ms']
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      syscall = e['syscall']
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      tid = e['thread']
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ms = e['ms']
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      calls[syscall] = calls.get(syscall, 0) + delta
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      print '%f - %f - %x - %d %s' % (
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          delta, ms, tid, syscall, syscalls.get(syscall, 'unknown'))
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  #for syscall, delta in calls.items():
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  #  print '%f - %d %s' % (delta, syscall, syscalls.get(syscall, 'unknown'))
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def main():
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  execfile(sys.argv[1])
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__':
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  main()
33