-
-
Save heatd/facfa90fe9ec6d914a2e20771ab54ca2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" standalone="no"?> | |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |
<svg version="1.1" width="1200" height="342" onload="init(evt)" viewBox="0 0 1200 342" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. --> | |
<!-- NOTES: --> | |
<defs> | |
<linearGradient id="background" y1="0" y2="1" x1="0" x2="0" > | |
<stop stop-color="#eeeeee" offset="5%" /> | |
<stop stop-color="#eeeeb0" offset="95%" /> | |
</linearGradient> | |
</defs> | |
<style type="text/css"> | |
text { font-family:Verdana; font-size:12px; fill:rgb(0,0,0); } | |
#search, #ignorecase { opacity:0.1; cursor:pointer; } | |
#search:hover, #search.show, #ignorecase:hover, #ignorecase.show { opacity:1; } | |
#subtitle { text-anchor:middle; font-color:rgb(160,160,160); } | |
#title { text-anchor:middle; font-size:17px} | |
#unzoom { cursor:pointer; } | |
#frames > *:hover { stroke:black; stroke-width:0.5; cursor:pointer; } | |
.hide { display:none; } | |
.parent { opacity:0.5; } | |
</style> | |
<script type="text/ecmascript"> | |
<![CDATA[ | |
"use strict"; | |
var details, searchbtn, unzoombtn, matchedtxt, svg, searching, currentSearchTerm, ignorecase, ignorecaseBtn; | |
function init(evt) { | |
details = document.getElementById("details").firstChild; | |
searchbtn = document.getElementById("search"); | |
ignorecaseBtn = document.getElementById("ignorecase"); | |
unzoombtn = document.getElementById("unzoom"); | |
matchedtxt = document.getElementById("matched"); | |
svg = document.getElementsByTagName("svg")[0]; | |
searching = 0; | |
currentSearchTerm = null; | |
// use GET parameters to restore a flamegraphs state. | |
var params = get_params(); | |
if (params.x && params.y) | |
zoom(find_group(document.querySelector('[x="' + params.x + '"][y="' + params.y + '"]'))); | |
if (params.s) search(params.s); | |
} | |
// event listeners | |
window.addEventListener("click", function(e) { | |
var target = find_group(e.target); | |
if (target) { | |
if (target.nodeName == "a") { | |
if (e.ctrlKey === false) return; | |
e.preventDefault(); | |
} | |
if (target.classList.contains("parent")) unzoom(true); | |
zoom(target); | |
if (!document.querySelector('.parent')) { | |
// we have basically done a clearzoom so clear the url | |
var params = get_params(); | |
if (params.x) delete params.x; | |
if (params.y) delete params.y; | |
history.replaceState(null, null, parse_params(params)); | |
unzoombtn.classList.add("hide"); | |
return; | |
} | |
// set parameters for zoom state | |
var el = target.querySelector("rect"); | |
if (el && el.attributes && el.attributes.y && el.attributes._orig_x) { | |
var params = get_params() | |
params.x = el.attributes._orig_x.value; | |
params.y = el.attributes.y.value; | |
history.replaceState(null, null, parse_params(params)); | |
} | |
} | |
else if (e.target.id == "unzoom") clearzoom(); | |
else if (e.target.id == "search") search_prompt(); | |
else if (e.target.id == "ignorecase") toggle_ignorecase(); | |
}, false) | |
// mouse-over for info | |
// show | |
window.addEventListener("mouseover", function(e) { | |
var target = find_group(e.target); | |
if (target) details.nodeValue = "Function: " + g_to_text(target); | |
}, false) | |
// clear | |
window.addEventListener("mouseout", function(e) { | |
var target = find_group(e.target); | |
if (target) details.nodeValue = ' '; | |
}, false) | |
// ctrl-F for search | |
// ctrl-I to toggle case-sensitive search | |
window.addEventListener("keydown",function (e) { | |
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { | |
e.preventDefault(); | |
search_prompt(); | |
} | |
else if (e.ctrlKey && e.keyCode === 73) { | |
e.preventDefault(); | |
toggle_ignorecase(); | |
} | |
}, false) | |
// functions | |
function get_params() { | |
var params = {}; | |
var paramsarr = window.location.search.substr(1).split('&'); | |
for (var i = 0; i < paramsarr.length; ++i) { | |
var tmp = paramsarr[i].split("="); | |
if (!tmp[0] || !tmp[1]) continue; | |
params[tmp[0]] = decodeURIComponent(tmp[1]); | |
} | |
return params; | |
} | |
function parse_params(params) { | |
var uri = "?"; | |
for (var key in params) { | |
uri += key + '=' + encodeURIComponent(params[key]) + '&'; | |
} | |
if (uri.slice(-1) == "&") | |
uri = uri.substring(0, uri.length - 1); | |
if (uri == '?') | |
uri = window.location.href.split('?')[0]; | |
return uri; | |
} | |
function find_child(node, selector) { | |
var children = node.querySelectorAll(selector); | |
if (children.length) return children[0]; | |
} | |
function find_group(node) { | |
var parent = node.parentElement; | |
if (!parent) return; | |
if (parent.id == "frames") return node; | |
return find_group(parent); | |
} | |
function orig_save(e, attr, val) { | |
if (e.attributes["_orig_" + attr] != undefined) return; | |
if (e.attributes[attr] == undefined) return; | |
if (val == undefined) val = e.attributes[attr].value; | |
e.setAttribute("_orig_" + attr, val); | |
} | |
function orig_load(e, attr) { | |
if (e.attributes["_orig_"+attr] == undefined) return; | |
e.attributes[attr].value = e.attributes["_orig_" + attr].value; | |
e.removeAttribute("_orig_"+attr); | |
} | |
function g_to_text(e) { | |
var text = find_child(e, "title").firstChild.nodeValue; | |
return (text) | |
} | |
function g_to_func(e) { | |
var func = g_to_text(e); | |
// if there's any manipulation we want to do to the function | |
// name before it's searched, do it here before returning. | |
return (func); | |
} | |
function update_text(e) { | |
var r = find_child(e, "rect"); | |
var t = find_child(e, "text"); | |
var w = parseFloat(r.attributes.width.value) -3; | |
var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,""); | |
t.attributes.x.value = parseFloat(r.attributes.x.value) + 3; | |
// Smaller than this size won't fit anything | |
if (w < 2 * 12 * 0.59) { | |
t.textContent = ""; | |
return; | |
} | |
t.textContent = txt; | |
var sl = t.getSubStringLength(0, txt.length); | |
// check if only whitespace or if we can fit the entire string into width w | |
if (/^ *$/.test(txt) || sl < w) | |
return; | |
// this isn't perfect, but gives a good starting point | |
// and avoids calling getSubStringLength too often | |
var start = Math.floor((w/sl) * txt.length); | |
for (var x = start; x > 0; x = x-2) { | |
if (t.getSubStringLength(0, x + 2) <= w) { | |
t.textContent = txt.substring(0, x) + ".."; | |
return; | |
} | |
} | |
t.textContent = ""; | |
} | |
// zoom | |
function zoom_reset(e) { | |
if (e.attributes != undefined) { | |
orig_load(e, "x"); | |
orig_load(e, "width"); | |
} | |
if (e.childNodes == undefined) return; | |
for (var i = 0, c = e.childNodes; i < c.length; i++) { | |
zoom_reset(c[i]); | |
} | |
} | |
function zoom_child(e, x, ratio) { | |
if (e.attributes != undefined) { | |
if (e.attributes.x != undefined) { | |
orig_save(e, "x"); | |
e.attributes.x.value = (parseFloat(e.attributes.x.value) - x - 10) * ratio + 10; | |
if (e.tagName == "text") | |
e.attributes.x.value = find_child(e.parentNode, "rect[x]").attributes.x.value + 3; | |
} | |
if (e.attributes.width != undefined) { | |
orig_save(e, "width"); | |
e.attributes.width.value = parseFloat(e.attributes.width.value) * ratio; | |
} | |
} | |
if (e.childNodes == undefined) return; | |
for (var i = 0, c = e.childNodes; i < c.length; i++) { | |
zoom_child(c[i], x - 10, ratio); | |
} | |
} | |
function zoom_parent(e) { | |
if (e.attributes) { | |
if (e.attributes.x != undefined) { | |
orig_save(e, "x"); | |
e.attributes.x.value = 10; | |
} | |
if (e.attributes.width != undefined) { | |
orig_save(e, "width"); | |
e.attributes.width.value = parseInt(svg.width.baseVal.value) - (10 * 2); | |
} | |
} | |
if (e.childNodes == undefined) return; | |
for (var i = 0, c = e.childNodes; i < c.length; i++) { | |
zoom_parent(c[i]); | |
} | |
} | |
function zoom(node) { | |
var attr = find_child(node, "rect").attributes; | |
var width = parseFloat(attr.width.value); | |
var xmin = parseFloat(attr.x.value); | |
var xmax = parseFloat(xmin + width); | |
var ymin = parseFloat(attr.y.value); | |
var ratio = (svg.width.baseVal.value - 2 * 10) / width; | |
// XXX: Workaround for JavaScript float issues (fix me) | |
var fudge = 0.0001; | |
unzoombtn.classList.remove("hide"); | |
var el = document.getElementById("frames").children; | |
for (var i = 0; i < el.length; i++) { | |
var e = el[i]; | |
var a = find_child(e, "rect").attributes; | |
var ex = parseFloat(a.x.value); | |
var ew = parseFloat(a.width.value); | |
var upstack; | |
// Is it an ancestor | |
if (0 == 0) { | |
upstack = parseFloat(a.y.value) > ymin; | |
} else { | |
upstack = parseFloat(a.y.value) < ymin; | |
} | |
if (upstack) { | |
// Direct ancestor | |
if (ex <= xmin && (ex+ew+fudge) >= xmax) { | |
e.classList.add("parent"); | |
zoom_parent(e); | |
update_text(e); | |
} | |
// not in current path | |
else | |
e.classList.add("hide"); | |
} | |
// Children maybe | |
else { | |
// no common path | |
if (ex < xmin || ex + fudge >= xmax) { | |
e.classList.add("hide"); | |
} | |
else { | |
zoom_child(e, xmin, ratio); | |
update_text(e); | |
} | |
} | |
} | |
search(); | |
} | |
function unzoom(dont_update_text) { | |
unzoombtn.classList.add("hide"); | |
var el = document.getElementById("frames").children; | |
for(var i = 0; i < el.length; i++) { | |
el[i].classList.remove("parent"); | |
el[i].classList.remove("hide"); | |
zoom_reset(el[i]); | |
if(!dont_update_text) update_text(el[i]); | |
} | |
search(); | |
} | |
function clearzoom() { | |
unzoom(); | |
// remove zoom state | |
var params = get_params(); | |
if (params.x) delete params.x; | |
if (params.y) delete params.y; | |
history.replaceState(null, null, parse_params(params)); | |
} | |
// search | |
function toggle_ignorecase() { | |
ignorecase = !ignorecase; | |
if (ignorecase) { | |
ignorecaseBtn.classList.add("show"); | |
} else { | |
ignorecaseBtn.classList.remove("show"); | |
} | |
reset_search(); | |
search(); | |
} | |
function reset_search() { | |
var el = document.querySelectorAll("#frames rect"); | |
for (var i = 0; i < el.length; i++) { | |
orig_load(el[i], "fill") | |
} | |
var params = get_params(); | |
delete params.s; | |
history.replaceState(null, null, parse_params(params)); | |
} | |
function search_prompt() { | |
if (!searching) { | |
var term = prompt("Enter a search term (regexp " + | |
"allowed, eg: ^ext4_)" | |
+ (ignorecase ? ", ignoring case" : "") | |
+ "\nPress Ctrl-i to toggle case sensitivity", ""); | |
if (term != null) search(term); | |
} else { | |
reset_search(); | |
searching = 0; | |
currentSearchTerm = null; | |
searchbtn.classList.remove("show"); | |
searchbtn.firstChild.nodeValue = "Search" | |
matchedtxt.classList.add("hide"); | |
matchedtxt.firstChild.nodeValue = "" | |
} | |
} | |
function search(term) { | |
if (term) currentSearchTerm = term; | |
var re = new RegExp(currentSearchTerm, ignorecase ? 'i' : ''); | |
var el = document.getElementById("frames").children; | |
var matches = new Object(); | |
var maxwidth = 0; | |
for (var i = 0; i < el.length; i++) { | |
var e = el[i]; | |
var func = g_to_func(e); | |
var rect = find_child(e, "rect"); | |
if (func == null || rect == null) | |
continue; | |
// Save max width. Only works as we have a root frame | |
var w = parseFloat(rect.attributes.width.value); | |
if (w > maxwidth) | |
maxwidth = w; | |
if (func.match(re)) { | |
// highlight | |
var x = parseFloat(rect.attributes.x.value); | |
orig_save(rect, "fill"); | |
rect.attributes.fill.value = "rgb(230,0,230)"; | |
// remember matches | |
if (matches[x] == undefined) { | |
matches[x] = w; | |
} else { | |
if (w > matches[x]) { | |
// overwrite with parent | |
matches[x] = w; | |
} | |
} | |
searching = 1; | |
} | |
} | |
if (!searching) | |
return; | |
var params = get_params(); | |
params.s = currentSearchTerm; | |
history.replaceState(null, null, parse_params(params)); | |
searchbtn.classList.add("show"); | |
searchbtn.firstChild.nodeValue = "Reset Search"; | |
// calculate percent matched, excluding vertical overlap | |
var count = 0; | |
var lastx = -1; | |
var lastw = 0; | |
var keys = Array(); | |
for (k in matches) { | |
if (matches.hasOwnProperty(k)) | |
keys.push(k); | |
} | |
// sort the matched frames by their x location | |
// ascending, then width descending | |
keys.sort(function(a, b){ | |
return a - b; | |
}); | |
// Step through frames saving only the biggest bottom-up frames | |
// thanks to the sort order. This relies on the tree property | |
// where children are always smaller than their parents. | |
var fudge = 0.0001; // JavaScript floating point | |
for (var k in keys) { | |
var x = parseFloat(keys[k]); | |
var w = matches[keys[k]]; | |
if (x >= lastx + lastw - fudge) { | |
count += w; | |
lastx = x; | |
lastw = w; | |
} | |
} | |
// display matched percent | |
matchedtxt.classList.remove("hide"); | |
var pct = 100 * count / maxwidth; | |
if (pct != 100) pct = pct.toFixed(1) | |
matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%"; | |
} | |
]]> | |
</script> | |
<rect x="0.0" y="0" width="1200.0" height="342.0" fill="url(#background)" /> | |
<text id="title" x="600.00" y="24" >Flame Graph</text> | |
<text id="details" x="10.00" y="325" > </text> | |
<text id="unzoom" x="10.00" y="24" class="hide">Reset Zoom</text> | |
<text id="search" x="1090.00" y="24" >Search</text> | |
<text id="ignorecase" x="1174.00" y="24" >ic</text> | |
<text id="matched" x="1090.00" y="325" > </text> | |
<g id="frames"> | |
<g > | |
<title>netbsd`fd_close (1,562 samples, 14.20%)</title><rect x="47.6" y="229" width="167.6" height="15.0" fill="rgb(225,81,11)" rx="2" ry="2" /> | |
<text x="50.65" y="239.5" >netbsd`fd_close</text> | |
</g> | |
<g > | |
<title>netbsd`rw_enter (29 samples, 0.26%)</title><rect x="191.5" y="149" width="3.1" height="15.0" fill="rgb(242,74,38)" rx="2" ry="2" /> | |
<text x="194.49" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (20 samples, 0.18%)</title><rect x="49.8" y="197" width="2.1" height="15.0" fill="rgb(208,187,54)" rx="2" ry="2" /> | |
<text x="52.79" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fd_affix (10 samples, 0.09%)</title><rect x="221.7" y="197" width="1.1" height="15.0" fill="rgb(220,225,24)" rx="2" ry="2" /> | |
<text x="224.74" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`acpicpu_cstate_idle (921 samples, 8.37%)</title><rect x="1087.0" y="245" width="98.8" height="15.0" fill="rgb(242,220,9)" rx="2" ry="2" /> | |
<text x="1090.03" y="255.5" >netbsd`acpi..</text> | |
</g> | |
<g > | |
<title>netbsd`ufs_access (10 samples, 0.09%)</title><rect x="813.1" y="85" width="1.1" height="15.0" fill="rgb(248,42,35)" rx="2" ry="2" /> | |
<text x="816.08" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_cas_32 (20 samples, 0.18%)</title><rect x="54.1" y="181" width="2.1" height="15.0" fill="rgb(221,229,6)" rx="2" ry="2" /> | |
<text x="57.09" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_put_paddr (10 samples, 0.09%)</title><rect x="1001.2" y="213" width="1.1" height="15.0" fill="rgb(236,187,36)" rx="2" ry="2" /> | |
<text x="1004.22" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_vector_enter (1,257 samples, 11.43%)</title><rect x="634.2" y="53" width="134.8" height="15.0" fill="rgb(216,102,43)" rx="2" ry="2" /> | |
<text x="637.16" y="63.5" >netbsd`rw_vector_..</text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (30 samples, 0.27%)</title><rect x="955.2" y="133" width="3.2" height="15.0" fill="rgb(235,168,21)" rx="2" ry="2" /> | |
<text x="958.20" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (351 samples, 3.19%)</title><rect x="582.6" y="37" width="37.6" height="15.0" fill="rgb(243,193,9)" rx="2" ry="2" /> | |
<text x="585.57" y="47.5" >net..</text> | |
</g> | |
<g > | |
<title>netbsd`rw_enter (10 samples, 0.09%)</title><rect x="954.1" y="117" width="1.1" height="15.0" fill="rgb(242,61,52)" rx="2" ry="2" /> | |
<text x="957.13" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (11 samples, 0.10%)</title><rect x="207.5" y="149" width="1.2" height="15.0" fill="rgb(210,121,28)" rx="2" ry="2" /> | |
<text x="210.47" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (10 samples, 0.09%)</title><rect x="204.3" y="149" width="1.0" height="15.0" fill="rgb(235,103,12)" rx="2" ry="2" /> | |
<text x="207.25" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_inactive (10 samples, 0.09%)</title><rect x="206.4" y="165" width="1.1" height="15.0" fill="rgb(249,119,13)" rx="2" ry="2" /> | |
<text x="209.40" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_oncpu.part.0 (30 samples, 0.27%)</title><rect x="188.3" y="117" width="3.2" height="15.0" fill="rgb(209,51,18)" rx="2" ry="2" /> | |
<text x="191.27" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`preempt (50 samples, 0.45%)</title><rect x="1004.4" y="245" width="5.4" height="15.0" fill="rgb(248,171,51)" rx="2" ry="2" /> | |
<text x="1007.44" y="255.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vput (30 samples, 0.27%)</title><rect x="882.6" y="133" width="3.2" height="15.0" fill="rgb(230,142,4)" rx="2" ry="2" /> | |
<text x="885.58" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`kmem_intr_alloc (10 samples, 0.09%)</title><rect x="987.4" y="197" width="1.1" height="15.0" fill="rgb(241,181,28)" rx="2" ry="2" /> | |
<text x="990.38" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vrele (30 samples, 0.27%)</title><rect x="885.8" y="133" width="3.2" height="15.0" fill="rgb(221,204,7)" rx="2" ry="2" /> | |
<text x="888.80" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`syscall (19 samples, 0.17%)</title><rect x="1188.0" y="277" width="2.0" height="15.0" fill="rgb(240,28,41)" rx="2" ry="2" /> | |
<text x="1190.96" y="287.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fd_allocfile (80 samples, 0.73%)</title><rect x="222.8" y="197" width="8.6" height="15.0" fill="rgb(212,37,5)" rx="2" ry="2" /> | |
<text x="225.81" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`kauth_cred_get (10 samples, 0.09%)</title><rect x="232.5" y="197" width="1.0" height="15.0" fill="rgb(242,144,3)" rx="2" ry="2" /> | |
<text x="235.46" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`secmodel_securelevel_vnode_cb (10 samples, 0.09%)</title><rect x="243.2" y="165" width="1.1" height="15.0" fill="rgb(212,168,36)" rx="2" ry="2" /> | |
<text x="246.19" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`sys_close (10 samples, 0.09%)</title><rect x="35.9" y="261" width="1.0" height="15.0" fill="rgb(227,7,49)" rx="2" ry="2" /> | |
<text x="38.85" y="271.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`x86_stihlt (671 samples, 6.10%)</title><rect x="1113.8" y="213" width="72.0" height="15.0" fill="rgb(244,102,36)" rx="2" ry="2" /> | |
<text x="1116.84" y="223.5" >netbsd`x..</text> | |
</g> | |
<g > | |
<title>netbsd`sys_close (1,562 samples, 14.20%)</title><rect x="47.6" y="245" width="167.6" height="15.0" fill="rgb(233,181,14)" rx="2" ry="2" /> | |
<text x="50.65" y="255.5" >netbsd`sys_close</text> | |
</g> | |
<g > | |
<title>netbsd`kmem_intr_alloc (20 samples, 0.18%)</title><rect x="988.5" y="181" width="2.1" height="15.0" fill="rgb(240,177,7)" rx="2" ry="2" /> | |
<text x="991.45" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`sys_open (7,358 samples, 66.88%)</title><rect x="215.2" y="245" width="789.2" height="15.0" fill="rgb(230,181,0)" rx="2" ry="2" /> | |
<text x="218.19" y="255.5" >netbsd`sys_open</text> | |
</g> | |
<g > | |
<title>netbsd`fd_alloc (40 samples, 0.36%)</title><rect x="225.0" y="181" width="4.2" height="15.0" fill="rgb(230,160,44)" rx="2" ry="2" /> | |
<text x="227.96" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`namei (6,898 samples, 62.70%)</title><rect x="247.5" y="181" width="739.9" height="15.0" fill="rgb(234,165,29)" rx="2" ry="2" /> | |
<text x="250.48" y="191.5" >netbsd`namei</text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (10 samples, 0.09%)</title><rect x="882.6" y="101" width="1.1" height="15.0" fill="rgb(226,2,35)" rx="2" ry="2" /> | |
<text x="885.58" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (10 samples, 0.09%)</title><rect x="229.2" y="181" width="1.1" height="15.0" fill="rgb(252,187,54)" rx="2" ry="2" /> | |
<text x="232.25" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_enter (59 samples, 0.54%)</title><rect x="876.3" y="101" width="6.3" height="15.0" fill="rgb(207,161,20)" rx="2" ry="2" /> | |
<text x="879.26" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_inc_32 (20 samples, 0.18%)</title><rect x="438.7" y="85" width="2.2" height="15.0" fill="rgb(246,219,43)" rx="2" ry="2" /> | |
<text x="441.73" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fstrans_done (10 samples, 0.09%)</title><rect x="956.3" y="117" width="1.0" height="15.0" fill="rgb(249,50,2)" rx="2" ry="2" /> | |
<text x="959.27" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (1,267 samples, 11.52%)</title><rect x="633.1" y="69" width="135.9" height="15.0" fill="rgb(226,219,25)" rx="2" ry="2" /> | |
<text x="636.09" y="79.5" >netbsd`genfs_lock</text> | |
</g> | |
<g > | |
<title>netbsd`rw_vector_enter (528 samples, 4.80%)</title><rect x="897.5" y="101" width="56.6" height="15.0" fill="rgb(210,169,6)" rx="2" ry="2" /> | |
<text x="900.49" y="111.5" >netbs..</text> | |
</g> | |
<g > | |
<title>netbsd`memcmp (60 samples, 0.55%)</title><rect x="418.4" y="101" width="6.4" height="15.0" fill="rgb(228,44,29)" rx="2" ry="2" /> | |
<text x="421.35" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_lookup (362 samples, 3.29%)</title><rect x="770.1" y="117" width="38.8" height="15.0" fill="rgb(243,58,37)" rx="2" ry="2" /> | |
<text x="773.07" y="127.5" >net..</text> | |
</g> | |
<g > | |
<title>netbsd`memcmp (40 samples, 0.36%)</title><rect x="784.0" y="85" width="4.3" height="15.0" fill="rgb(216,93,1)" rx="2" ry="2" /> | |
<text x="787.01" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_get_paddr (20 samples, 0.18%)</title><rect x="988.5" y="165" width="2.1" height="15.0" fill="rgb(235,119,0)" rx="2" ry="2" /> | |
<text x="991.45" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_oncpu.part.0 (10 samples, 0.09%)</title><rect x="800.1" y="69" width="1.1" height="15.0" fill="rgb(243,112,45)" rx="2" ry="2" /> | |
<text x="803.10" y="79.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (10 samples, 0.09%)</title><rect x="46.6" y="181" width="1.0" height="15.0" fill="rgb(243,169,32)" rx="2" ry="2" /> | |
<text x="49.58" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (30 samples, 0.27%)</title><rect x="218.5" y="197" width="3.2" height="15.0" fill="rgb(252,143,13)" rx="2" ry="2" /> | |
<text x="221.52" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (20 samples, 0.18%)</title><rect x="965.0" y="133" width="2.1" height="15.0" fill="rgb(229,122,18)" rx="2" ry="2" /> | |
<text x="967.96" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fstrans_done (10 samples, 0.09%)</title><rect x="197.8" y="149" width="1.1" height="15.0" fill="rgb(240,160,13)" rx="2" ry="2" /> | |
<text x="200.82" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_exit (10 samples, 0.09%)</title><rect x="235.7" y="197" width="1.1" height="15.0" fill="rgb(214,66,29)" rx="2" ry="2" /> | |
<text x="238.68" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`kpause (10 samples, 0.09%)</title><rect x="46.6" y="213" width="1.0" height="15.0" fill="rgb(228,154,14)" rx="2" ry="2" /> | |
<text x="49.58" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (100 samples, 0.91%)</title><rect x="424.8" y="101" width="10.7" height="15.0" fill="rgb(240,175,4)" rx="2" ry="2" /> | |
<text x="427.79" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vrelel (180 samples, 1.64%)</title><rect x="960.6" y="149" width="19.3" height="15.0" fill="rgb(254,116,8)" rx="2" ry="2" /> | |
<text x="963.56" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VFS_ROOT (3,279 samples, 29.81%)</title><rect x="417.3" y="133" width="351.7" height="15.0" fill="rgb(241,202,8)" rx="2" ry="2" /> | |
<text x="420.28" y="143.5" >netbsd`VFS_ROOT</text> | |
</g> | |
<g > | |
<title>netbsd`secmodel_suser_vnode_cb (10 samples, 0.09%)</title><rect x="773.3" y="69" width="1.1" height="15.0" fill="rgb(232,183,6)" rx="2" ry="2" /> | |
<text x="776.28" y="79.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (20 samples, 0.18%)</title><rect x="889.0" y="149" width="2.2" height="15.0" fill="rgb(213,162,1)" rx="2" ry="2" /> | |
<text x="892.02" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cache_lookup (79 samples, 0.72%)</title><rect x="814.2" y="101" width="8.4" height="15.0" fill="rgb(205,220,1)" rx="2" ry="2" /> | |
<text x="817.15" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_root (3,279 samples, 29.81%)</title><rect x="417.3" y="117" width="351.7" height="15.0" fill="rgb(248,123,37)" rx="2" ry="2" /> | |
<text x="420.28" y="127.5" >netbsd`tmpfs_root</text> | |
</g> | |
<g > | |
<title>netbsd`spllower (20 samples, 0.18%)</title><rect x="213.0" y="213" width="2.2" height="15.0" fill="rgb(243,20,19)" rx="2" ry="2" /> | |
<text x="216.05" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (20 samples, 0.18%)</title><rect x="219.6" y="181" width="2.1" height="15.0" fill="rgb(233,102,51)" rx="2" ry="2" /> | |
<text x="222.59" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (30 samples, 0.27%)</title><rect x="788.3" y="85" width="3.2" height="15.0" fill="rgb(224,192,18)" rx="2" ry="2" /> | |
<text x="791.30" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`namei_tryemulroot (6,758 samples, 61.43%)</title><rect x="255.0" y="165" width="724.9" height="15.0" fill="rgb(212,159,0)" rx="2" ry="2" /> | |
<text x="257.99" y="175.5" >netbsd`namei_tryemulroot</text> | |
</g> | |
<g > | |
<title>all (11,001 samples, 100%)</title><rect x="10.0" y="293" width="1180.0" height="15.0" fill="rgb(210,181,26)" rx="2" ry="2" /> | |
<text x="13.00" y="303.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (10 samples, 0.09%)</title><rect x="194.6" y="165" width="1.1" height="15.0" fill="rgb(234,67,34)" rx="2" ry="2" /> | |
<text x="197.60" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`yield (20 samples, 0.18%)</title><rect x="1185.8" y="245" width="2.2" height="15.0" fill="rgb(216,227,9)" rx="2" ry="2" /> | |
<text x="1188.82" y="255.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (80 samples, 0.73%)</title><rect x="792.6" y="85" width="8.6" height="15.0" fill="rgb(243,202,19)" rx="2" ry="2" /> | |
<text x="795.59" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`do_open (7,168 samples, 65.16%)</title><rect x="218.5" y="213" width="768.9" height="15.0" fill="rgb(232,134,0)" rx="2" ry="2" /> | |
<text x="221.52" y="223.5" >netbsd`do_open</text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_cas_32 (60 samples, 0.55%)</title><rect x="830.1" y="133" width="6.5" height="15.0" fill="rgb(248,38,31)" rx="2" ry="2" /> | |
<text x="833.13" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (10 samples, 0.09%)</title><rect x="57.3" y="181" width="1.1" height="15.0" fill="rgb(228,101,9)" rx="2" ry="2" /> | |
<text x="60.30" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_ACCESS (50 samples, 0.45%)</title><rect x="240.0" y="181" width="5.3" height="15.0" fill="rgb(236,67,15)" rx="2" ry="2" /> | |
<text x="242.97" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_vector_enter (1,221 samples, 11.10%)</title><rect x="60.5" y="133" width="131.0" height="15.0" fill="rgb(213,49,46)" rx="2" ry="2" /> | |
<text x="63.52" y="143.5" >netbsd`rw_vector..</text> | |
</g> | |
<g > | |
<title>netbsd`spllower (10 samples, 0.09%)</title><rect x="845.1" y="133" width="1.1" height="15.0" fill="rgb(238,88,44)" rx="2" ry="2" /> | |
<text x="848.15" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_ACCESS (10 samples, 0.09%)</title><rect x="813.1" y="101" width="1.1" height="15.0" fill="rgb(239,56,41)" rx="2" ry="2" /> | |
<text x="816.08" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_inc_32 (10 samples, 0.09%)</title><rect x="816.3" y="85" width="1.1" height="15.0" fill="rgb(242,192,52)" rx="2" ry="2" /> | |
<text x="819.30" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_ACCESS (50 samples, 0.45%)</title><rect x="771.1" y="101" width="5.4" height="15.0" fill="rgb(228,128,15)" rx="2" ry="2" /> | |
<text x="774.14" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_dec_32_nv (20 samples, 0.18%)</title><rect x="836.6" y="133" width="2.1" height="15.0" fill="rgb(235,43,18)" rx="2" ry="2" /> | |
<text x="839.57" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`syscall (9,020 samples, 81.99%)</title><rect x="36.9" y="261" width="967.5" height="15.0" fill="rgb(224,198,8)" rx="2" ry="2" /> | |
<text x="39.92" y="271.5" >netbsd`syscall</text> | |
</g> | |
<g > | |
<title>netbsd`ufs_lookup (178 samples, 1.62%)</title><rect x="808.9" y="117" width="19.1" height="15.0" fill="rgb(252,71,34)" rx="2" ry="2" /> | |
<text x="811.89" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (50 samples, 0.45%)</title><rect x="822.6" y="101" width="5.4" height="15.0" fill="rgb(254,135,33)" rx="2" ry="2" /> | |
<text x="825.62" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (110 samples, 1.00%)</title><rect x="620.2" y="69" width="11.8" height="15.0" fill="rgb(227,157,23)" rx="2" ry="2" /> | |
<text x="623.22" y="79.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fd_getfile (10 samples, 0.09%)</title><rect x="45.5" y="245" width="1.1" height="15.0" fill="rgb(221,108,52)" rx="2" ry="2" /> | |
<text x="48.50" y="255.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_close (1,451 samples, 13.19%)</title><rect x="53.0" y="197" width="155.7" height="15.0" fill="rgb(249,102,51)" rx="2" ry="2" /> | |
<text x="56.01" y="207.5" >netbsd`vn_close</text> | |
</g> | |
<g > | |
<title>netbsd`AcpiHwRead (250 samples, 2.27%)</title><rect x="1087.0" y="181" width="26.8" height="15.0" fill="rgb(218,192,29)" rx="2" ry="2" /> | |
<text x="1090.03" y="191.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`nanosleep1 (10 samples, 0.09%)</title><rect x="46.6" y="229" width="1.0" height="15.0" fill="rgb(217,225,15)" rx="2" ry="2" /> | |
<text x="49.58" y="239.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vfs_unbusy (10 samples, 0.09%)</title><rect x="892.2" y="149" width="1.1" height="15.0" fill="rgb(248,129,7)" rx="2" ry="2" /> | |
<text x="895.24" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_access (10 samples, 0.09%)</title><rect x="775.4" y="85" width="1.1" height="15.0" fill="rgb(228,160,15)" rx="2" ry="2" /> | |
<text x="778.43" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cache_lookup (10 samples, 0.09%)</title><rect x="769.0" y="117" width="1.1" height="15.0" fill="rgb(243,12,51)" rx="2" ry="2" /> | |
<text x="771.99" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`kauth_authorize_vnode (30 samples, 0.27%)</title><rect x="240.0" y="165" width="3.2" height="15.0" fill="rgb(241,64,1)" rx="2" ry="2" /> | |
<text x="242.97" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`acpitimer_read_fast (250 samples, 2.27%)</title><rect x="1087.0" y="213" width="26.8" height="15.0" fill="rgb(230,167,28)" rx="2" ry="2" /> | |
<text x="1090.03" y="223.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_get_paddr (49 samples, 0.45%)</title><rect x="990.6" y="181" width="5.3" height="15.0" fill="rgb(222,49,26)" rx="2" ry="2" /> | |
<text x="993.60" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`sleepq_block (351 samples, 3.19%)</title><rect x="582.6" y="53" width="37.6" height="15.0" fill="rgb(205,157,15)" rx="2" ry="2" /> | |
<text x="585.57" y="63.5" >net..</text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (20 samples, 0.18%)</title><rect x="961.6" y="117" width="2.2" height="15.0" fill="rgb(207,216,38)" rx="2" ry="2" /> | |
<text x="964.64" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_exit (30 samples, 0.27%)</title><rect x="209.8" y="213" width="3.2" height="15.0" fill="rgb(248,169,33)" rx="2" ry="2" /> | |
<text x="212.83" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_lock (329 samples, 2.99%)</title><rect x="847.3" y="133" width="35.3" height="15.0" fill="rgb(224,28,5)" rx="2" ry="2" /> | |
<text x="850.29" y="143.5" >ne..</text> | |
</g> | |
<g > | |
<title>netbsd`pathbuf_stringcopy_get (10 samples, 0.09%)</title><rect x="995.9" y="213" width="1.0" height="15.0" fill="rgb(211,71,39)" rx="2" ry="2" /> | |
<text x="998.85" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`spllower (20 samples, 0.18%)</title><rect x="883.7" y="117" width="2.1" height="15.0" fill="rgb(239,2,47)" rx="2" ry="2" /> | |
<text x="886.66" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_inc_32 (60 samples, 0.55%)</title><rect x="247.5" y="165" width="6.4" height="15.0" fill="rgb(226,27,42)" rx="2" ry="2" /> | |
<text x="250.48" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`acpicpu_cstate_idle_enter (921 samples, 8.37%)</title><rect x="1087.0" y="229" width="98.8" height="15.0" fill="rgb(247,41,11)" rx="2" ry="2" /> | |
<text x="1090.03" y="239.5" >netbsd`acpi..</text> | |
</g> | |
<g > | |
<title>netbsd`mutex_exit (10 samples, 0.09%)</title><rect x="891.2" y="149" width="1.0" height="15.0" fill="rgb(226,166,12)" rx="2" ry="2" /> | |
<text x="894.17" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (1,423 samples, 12.94%)</title><rect x="262.5" y="149" width="152.6" height="15.0" fill="rgb(221,142,19)" rx="2" ry="2" /> | |
<text x="265.50" y="159.5" >netbsd`Xspllower</text> | |
</g> | |
<g > | |
<title>netbsd`namei_hash (20 samples, 0.18%)</title><rect x="781.9" y="69" width="2.1" height="15.0" fill="rgb(247,94,54)" rx="2" ry="2" /> | |
<text x="784.86" y="79.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`do_sys_openat (7,338 samples, 66.70%)</title><rect x="215.2" y="229" width="787.1" height="15.0" fill="rgb(236,172,49)" rx="2" ry="2" /> | |
<text x="218.19" y="239.5" >netbsd`do_sys_openat</text> | |
</g> | |
<g > | |
<title>netbsd`rw_oncpu.part.0 (10 samples, 0.09%)</title><rect x="767.9" y="37" width="1.1" height="15.0" fill="rgb(248,216,46)" rx="2" ry="2" /> | |
<text x="770.92" y="47.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`AcpiGetTimer (250 samples, 2.27%)</title><rect x="1087.0" y="197" width="26.8" height="15.0" fill="rgb(243,197,19)" rx="2" ry="2" /> | |
<text x="1090.03" y="207.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_put_paddr (20 samples, 0.18%)</title><rect x="999.1" y="197" width="2.1" height="15.0" fill="rgb(227,135,21)" rx="2" ry="2" /> | |
<text x="1002.07" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cv_wait (351 samples, 3.19%)</title><rect x="582.6" y="69" width="37.6" height="15.0" fill="rgb(225,183,32)" rx="2" ry="2" /> | |
<text x="585.57" y="79.5" >net..</text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (720 samples, 6.54%)</title><rect x="1009.8" y="245" width="77.2" height="15.0" fill="rgb(216,109,20)" rx="2" ry="2" /> | |
<text x="1012.80" y="255.5" >netbsd`X..</text> | |
</g> | |
<g > | |
<title>netbsd`sleepq_block (10 samples, 0.09%)</title><rect x="46.6" y="197" width="1.0" height="15.0" fill="rgb(254,150,16)" rx="2" ry="2" /> | |
<text x="49.58" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_open (6,998 samples, 63.61%)</title><rect x="236.8" y="197" width="750.6" height="15.0" fill="rgb(214,109,33)" rx="2" ry="2" /> | |
<text x="239.75" y="207.5" >netbsd`vn_open</text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_put_paddr (10 samples, 0.09%)</title><rect x="51.9" y="197" width="1.1" height="15.0" fill="rgb(206,120,52)" rx="2" ry="2" /> | |
<text x="54.94" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (60 samples, 0.55%)</title><rect x="195.7" y="165" width="6.4" height="15.0" fill="rgb(218,41,42)" rx="2" ry="2" /> | |
<text x="198.67" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (30 samples, 0.27%)</title><rect x="984.2" y="165" width="3.2" height="15.0" fill="rgb(233,55,48)" rx="2" ry="2" /> | |
<text x="987.16" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (1,221 samples, 11.10%)</title><rect x="60.5" y="149" width="131.0" height="15.0" fill="rgb(216,211,7)" rx="2" ry="2" /> | |
<text x="63.52" y="159.5" >netbsd`genfs_lock</text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_get_paddr (10 samples, 0.09%)</title><rect x="230.3" y="181" width="1.1" height="15.0" fill="rgb(244,169,49)" rx="2" ry="2" /> | |
<text x="233.32" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cache_lookup (240 samples, 2.18%)</title><rect x="776.5" y="101" width="25.7" height="15.0" fill="rgb(222,91,30)" rx="2" ry="2" /> | |
<text x="779.50" y="111.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (30 samples, 0.27%)</title><rect x="960.6" y="133" width="3.2" height="15.0" fill="rgb(243,112,14)" rx="2" ry="2" /> | |
<text x="963.56" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (50 samples, 0.45%)</title><rect x="1004.4" y="229" width="5.4" height="15.0" fill="rgb(227,92,26)" rx="2" ry="2" /> | |
<text x="1007.44" y="239.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fstrans_done (10 samples, 0.09%)</title><rect x="960.6" y="117" width="1.0" height="15.0" fill="rgb(207,94,19)" rx="2" ry="2" /> | |
<text x="963.56" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_lock (1,280 samples, 11.64%)</title><rect x="58.4" y="181" width="137.3" height="15.0" fill="rgb(216,180,15)" rx="2" ry="2" /> | |
<text x="61.38" y="191.5" >netbsd`vn_lock</text> | |
</g> | |
<g > | |
<title>netbsd`VOP_OPEN (20 samples, 0.18%)</title><rect x="245.3" y="181" width="2.2" height="15.0" fill="rgb(211,67,34)" rx="2" ry="2" /> | |
<text x="248.33" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_unlock (11 samples, 0.10%)</title><rect x="963.8" y="133" width="1.2" height="15.0" fill="rgb(219,229,38)" rx="2" ry="2" /> | |
<text x="966.78" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`sys___nanosleep50 (10 samples, 0.09%)</title><rect x="46.6" y="245" width="1.0" height="15.0" fill="rgb(206,5,13)" rx="2" ry="2" /> | |
<text x="49.58" y="255.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`pool_cache_get_paddr (10 samples, 0.09%)</title><rect x="995.9" y="197" width="1.0" height="15.0" fill="rgb(254,119,50)" rx="2" ry="2" /> | |
<text x="998.85" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (30 samples, 0.27%)</title><rect x="198.9" y="149" width="3.2" height="15.0" fill="rgb(212,45,41)" rx="2" ry="2" /> | |
<text x="201.89" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`Xspllower (20 samples, 0.18%)</title><rect x="1185.8" y="229" width="2.2" height="15.0" fill="rgb(248,24,10)" rx="2" ry="2" /> | |
<text x="1188.82" y="239.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vrele (10 samples, 0.09%)</title><rect x="959.5" y="149" width="1.1" height="15.0" fill="rgb(238,8,11)" rx="2" ry="2" /> | |
<text x="962.49" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`pathbuf_create_raw (69 samples, 0.63%)</title><rect x="988.5" y="197" width="7.4" height="15.0" fill="rgb(243,13,28)" rx="2" ry="2" /> | |
<text x="991.45" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`pathbuf_stringcopy_put.part.5 (40 samples, 0.36%)</title><rect x="996.9" y="213" width="4.3" height="15.0" fill="rgb(221,159,31)" rx="2" ry="2" /> | |
<text x="999.93" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`inl (250 samples, 2.27%)</title><rect x="1087.0" y="149" width="26.8" height="15.0" fill="rgb(228,23,46)" rx="2" ry="2" /> | |
<text x="1090.03" y="159.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`vcache_tryvget (10 samples, 0.09%)</title><rect x="801.2" y="85" width="1.0" height="15.0" fill="rgb(225,228,39)" rx="2" ry="2" /> | |
<text x="804.17" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (110 samples, 1.00%)</title><rect x="967.1" y="133" width="11.8" height="15.0" fill="rgb(227,120,4)" rx="2" ry="2" /> | |
<text x="970.11" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`AcpiHwReadPort (250 samples, 2.27%)</title><rect x="1087.0" y="165" width="26.8" height="15.0" fill="rgb(240,98,19)" rx="2" ry="2" /> | |
<text x="1090.03" y="175.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`VOP_LOCK (558 samples, 5.07%)</title><rect x="895.3" y="133" width="59.9" height="15.0" fill="rgb(254,130,39)" rx="2" ry="2" /> | |
<text x="898.35" y="143.5" >netbsd..</text> | |
</g> | |
<g > | |
<title>netbsd`vn_lock (1,277 samples, 11.61%)</title><rect x="632.0" y="101" width="137.0" height="15.0" fill="rgb(208,36,50)" rx="2" ry="2" /> | |
<text x="635.02" y="111.5" >netbsd`vn_lock</text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (10 samples, 0.09%)</title><rect x="829.1" y="117" width="1.0" height="15.0" fill="rgb(207,221,46)" rx="2" ry="2" /> | |
<text x="832.06" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`memcmp (10 samples, 0.09%)</title><rect x="819.5" y="85" width="1.1" height="15.0" fill="rgb(214,45,31)" rx="2" ry="2" /> | |
<text x="822.51" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_cas_64 (10 samples, 0.09%)</title><rect x="633.1" y="53" width="1.1" height="15.0" fill="rgb(208,165,8)" rx="2" ry="2" /> | |
<text x="636.09" y="63.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (270 samples, 2.45%)</title><rect x="847.3" y="101" width="29.0" height="15.0" fill="rgb(211,141,40)" rx="2" ry="2" /> | |
<text x="850.29" y="111.5" >ne..</text> | |
</g> | |
<g > | |
<title>netbsd`lookup_once (4,418 samples, 40.16%)</title><rect x="415.1" y="149" width="473.9" height="15.0" fill="rgb(244,143,46)" rx="2" ry="2" /> | |
<text x="418.13" y="159.5" >netbsd`lookup_once</text> | |
</g> | |
<g > | |
<title>netbsd`secmodel_suser_vnode_cb (10 samples, 0.09%)</title><rect x="774.4" y="85" width="1.0" height="15.0" fill="rgb(214,55,18)" rx="2" ry="2" /> | |
<text x="777.36" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_oncpu.part.0 (10 samples, 0.09%)</title><rect x="875.2" y="69" width="1.1" height="15.0" fill="rgb(243,91,2)" rx="2" ry="2" /> | |
<text x="878.18" y="79.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (11 samples, 0.10%)</title><rect x="208.7" y="213" width="1.1" height="15.0" fill="rgb(254,26,22)" rx="2" ry="2" /> | |
<text x="211.65" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`lwp_trampoline (1,661 samples, 15.10%)</title><rect x="1009.8" y="277" width="178.2" height="15.0" fill="rgb(251,37,17)" rx="2" ry="2" /> | |
<text x="1012.80" y="287.5" >netbsd`lwp_trampoline</text> | |
</g> | |
<g > | |
<title>netbsd`VOP_LOCK (329 samples, 2.99%)</title><rect x="847.3" y="117" width="35.3" height="15.0" fill="rgb(208,139,41)" rx="2" ry="2" /> | |
<text x="850.29" y="127.5" >ne..</text> | |
</g> | |
<g > | |
<title>netbsd`handle_syscall (9,321 samples, 84.73%)</title><rect x="10.0" y="277" width="999.8" height="15.0" fill="rgb(205,35,19)" rx="2" ry="2" /> | |
<text x="13.00" y="287.5" >netbsd`handle_syscall</text> | |
</g> | |
<g > | |
<title>netbsd`genfs_unlock (10 samples, 0.09%)</title><rect x="231.4" y="197" width="1.1" height="15.0" fill="rgb(233,100,1)" rx="2" ry="2" /> | |
<text x="234.39" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (10 samples, 0.09%)</title><rect x="205.3" y="165" width="1.1" height="15.0" fill="rgb(217,201,53)" rx="2" ry="2" /> | |
<text x="208.33" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`fstrans_start (10 samples, 0.09%)</title><rect x="896.4" y="117" width="1.1" height="15.0" fill="rgb(207,79,23)" rx="2" ry="2" /> | |
<text x="899.42" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vput (30 samples, 0.27%)</title><rect x="955.2" y="149" width="3.2" height="15.0" fill="rgb(223,145,26)" rx="2" ry="2" /> | |
<text x="958.20" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_inc_32 (10 samples, 0.09%)</title><rect x="778.6" y="85" width="1.1" height="15.0" fill="rgb(212,6,30)" rx="2" ry="2" /> | |
<text x="781.65" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_exit (10 samples, 0.09%)</title><rect x="957.3" y="117" width="1.1" height="15.0" fill="rgb(240,52,47)" rx="2" ry="2" /> | |
<text x="960.35" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_LOCK (1,277 samples, 11.61%)</title><rect x="632.0" y="85" width="137.0" height="15.0" fill="rgb(243,145,29)" rx="2" ry="2" /> | |
<text x="635.02" y="95.5" >netbsd`VOP_LOCK</text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (62 samples, 0.56%)</title><rect x="802.2" y="101" width="6.7" height="15.0" fill="rgb(230,204,46)" rx="2" ry="2" /> | |
<text x="805.24" y="111.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_enter (40 samples, 0.36%)</title><rect x="979.9" y="165" width="4.3" height="15.0" fill="rgb(228,37,30)" rx="2" ry="2" /> | |
<text x="982.87" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_LOOKUP (550 samples, 5.00%)</title><rect x="769.0" y="133" width="59.0" height="15.0" fill="rgb(246,112,4)" rx="2" ry="2" /> | |
<text x="771.99" y="143.5" >netbsd..</text> | |
</g> | |
<g > | |
<title>netbsd`kauth_authorize_vnode (30 samples, 0.27%)</title><rect x="771.1" y="85" width="3.3" height="15.0" fill="rgb(242,47,46)" rx="2" ry="2" /> | |
<text x="774.14" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`closef (1,481 samples, 13.46%)</title><rect x="49.8" y="213" width="158.9" height="15.0" fill="rgb(224,129,45)" rx="2" ry="2" /> | |
<text x="52.79" y="223.5" >netbsd`closef</text> | |
</g> | |
<g > | |
<title>netbsd`namei_cleanup.part.1 (10 samples, 0.09%)</title><rect x="253.9" y="165" width="1.1" height="15.0" fill="rgb(214,5,6)" rx="2" ry="2" /> | |
<text x="256.92" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_lock (577 samples, 5.24%)</title><rect x="893.3" y="149" width="61.9" height="15.0" fill="rgb(224,104,12)" rx="2" ry="2" /> | |
<text x="896.31" y="159.5" >netbsd..</text> | |
</g> | |
<g > | |
<title>netbsd`vput (60 samples, 0.55%)</title><rect x="195.7" y="181" width="6.4" height="15.0" fill="rgb(243,229,16)" rx="2" ry="2" /> | |
<text x="198.67" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (19 samples, 0.17%)</title><rect x="820.6" y="85" width="2.0" height="15.0" fill="rgb(221,41,21)" rx="2" ry="2" /> | |
<text x="823.59" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_inc_32 (60 samples, 0.55%)</title><rect x="838.7" y="133" width="6.4" height="15.0" fill="rgb(241,65,7)" rx="2" ry="2" /> | |
<text x="841.71" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_exit (10 samples, 0.09%)</title><rect x="791.5" y="85" width="1.1" height="15.0" fill="rgb(254,81,44)" rx="2" ry="2" /> | |
<text x="794.52" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_access (10 samples, 0.09%)</title><rect x="244.3" y="165" width="1.0" height="15.0" fill="rgb(229,97,33)" rx="2" ry="2" /> | |
<text x="247.26" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vref (10 samples, 0.09%)</title><rect x="958.4" y="149" width="1.1" height="15.0" fill="rgb(210,102,10)" rx="2" ry="2" /> | |
<text x="961.42" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (10 samples, 0.09%)</title><rect x="882.6" y="117" width="1.1" height="15.0" fill="rgb(230,226,50)" rx="2" ry="2" /> | |
<text x="885.58" y="127.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (20 samples, 0.18%)</title><rect x="203.2" y="165" width="2.1" height="15.0" fill="rgb(248,136,52)" rx="2" ry="2" /> | |
<text x="206.18" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_UNLOCK (20 samples, 0.18%)</title><rect x="828.0" y="133" width="2.1" height="15.0" fill="rgb(253,216,11)" rx="2" ry="2" /> | |
<text x="830.99" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_inactive (9 samples, 0.08%)</title><rect x="978.9" y="133" width="1.0" height="15.0" fill="rgb(249,52,35)" rx="2" ry="2" /> | |
<text x="981.91" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vrelel (61 samples, 0.55%)</title><rect x="202.1" y="181" width="6.6" height="15.0" fill="rgb(209,139,8)" rx="2" ry="2" /> | |
<text x="205.11" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vrele (10 samples, 0.09%)</title><rect x="253.9" y="149" width="1.1" height="15.0" fill="rgb(253,112,48)" rx="2" ry="2" /> | |
<text x="256.92" y="159.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vn_lock (11 samples, 0.10%)</title><rect x="207.5" y="165" width="1.2" height="15.0" fill="rgb(248,213,54)" rx="2" ry="2" /> | |
<text x="210.47" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (10 samples, 0.09%)</title><rect x="959.5" y="133" width="1.1" height="15.0" fill="rgb(207,97,34)" rx="2" ry="2" /> | |
<text x="962.49" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cache_lookup_entry (20 samples, 0.18%)</title><rect x="817.4" y="85" width="2.1" height="15.0" fill="rgb(247,112,39)" rx="2" ry="2" /> | |
<text x="820.37" y="95.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`VOP_LOCK (1,260 samples, 11.45%)</title><rect x="59.4" y="165" width="135.2" height="15.0" fill="rgb(207,139,37)" rx="2" ry="2" /> | |
<text x="62.45" y="175.5" >netbsd`VOP_LOCK</text> | |
</g> | |
<g > | |
<title>netbsd`copyinstr (21 samples, 0.19%)</title><rect x="216.3" y="213" width="2.2" height="15.0" fill="rgb(240,96,6)" rx="2" ry="2" /> | |
<text x="219.27" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`spllower (20 samples, 0.18%)</title><rect x="1002.3" y="229" width="2.1" height="15.0" fill="rgb(234,133,23)" rx="2" ry="2" /> | |
<text x="1005.29" y="239.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`rw_vector_enter (260 samples, 2.36%)</title><rect x="848.4" y="85" width="27.9" height="15.0" fill="rgb(205,148,19)" rx="2" ry="2" /> | |
<text x="851.37" y="95.5" >n..</text> | |
</g> | |
<g > | |
<title>netbsd`mutex_enter (20 samples, 0.18%)</title><rect x="233.5" y="197" width="2.2" height="15.0" fill="rgb(247,17,46)" rx="2" ry="2" /> | |
<text x="236.54" y="207.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_root (10 samples, 0.09%)</title><rect x="846.2" y="133" width="1.1" height="15.0" fill="rgb(231,155,19)" rx="2" ry="2" /> | |
<text x="849.22" y="143.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`mutex_vector_enter (1,311 samples, 11.92%)</title><rect x="440.9" y="85" width="140.6" height="15.0" fill="rgb(208,202,6)" rx="2" ry="2" /> | |
<text x="443.88" y="95.5" >netbsd`mutex_vect..</text> | |
</g> | |
<g > | |
<title>netbsd`tmpfs_open (10 samples, 0.09%)</title><rect x="246.4" y="165" width="1.1" height="15.0" fill="rgb(246,146,25)" rx="2" ry="2" /> | |
<text x="249.41" y="175.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`idle_loop (1,641 samples, 14.92%)</title><rect x="1009.8" y="261" width="176.0" height="15.0" fill="rgb(214,143,34)" rx="2" ry="2" /> | |
<text x="1012.80" y="271.5" >netbsd`idle_loop</text> | |
</g> | |
<g > | |
<title>netbsd`genfs_lock (528 samples, 4.80%)</title><rect x="897.5" y="117" width="56.6" height="15.0" fill="rgb(221,49,48)" rx="2" ry="2" /> | |
<text x="900.49" y="127.5" >netbs..</text> | |
</g> | |
<g > | |
<title>netbsd`_atomic_dec_32_nv (10 samples, 0.09%)</title><rect x="56.2" y="181" width="1.1" height="15.0" fill="rgb(238,48,15)" rx="2" ry="2" /> | |
<text x="59.23" y="191.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vcache_get (1,832 samples, 16.65%)</title><rect x="435.5" y="101" width="196.5" height="15.0" fill="rgb(230,221,12)" rx="2" ry="2" /> | |
<text x="438.51" y="111.5" >netbsd`vcache_get</text> | |
</g> | |
<g > | |
<title>netbsd`vcache_vget (471 samples, 4.28%)</title><rect x="581.5" y="85" width="50.5" height="15.0" fill="rgb(240,186,28)" rx="2" ry="2" /> | |
<text x="584.50" y="95.5" >netbs..</text> | |
</g> | |
<g > | |
<title>netbsd`pathbuf_copyin (79 samples, 0.72%)</title><rect x="987.4" y="213" width="8.5" height="15.0" fill="rgb(234,191,35)" rx="2" ry="2" /> | |
<text x="990.38" y="223.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`vdrain_thread (20 samples, 0.18%)</title><rect x="1185.8" y="261" width="2.2" height="15.0" fill="rgb(212,220,16)" rx="2" ry="2" /> | |
<text x="1188.82" y="271.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`trap (50 samples, 0.45%)</title><rect x="1004.4" y="261" width="5.4" height="15.0" fill="rgb(219,46,44)" rx="2" ry="2" /> | |
<text x="1007.44" y="271.5" ></text> | |
</g> | |
<g > | |
<title>netbsd`cache_lookup_entry (40 samples, 0.36%)</title><rect x="779.7" y="85" width="4.3" height="15.0" fill="rgb(215,142,39)" rx="2" ry="2" /> | |
<text x="782.72" y="95.5" ></text> | |
</g> | |
</g> | |
</svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment