-- Collects the function, with its file, the object and inclusive count value. -- The limits here are entirely arbitrary. -- For more background, look at -- https://sites.google.com/a/google.com/cwp/about/callgraphs. SELECT frame.function_name AS function, frame.filename AS file, frame.load_module_path AS dso, sum(frame.inclusive_count) AS inclusive_count FROM -- Collect the data stored in CWP over the last 30 days. FLATTEN(chromeos_wide_profiling.sampledb.cycles.callgraph.last30days, frame) WHERE meta.cros.report_id % UINT64("1") == 0 -- The reports were collected periodically. AND meta.cros.collection_info.trigger_event == 1 AND `profile.duration_usec` < 2100000 -- The reports were from a busy machine. AND session.total_count > 2000 -- The reports are from the gnawty board, x86_64 architecture. AND meta.cros.board == "gnawty" AND meta.cros.cpu_architecture == "x86_64" -- The reports include callchain data. AND left(meta.cros.version, 4) > "6970" GROUP BY function, dso, file ORDER BY `inclusive_count` DESC LIMIT 50000 ;