Skip to content

Instantly share code, notes, and snippets.

@heatd
Created March 12, 2023 19:31
Show Gist options
  • Save heatd/92b7f48f71131e694fb66a31a62f854c to your computer and use it in GitHub Desktop.
Save heatd/92b7f48f71131e694fb66a31a62f854c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
<?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>vmonyx`dentry_remove_from_cache(dentry*, dentry*) (102 samples, 0.27%)</title><rect x="1052.2" y="149" width="3.1" height="15.0" fill="rgb(207,139,46)" rx="2" ry="2" />
<text x="1055.18" y="159.5" ></text>
</g>
<g >
<title>vmonyx`tmpfs_superblock::create_inode (1,737 samples, 4.56%)</title><rect x="379.0" y="117" width="53.8" height="15.0" fill="rgb(216,46,53)" rx="2" ry="2" />
<text x="381.96" y="127.5" >vmony..</text>
</g>
<g >
<title>vmonyx`strlcpy (11 samples, 0.03%)</title><rect x="161.9" y="101" width="0.3" height="15.0" fill="rgb(207,140,44)" rx="2" ry="2" />
<text x="164.88" y="111.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (185 samples, 0.49%)</title><rect x="732.6" y="165" width="5.7" height="15.0" fill="rgb(225,59,1)" rx="2" ry="2" />
<text x="735.60" y="175.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (367 samples, 0.96%)</title><rect x="603.0" y="149" width="11.3" height="15.0" fill="rgb(228,141,24)" rx="2" ry="2" />
<text x="605.96" y="159.5" ></text>
</g>
<g >
<title>vmonyx`get_mapping_info(void*) (12 samples, 0.03%)</title><rect x="1170.4" y="197" width="0.3" height="15.0" fill="rgb(242,140,6)" rx="2" ry="2" />
<text x="1173.36" y="207.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (25 samples, 0.07%)</title><rect x="1169.5" y="197" width="0.8" height="15.0" fill="rgb(244,183,52)" rx="2" ry="2" />
<text x="1172.52" y="207.5" ></text>
</g>
<g >
<title>vmonyx`tmpfs_close(inode*) (34 samples, 0.09%)</title><rect x="1042.7" y="149" width="1.0" height="15.0" fill="rgb(209,213,26)" rx="2" ry="2" />
<text x="1045.67" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (26 samples, 0.07%)</title><rect x="432.0" y="101" width="0.8" height="15.0" fill="rgb(219,19,38)" rx="2" ry="2" />
<text x="434.97" y="111.5" ></text>
</g>
<g >
<title>vmonyx`fd_put(file*) [clone .part.0] (4 samples, 0.01%)</title><rect x="43.2" y="245" width="0.2" height="15.0" fill="rgb(239,64,26)" rx="2" ry="2" />
<text x="46.24" y="255.5" ></text>
</g>
<g >
<title>vmonyx`proc_event_enter_syscall(syscall_frame*, unsigned long) (35 samples, 0.09%)</title><rect x="1186.6" y="261" width="1.1" height="15.0" fill="rgb(251,119,52)" rx="2" ry="2" />
<text x="1189.62" y="271.5" ></text>
</g>
<g >
<title>vmonyx`__memcpy (7 samples, 0.02%)</title><rect x="103.6" y="133" width="0.2" height="15.0" fill="rgb(236,116,40)" rx="2" ry="2" />
<text x="106.58" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (746 samples, 1.96%)</title><rect x="1112.5" y="149" width="23.1" height="15.0" fill="rgb(212,57,52)" rx="2" ry="2" />
<text x="1115.47" y="159.5" >v..</text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc2 (11 samples, 0.03%)</title><rect x="61.3" y="229" width="0.3" height="15.0" fill="rgb(220,27,39)" rx="2" ry="2" />
<text x="64.30" y="239.5" ></text>
</g>
<g >
<title>vmonyx`spin_lock_slow_path(spinlock*, unsigned int) (92 samples, 0.24%)</title><rect x="159.0" y="101" width="2.8" height="15.0" fill="rgb(218,134,26)" rx="2" ry="2" />
<text x="162.00" y="111.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (76 samples, 0.20%)</title><rect x="1021.1" y="101" width="2.4" height="15.0" fill="rgb(237,111,16)" rx="2" ry="2" />
<text x="1024.15" y="111.5" ></text>
</g>
<g >
<title>vmonyx`realloc (11 samples, 0.03%)</title><rect x="1171.0" y="229" width="0.4" height="15.0" fill="rgb(243,175,36)" rx="2" ry="2" />
<text x="1174.04" y="239.5" ></text>
</g>
<g >
<title>vmonyx`rwslock::try_read (8 samples, 0.02%)</title><rect x="364.7" y="117" width="0.2" height="15.0" fill="rgb(231,1,12)" rx="2" ry="2" />
<text x="367.68" y="127.5" ></text>
</g>
<g >
<title>vmonyx`tsc_get_counter_from_ns(unsigned long) (187 samples, 0.49%)</title><rect x="426.0" y="101" width="5.8" height="15.0" fill="rgb(252,149,1)" rx="2" ry="2" />
<text x="428.99" y="111.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dff2 (25 samples, 0.07%)</title><rect x="64.5" y="229" width="0.7" height="15.0" fill="rgb(229,212,19)" rx="2" ry="2" />
<text x="67.46" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (58 samples, 0.15%)</title><rect x="51.2" y="229" width="1.8" height="15.0" fill="rgb(225,59,1)" rx="2" ry="2" />
<text x="54.17" y="239.5" ></text>
</g>
<g >
<title>vmonyx`thread_get_addr_limit (14 samples, 0.04%)</title><rect x="1176.5" y="229" width="0.5" height="15.0" fill="rgb(220,33,46)" rx="2" ry="2" />
<text x="1179.53" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (86 samples, 0.23%)</title><rect x="1023.9" y="101" width="2.6" height="15.0" fill="rgb(232,157,5)" rx="2" ry="2" />
<text x="1026.87" y="111.5" ></text>
</g>
<g >
<title>vmonyx`process::get_rlimit (51 samples, 0.13%)</title><rect x="635.5" y="165" width="1.6" height="15.0" fill="rgb(231,221,44)" rx="2" ry="2" />
<text x="638.55" y="175.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (4 samples, 0.01%)</title><rect x="1031.9" y="69" width="0.1" height="15.0" fill="rgb(211,146,1)" rx="2" ry="2" />
<text x="1034.86" y="79.5" ></text>
</g>
<g >
<title>vmonyx`tmpfs_unlink(char const*, int, dentry*) (772 samples, 2.03%)</title><rect x="1111.7" y="165" width="23.9" height="15.0" fill="rgb(215,37,35)" rx="2" ry="2" />
<text x="1114.69" y="175.5" >v..</text>
</g>
<g >
<title>vmonyx`strncpy (7 samples, 0.02%)</title><rect x="150.1" y="85" width="0.3" height="15.0" fill="rgb(242,84,49)" rx="2" ry="2" />
<text x="153.14" y="95.5" ></text>
</g>
<g >
<title>vmonyx`get_token_from_path(nameidata&amp;) (80 samples, 0.21%)</title><rect x="502.2" y="149" width="2.4" height="15.0" fill="rgb(232,206,46)" rx="2" ry="2" />
<text x="505.16" y="159.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (4 samples, 0.01%)</title><rect x="1159.1" y="197" width="0.1" height="15.0" fill="rgb(248,164,15)" rx="2" ry="2" />
<text x="1162.09" y="207.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (15 samples, 0.04%)</title><rect x="361.8" y="101" width="0.5" height="15.0" fill="rgb(231,148,13)" rx="2" ry="2" />
<text x="364.83" y="111.5" ></text>
</g>
<g >
<title>vmonyx`__can_sleep_internal() (21 samples, 0.06%)</title><rect x="998.7" y="101" width="0.7" height="15.0" fill="rgb(214,212,3)" rx="2" ry="2" />
<text x="1001.72" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="738.3" y="165" width="0.2" height="15.0" fill="rgb(243,182,26)" rx="2" ry="2" />
<text x="741.33" y="175.5" ></text>
</g>
<g >
<title>vmonyx`cache_to_paging_bits(unsigned char) (6 samples, 0.02%)</title><rect x="656.4" y="197" width="0.2" height="15.0" fill="rgb(245,213,3)" rx="2" ry="2" />
<text x="659.42" y="207.5" ></text>
</g>
<g >
<title>vmonyx`realloc (6 samples, 0.02%)</title><rect x="54.7" y="245" width="0.2" height="15.0" fill="rgb(214,180,5)" rx="2" ry="2" />
<text x="57.67" y="255.5" ></text>
</g>
<g >
<title>vmonyx`vmo_create(unsigned long, void*) (6 samples, 0.02%)</title><rect x="431.8" y="101" width="0.2" height="15.0" fill="rgb(229,116,2)" rx="2" ry="2" />
<text x="434.78" y="111.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8100e3d0 (7 samples, 0.02%)</title><rect x="10.2" y="277" width="0.3" height="15.0" fill="rgb(227,168,6)" rx="2" ry="2" />
<text x="13.25" y="287.5" ></text>
</g>
<g >
<title>vmonyx`vmo_unref(vm_object*) (597 samples, 1.57%)</title><rect x="1015.4" y="133" width="18.5" height="15.0" fill="rgb(241,183,41)" rx="2" ry="2" />
<text x="1018.41" y="143.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (4 samples, 0.01%)</title><rect x="1019.6" y="117" width="0.2" height="15.0" fill="rgb(221,5,33)" rx="2" ry="2" />
<text x="1022.63" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="1175.5" y="197" width="0.2" height="15.0" fill="rgb(254,69,51)" rx="2" ry="2" />
<text x="1178.50" y="207.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (64 samples, 0.17%)</title><rect x="411.5" y="101" width="1.9" height="15.0" fill="rgb(225,207,54)" rx="2" ry="2" />
<text x="414.46" y="111.5" ></text>
</g>
<g >
<title>vmonyx`__cpu_identify() (58 samples, 0.15%)</title><rect x="407.2" y="53" width="1.8" height="15.0" fill="rgb(224,127,16)" rx="2" ry="2" />
<text x="410.18" y="63.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="637.2" y="165" width="0.1" height="15.0" fill="rgb(217,140,27)" rx="2" ry="2" />
<text x="640.19" y="175.5" ></text>
</g>
<g >
<title>vmonyx`inode_ref(inode*) (35 samples, 0.09%)</title><rect x="507.9" y="197" width="1.1" height="15.0" fill="rgb(208,192,42)" rx="2" ry="2" />
<text x="510.92" y="207.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (5 samples, 0.01%)</title><rect x="1098.4" y="165" width="0.2" height="15.0" fill="rgb(230,83,9)" rx="2" ry="2" />
<text x="1101.40" y="175.5" ></text>
</g>
<g >
<title>vmonyx`strlcpy (24 samples, 0.06%)</title><rect x="644.0" y="213" width="0.8" height="15.0" fill="rgb(242,69,37)" rx="2" ry="2" />
<text x="647.03" y="223.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="618.0" y="149" width="0.1" height="15.0" fill="rgb(216,59,14)" rx="2" ry="2" />
<text x="620.95" y="159.5" ></text>
</g>
<g >
<title>vmonyx`dentry_resolve_path(nameidata&amp;) (13,774 samples, 36.16%)</title><rect x="78.3" y="165" width="426.6" height="15.0" fill="rgb(212,136,52)" rx="2" ry="2" />
<text x="81.27" y="175.5" >vmonyx`dentry_resolve_path(nameidata&amp;)</text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfa0 (4 samples, 0.01%)</title><rect x="60.8" y="229" width="0.1" height="15.0" fill="rgb(220,161,24)" rx="2" ry="2" />
<text x="63.80" y="239.5" ></text>
</g>
<g >
<title>vmonyx`get_fs_root() (11 samples, 0.03%)</title><rect x="648.1" y="229" width="0.3" height="15.0" fill="rgb(227,50,23)" rx="2" ry="2" />
<text x="651.06" y="239.5" ></text>
</g>
<g >
<title>vmonyx`strcpy_from_user (12 samples, 0.03%)</title><rect x="1183.0" y="245" width="0.3" height="15.0" fill="rgb(237,19,38)" rx="2" ry="2" />
<text x="1185.97" y="255.5" ></text>
</g>
<g >
<title>vmonyx`realloc (19 samples, 0.05%)</title><rect x="657.8" y="229" width="0.5" height="15.0" fill="rgb(210,58,33)" rx="2" ry="2" />
<text x="660.76" y="239.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (7 samples, 0.02%)</title><rect x="713.0" y="181" width="0.2" height="15.0" fill="rgb(209,18,22)" rx="2" ry="2" />
<text x="715.99" y="191.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (255 samples, 0.67%)</title><rect x="547.7" y="133" width="7.9" height="15.0" fill="rgb(206,111,2)" rx="2" ry="2" />
<text x="550.70" y="143.5" ></text>
</g>
<g >
<title>vmonyx`get_current_directory() (103 samples, 0.27%)</title><rect x="644.9" y="229" width="3.2" height="15.0" fill="rgb(238,138,21)" rx="2" ry="2" />
<text x="647.87" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (61 samples, 0.16%)</title><rect x="1169.0" y="213" width="1.9" height="15.0" fill="rgb(248,128,41)" rx="2" ry="2" />
<text x="1172.03" y="223.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (141 samples, 0.37%)</title><rect x="1080.5" y="133" width="4.4" height="15.0" fill="rgb(252,221,5)" rx="2" ry="2" />
<text x="1083.53" y="143.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (5 samples, 0.01%)</title><rect x="618.1" y="149" width="0.1" height="15.0" fill="rgb(231,206,4)" rx="2" ry="2" />
<text x="621.07" y="159.5" ></text>
</g>
<g >
<title>vmonyx`dentry_create(char const*, inode*, dentry*) (829 samples, 2.18%)</title><rect x="124.7" y="101" width="25.7" height="15.0" fill="rgb(249,144,9)" rx="2" ry="2" />
<text x="127.68" y="111.5" >v..</text>
</g>
<g >
<title>vmonyx`wait_token::wait (119 samples, 0.31%)</title><rect x="1085.7" y="149" width="3.7" height="15.0" fill="rgb(220,225,2)" rx="2" ry="2" />
<text x="1088.73" y="159.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (193 samples, 0.51%)</title><rect x="651.5" y="229" width="6.0" height="15.0" fill="rgb(253,191,12)" rx="2" ry="2" />
<text x="654.53" y="239.5" ></text>
</g>
<g >
<title>vmonyx`__rw_lock_write(rwlock*, int) (6,104 samples, 16.02%)</title><rect x="162.3" y="117" width="189.1" height="15.0" fill="rgb(243,164,23)" rx="2" ry="2" />
<text x="165.28" y="127.5" >vmonyx`__rw_lock_write(r..</text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc7 (25 samples, 0.07%)</title><rect x="63.4" y="229" width="0.8" height="15.0" fill="rgb(246,115,46)" rx="2" ry="2" />
<text x="66.40" y="239.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (8 samples, 0.02%)</title><rect x="1032.0" y="85" width="0.2" height="15.0" fill="rgb(225,122,51)" rx="2" ry="2" />
<text x="1034.99" y="95.5" ></text>
</g>
<g >
<title>vmonyx`get_current_directory() (4 samples, 0.01%)</title><rect x="1182.4" y="245" width="0.1" height="15.0" fill="rgb(208,116,47)" rx="2" ry="2" />
<text x="1185.41" y="255.5" ></text>
</g>
<g >
<title>vmonyx`fd_put(file*) (175 samples, 0.46%)</title><rect x="1177.0" y="245" width="5.4" height="15.0" fill="rgb(246,229,20)" rx="2" ry="2" />
<text x="1179.96" y="255.5" ></text>
</g>
<g >
<title>vmonyx`vmo_create(unsigned long, void*) (308 samples, 0.81%)</title><rect x="401.9" y="85" width="9.6" height="15.0" fill="rgb(217,217,1)" rx="2" ry="2" />
<text x="404.92" y="95.5" ></text>
</g>
<g >
<title>vmonyx`rw_lock_trywrite(rwlock*) (6 samples, 0.02%)</title><rect x="1098.6" y="165" width="0.1" height="15.0" fill="rgb(207,74,47)" rx="2" ry="2" />
<text x="1101.56" y="175.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (44 samples, 0.12%)</title><rect x="674.5" y="229" width="1.4" height="15.0" fill="rgb(231,159,30)" rx="2" ry="2" />
<text x="677.51" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (131 samples, 0.34%)</title><rect x="653.1" y="213" width="4.0" height="15.0" fill="rgb(251,198,23)" rx="2" ry="2" />
<text x="656.08" y="223.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (42 samples, 0.11%)</title><rect x="748.0" y="165" width="1.3" height="15.0" fill="rgb(253,18,53)" rx="2" ry="2" />
<text x="750.96" y="175.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e04a (15 samples, 0.04%)</title><rect x="674.1" y="229" width="0.4" height="15.0" fill="rgb(245,220,47)" rx="2" ry="2" />
<text x="677.05" y="239.5" ></text>
</g>
<g >
<title>vmonyx`rwslock::try_write (36 samples, 0.09%)</title><rect x="364.9" y="117" width="1.1" height="15.0" fill="rgb(231,67,1)" rx="2" ry="2" />
<text x="367.93" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__sys_unlink_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (16,758 samples, 43.99%)</title><rect x="664.2" y="261" width="519.1" height="15.0" fill="rgb(239,178,2)" rx="2" ry="2" />
<text x="667.23" y="271.5" >vmonyx`__sys_unlink_thunk(unsigned long, unsigned long, unsigned long, ..</text>
</g>
<g >
<title>vmonyx`wait_token::wait (122 samples, 0.32%)</title><rect x="1135.6" y="165" width="3.8" height="15.0" fill="rgb(226,0,11)" rx="2" ry="2" />
<text x="1138.60" y="175.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (73 samples, 0.19%)</title><rect x="1128.7" y="117" width="2.2" height="15.0" fill="rgb(248,123,22)" rx="2" ry="2" />
<text x="1131.67" y="127.5" ></text>
</g>
<g >
<title>vmonyx`context_tracking_exit_kernel() (97 samples, 0.25%)</title><rect x="1183.3" y="261" width="3.0" height="15.0" fill="rgb(233,41,36)" rx="2" ry="2" />
<text x="1186.34" y="271.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (34 samples, 0.09%)</title><rect x="42.1" y="245" width="1.1" height="15.0" fill="rgb(240,59,13)" rx="2" ry="2" />
<text x="45.12" y="255.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (27 samples, 0.07%)</title><rect x="413.4" y="101" width="0.9" height="15.0" fill="rgb(210,139,53)" rx="2" ry="2" />
<text x="416.44" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sys_unlink(char const*) (19 samples, 0.05%)</title><rect x="1189.3" y="261" width="0.6" height="15.0" fill="rgb(228,139,47)" rx="2" ry="2" />
<text x="1192.35" y="271.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (44 samples, 0.12%)</title><rect x="495.7" y="117" width="1.4" height="15.0" fill="rgb(231,35,25)" rx="2" ry="2" />
<text x="498.72" y="127.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (33 samples, 0.09%)</title><rect x="487.9" y="117" width="1.0" height="15.0" fill="rgb(234,155,19)" rx="2" ry="2" />
<text x="490.88" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_destroy(dentry*) (1,891 samples, 4.96%)</title><rect x="985.4" y="165" width="58.5" height="15.0" fill="rgb(229,95,9)" rx="2" ry="2" />
<text x="988.37" y="175.5" >vmonyx..</text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (4 samples, 0.01%)</title><rect x="1089.4" y="165" width="0.1" height="15.0" fill="rgb(247,116,7)" rx="2" ry="2" />
<text x="1092.42" y="175.5" ></text>
</g>
<g >
<title>vmonyx`rb_tree_clear (13 samples, 0.03%)</title><rect x="1032.6" y="101" width="0.4" height="15.0" fill="rgb(228,213,37)" rx="2" ry="2" />
<text x="1035.58" y="111.5" ></text>
</g>
<g >
<title>vmonyx`inode_init(inode*, bool) (355 samples, 0.93%)</title><rect x="400.5" y="101" width="11.0" height="15.0" fill="rgb(205,184,24)" rx="2" ry="2" />
<text x="403.46" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (27 samples, 0.07%)</title><rect x="53.0" y="229" width="0.8" height="15.0" fill="rgb(226,32,38)" rx="2" ry="2" />
<text x="55.96" y="239.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (27 samples, 0.07%)</title><rect x="617.1" y="149" width="0.9" height="15.0" fill="rgb(215,219,27)" rx="2" ry="2" />
<text x="620.11" y="159.5" ></text>
</g>
<g >
<title>vmonyx`strcat (10 samples, 0.03%)</title><rect x="149.1" y="85" width="0.3" height="15.0" fill="rgb(228,147,49)" rx="2" ry="2" />
<text x="152.09" y="95.5" ></text>
</g>
<g >
<title>vmonyx`inode_unref(inode*) (42 samples, 0.11%)</title><rect x="1097.1" y="165" width="1.3" height="15.0" fill="rgb(251,165,39)" rx="2" ry="2" />
<text x="1100.10" y="175.5" ></text>
</g>
<g >
<title>vmonyx`file_creation_helper(dentry*, char const*, last_name_handling&amp;) (14,042 samples, 36.86%)</title><rect x="72.9" y="197" width="435.0" height="15.0" fill="rgb(219,16,45)" rx="2" ry="2" />
<text x="75.94" y="207.5" >vmonyx`file_creation_helper(dentry*, char const*, last_name..</text>
</g>
<g >
<title>vmonyx`0xffffffff8107e03a (8 samples, 0.02%)</title><rect x="66.1" y="229" width="0.2" height="15.0" fill="rgb(225,219,43)" rx="2" ry="2" />
<text x="69.10" y="239.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8100e3d4 (7 samples, 0.02%)</title><rect x="10.5" y="277" width="0.2" height="15.0" fill="rgb(225,222,2)" rx="2" ry="2" />
<text x="13.46" y="287.5" ></text>
</g>
<g >
<title>vmonyx`do_xsave(void*, long) (397 samples, 1.04%)</title><rect x="24.6" y="277" width="12.3" height="15.0" fill="rgb(228,64,45)" rx="2" ry="2" />
<text x="27.59" y="287.5" ></text>
</g>
<g >
<title>vmonyx`file_can_access(file*, unsigned int) (8 samples, 0.02%)</title><rect x="625.2" y="181" width="0.3" height="15.0" fill="rgb(241,169,8)" rx="2" ry="2" />
<text x="628.23" y="191.5" ></text>
</g>
<g >
<title>vmonyx`spin_lock_slow_path(spinlock*, unsigned int) (313 samples, 0.82%)</title><rect x="367.3" y="117" width="9.7" height="15.0" fill="rgb(213,75,28)" rx="2" ry="2" />
<text x="370.26" y="127.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (7 samples, 0.02%)</title><rect x="494.9" y="117" width="0.2" height="15.0" fill="rgb(208,216,37)" rx="2" ry="2" />
<text x="497.88" y="127.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e008 (5 samples, 0.01%)</title><rect x="65.2" y="229" width="0.2" height="15.0" fill="rgb(239,176,38)" rx="2" ry="2" />
<text x="68.23" y="239.5" ></text>
</g>
<g >
<title>vmonyx`create_handling::operator()(nameidata&amp;, std::basic_string_view (11,910 samples, 31.27%)</title><rect x="104.1" y="133" width="368.9" height="15.0" fill="rgb(224,48,4)" rx="2" ry="2" />
<text x="107.11" y="143.5" >vmonyx`create_handling::operator()(nameidata&amp;, std..</text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="1128.5" y="117" width="0.1" height="15.0" fill="rgb(216,208,32)" rx="2" ry="2" />
<text x="1131.51" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="658.3" y="229" width="0.4" height="15.0" fill="rgb(214,85,10)" rx="2" ry="2" />
<text x="661.34" y="239.5" ></text>
</g>
<g >
<title>vmonyx`open_vfs_with_flags(file*, char const*, unsigned int) (3,845 samples, 10.09%)</title><rect x="509.5" y="213" width="119.1" height="15.0" fill="rgb(226,8,31)" rx="2" ry="2" />
<text x="512.47" y="223.5" >vmonyx`open_vf..</text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (541 samples, 1.42%)</title><rect x="1114.2" y="133" width="16.7" height="15.0" fill="rgb(221,173,10)" rx="2" ry="2" />
<text x="1117.17" y="143.5" ></text>
</g>
<g >
<title>vmonyx`creds_put(creds*) (5 samples, 0.01%)</title><rect x="360.4" y="117" width="0.2" height="15.0" fill="rgb(227,9,25)" rx="2" ry="2" />
<text x="363.41" y="127.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (1,212 samples, 3.18%)</title><rect x="435.1" y="117" width="37.5" height="15.0" fill="rgb(216,148,45)" rx="2" ry="2" />
<text x="438.09" y="127.5" >vmo..</text>
</g>
<g >
<title>vmonyx`wake_address(void*) (13 samples, 0.03%)</title><rect x="472.6" y="117" width="0.4" height="15.0" fill="rgb(205,109,52)" rx="2" ry="2" />
<text x="475.64" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (5 samples, 0.01%)</title><rect x="625.1" y="181" width="0.1" height="15.0" fill="rgb(234,54,4)" rx="2" ry="2" />
<text x="628.08" y="191.5" ></text>
</g>
<g >
<title>vmonyx`__can_sleep_internal() (5 samples, 0.01%)</title><rect x="114.3" y="117" width="0.2" height="15.0" fill="rgb(247,21,2)" rx="2" ry="2" />
<text x="117.30" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__memcpy (9 samples, 0.02%)</title><rect x="712.5" y="181" width="0.2" height="15.0" fill="rgb(214,97,23)" rx="2" ry="2" />
<text x="715.46" y="191.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107c087 (6 samples, 0.02%)</title><rect x="114.0" y="117" width="0.1" height="15.0" fill="rgb(241,31,33)" rx="2" ry="2" />
<text x="116.96" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (10 samples, 0.03%)</title><rect x="483.2" y="101" width="0.3" height="15.0" fill="rgb(240,0,43)" rx="2" ry="2" />
<text x="486.23" y="111.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_resolve_path(nameidata&amp;) (3,255 samples, 8.54%)</title><rect x="524.1" y="181" width="100.8" height="15.0" fill="rgb(239,181,16)" rx="2" ry="2" />
<text x="527.06" y="191.5" >vmonyx`__den..</text>
</g>
<g >
<title>vmonyx`wait_token::wait (35 samples, 0.09%)</title><rect x="1095.7" y="149" width="1.1" height="15.0" fill="rgb(213,98,12)" rx="2" ry="2" />
<text x="1098.68" y="159.5" ></text>
</g>
<g >
<title>vmonyx`realloc (4 samples, 0.01%)</title><rect x="1002.2" y="133" width="0.1" height="15.0" fill="rgb(209,157,37)" rx="2" ry="2" />
<text x="1005.16" y="143.5" ></text>
</g>
<g >
<title>vmonyx`__sys_open_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (48 samples, 0.13%)</title><rect x="14.4" y="277" width="1.5" height="15.0" fill="rgb(205,77,54)" rx="2" ry="2" />
<text x="17.37" y="287.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (7 samples, 0.02%)</title><rect x="1161.5" y="197" width="0.2" height="15.0" fill="rgb(223,12,33)" rx="2" ry="2" />
<text x="1164.53" y="207.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (5 samples, 0.01%)</title><rect x="158.8" y="101" width="0.2" height="15.0" fill="rgb(205,165,34)" rx="2" ry="2" />
<text x="161.84" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="747.2" y="165" width="0.4" height="15.0" fill="rgb(213,143,19)" rx="2" ry="2" />
<text x="750.22" y="175.5" ></text>
</g>
<g >
<title>vmonyx`get_current_directory() (118 samples, 0.31%)</title><rect x="1162.6" y="229" width="3.6" height="15.0" fill="rgb(242,207,12)" rx="2" ry="2" />
<text x="1165.59" y="239.5" ></text>
</g>
<g >
<title>vmonyx`signal_is_pending (28 samples, 0.07%)</title><rect x="38.3" y="277" width="0.8" height="15.0" fill="rgb(249,63,7)" rx="2" ry="2" />
<text x="41.25" y="287.5" ></text>
</g>
<g >
<title>vmonyx`proc_event_exit_syscall(long, long) (31 samples, 0.08%)</title><rect x="1187.7" y="261" width="1.0" height="15.0" fill="rgb(253,14,4)" rx="2" ry="2" />
<text x="1190.71" y="271.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (6 samples, 0.02%)</title><rect x="504.8" y="149" width="0.1" height="15.0" fill="rgb(218,101,46)" rx="2" ry="2" />
<text x="507.76" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (6 samples, 0.02%)</title><rect x="588.7" y="133" width="0.2" height="15.0" fill="rgb(246,31,23)" rx="2" ry="2" />
<text x="591.74" y="143.5" ></text>
</g>
<g >
<title>vmonyx`alloc_fd(int) (322 samples, 0.85%)</title><rect x="633.2" y="181" width="9.9" height="15.0" fill="rgb(222,85,24)" rx="2" ry="2" />
<text x="636.16" y="191.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (99 samples, 0.26%)</title><rect x="494.0" y="133" width="3.1" height="15.0" fill="rgb(216,163,48)" rx="2" ry="2" />
<text x="497.01" y="143.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107c53d (5 samples, 0.01%)</title><rect x="114.1" y="117" width="0.2" height="15.0" fill="rgb(222,203,32)" rx="2" ry="2" />
<text x="117.14" y="127.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (93 samples, 0.24%)</title><rect x="585.2" y="133" width="2.9" height="15.0" fill="rgb(252,43,24)" rx="2" ry="2" />
<text x="588.18" y="143.5" ></text>
</g>
<g >
<title>vmonyx`strcpy_from_user (125 samples, 0.33%)</title><rect x="1171.9" y="229" width="3.9" height="15.0" fill="rgb(220,204,11)" rx="2" ry="2" />
<text x="1174.91" y="239.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (195 samples, 0.51%)</title><rect x="596.6" y="149" width="6.0" height="15.0" fill="rgb(216,51,22)" rx="2" ry="2" />
<text x="599.58" y="159.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (8 samples, 0.02%)</title><rect x="1168.8" y="213" width="0.2" height="15.0" fill="rgb(231,99,21)" rx="2" ry="2" />
<text x="1171.78" y="223.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e03d (15 samples, 0.04%)</title><rect x="66.3" y="229" width="0.5" height="15.0" fill="rgb(237,128,9)" rx="2" ry="2" />
<text x="69.35" y="239.5" ></text>
</g>
<g >
<title>vmonyx`dentry_resolve_path(nameidata&amp;) (4 samples, 0.01%)</title><rect x="73.3" y="181" width="0.2" height="15.0" fill="rgb(242,153,9)" rx="2" ry="2" />
<text x="76.35" y="191.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (6 samples, 0.02%)</title><rect x="1128.2" y="117" width="0.2" height="15.0" fill="rgb(250,3,5)" rx="2" ry="2" />
<text x="1131.20" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (1,699 samples, 4.46%)</title><rect x="561.7" y="165" width="52.6" height="15.0" fill="rgb(215,38,5)" rx="2" ry="2" />
<text x="564.70" y="175.5" >vmony..</text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (109 samples, 0.29%)</title><rect x="1028.6" y="85" width="3.4" height="15.0" fill="rgb(234,74,28)" rx="2" ry="2" />
<text x="1031.61" y="95.5" ></text>
</g>
<g >
<title>vmonyx`sys_open(char const*, int, unsigned int) (19,665 samples, 51.62%)</title><rect x="55.1" y="245" width="609.1" height="15.0" fill="rgb(207,200,31)" rx="2" ry="2" />
<text x="58.07" y="255.5" >vmonyx`sys_open(char const*, int, unsigned int)</text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (9 samples, 0.02%)</title><rect x="1033.4" y="117" width="0.3" height="15.0" fill="rgb(250,170,44)" rx="2" ry="2" />
<text x="1036.44" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__rw_lock_write(rwlock*, int) (6,829 samples, 17.93%)</title><rect x="759.5" y="165" width="211.6" height="15.0" fill="rgb(217,63,41)" rx="2" ry="2" />
<text x="762.52" y="175.5" >vmonyx`__rw_lock_write(rwlo..</text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (5 samples, 0.01%)</title><rect x="54.5" y="245" width="0.2" height="15.0" fill="rgb(218,117,4)" rx="2" ry="2" />
<text x="57.51" y="255.5" ></text>
</g>
<g >
<title>vmonyx`x86::internal::thread_setup_stack (37,138 samples, 97.49%)</title><rect x="39.6" y="277" width="1150.4" height="15.0" fill="rgb(227,122,15)" rx="2" ry="2" />
<text x="42.58" y="287.5" >vmonyx`x86::internal::thread_setup_stack</text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="362.4" y="101" width="0.1" height="15.0" fill="rgb(253,173,33)" rx="2" ry="2" />
<text x="365.36" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (6 samples, 0.02%)</title><rect x="749.8" y="181" width="0.1" height="15.0" fill="rgb(240,227,9)" rx="2" ry="2" />
<text x="752.76" y="191.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (6 samples, 0.02%)</title><rect x="1041.6" y="117" width="0.2" height="15.0" fill="rgb(252,74,25)" rx="2" ry="2" />
<text x="1044.59" y="127.5" ></text>
</g>
<g >
<title>vmonyx`spin_lock_slow_path(spinlock*, unsigned int) (303 samples, 0.80%)</title><rect x="1101.9" y="165" width="9.4" height="15.0" fill="rgb(228,78,11)" rx="2" ry="2" />
<text x="1104.87" y="175.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (5 samples, 0.01%)</title><rect x="1101.7" y="165" width="0.2" height="15.0" fill="rgb(211,81,40)" rx="2" ry="2" />
<text x="1104.72" y="175.5" ></text>
</g>
<g >
<title>vmonyx`vmo_unref(vm_object*) (7 samples, 0.02%)</title><rect x="1043.7" y="149" width="0.2" height="15.0" fill="rgb(220,39,24)" rx="2" ry="2" />
<text x="1046.73" y="159.5" ></text>
</g>
<g >
<title>vmonyx`__memmove (8 samples, 0.02%)</title><rect x="712.7" y="181" width="0.3" height="15.0" fill="rgb(217,4,17)" rx="2" ry="2" />
<text x="715.74" y="191.5" ></text>
</g>
<g >
<title>vmonyx`file_alloc() (12 samples, 0.03%)</title><rect x="73.5" y="181" width="0.3" height="15.0" fill="rgb(228,165,18)" rx="2" ry="2" />
<text x="76.47" y="191.5" ></text>
</g>
<g >
<title>vmonyx`strcpy_from_user (143 samples, 0.38%)</title><rect x="659.3" y="229" width="4.5" height="15.0" fill="rgb(220,149,0)" rx="2" ry="2" />
<text x="662.34" y="239.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc7 (24 samples, 0.06%)</title><rect x="670.5" y="229" width="0.7" height="15.0" fill="rgb(216,163,31)" rx="2" ry="2" />
<text x="673.46" y="239.5" ></text>
</g>
<g >
<title>vmonyx`superblock_add_inode(superblock*, inode*) (8 samples, 0.02%)</title><rect x="378.7" y="117" width="0.3" height="15.0" fill="rgb(206,119,29)" rx="2" ry="2" />
<text x="381.72" y="127.5" ></text>
</g>
<g >
<title>vmonyx`tmpfs_creat(char const*, int, dentry*) (38 samples, 0.10%)</title><rect x="497.3" y="133" width="1.2" height="15.0" fill="rgb(221,224,29)" rx="2" ry="2" />
<text x="500.33" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (1,011 samples, 2.65%)</title><rect x="1058.1" y="165" width="31.3" height="15.0" fill="rgb(230,51,52)" rx="2" ry="2" />
<text x="1061.10" y="175.5" >vm..</text>
</g>
<g >
<title>vmonyx`inode_unref(inode*) (54 samples, 0.14%)</title><rect x="49.5" y="229" width="1.7" height="15.0" fill="rgb(243,140,52)" rx="2" ry="2" />
<text x="52.50" y="239.5" ></text>
</g>
<g >
<title>vmonyx`strncpy (5 samples, 0.01%)</title><rect x="1176.4" y="229" width="0.1" height="15.0" fill="rgb(253,40,42)" rx="2" ry="2" />
<text x="1179.37" y="239.5" ></text>
</g>
<g >
<title>vmonyx`creds_put(creds*) (6 samples, 0.02%)</title><rect x="561.5" y="165" width="0.2" height="15.0" fill="rgb(228,71,1)" rx="2" ry="2" />
<text x="564.51" y="175.5" ></text>
</g>
<g >
<title>vmonyx`clock_get_posix_time() (12 samples, 0.03%)</title><rect x="399.9" y="101" width="0.4" height="15.0" fill="rgb(241,19,20)" rx="2" ry="2" />
<text x="402.91" y="111.5" ></text>
</g>
<g >
<title>vmonyx`file_alloc(file*, ioctx*) (4 samples, 0.01%)</title><rect x="509.3" y="213" width="0.1" height="15.0" fill="rgb(206,167,18)" rx="2" ry="2" />
<text x="512.25" y="223.5" ></text>
</g>
<g >
<title>vmonyx`strncpy (6 samples, 0.02%)</title><rect x="378.5" y="117" width="0.2" height="15.0" fill="rgb(250,117,19)" rx="2" ry="2" />
<text x="381.53" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__sys_unlink_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (43 samples, 0.11%)</title><rect x="15.9" y="277" width="1.3" height="15.0" fill="rgb(221,9,48)" rx="2" ry="2" />
<text x="18.85" y="287.5" ></text>
</g>
<g >
<title>vmonyx`create_handling::operator()(nameidata&amp;, std::basic_string_view (31 samples, 0.08%)</title><rect x="501.1" y="149" width="0.9" height="15.0" fill="rgb(236,89,14)" rx="2" ry="2" />
<text x="504.08" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (6 samples, 0.02%)</title><rect x="602.6" y="149" width="0.2" height="15.0" fill="rgb(208,59,35)" rx="2" ry="2" />
<text x="605.62" y="159.5" ></text>
</g>
<g >
<title>vmonyx`open_vfs_with_flags(file*, char const*, unsigned int) (7 samples, 0.02%)</title><rect x="657.5" y="229" width="0.2" height="15.0" fill="rgb(221,101,33)" rx="2" ry="2" />
<text x="660.51" y="239.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="726.1" y="149" width="0.4" height="15.0" fill="rgb(225,197,53)" rx="2" ry="2" />
<text x="729.12" y="159.5" ></text>
</g>
<g >
<title>vmonyx`cache_to_paging_bits(unsigned char) (4 samples, 0.01%)</title><rect x="1041.2" y="117" width="0.1" height="15.0" fill="rgb(237,176,52)" rx="2" ry="2" />
<text x="1044.19" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (7 samples, 0.02%)</title><rect x="360.6" y="117" width="0.2" height="15.0" fill="rgb(248,138,37)" rx="2" ry="2" />
<text x="363.63" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="1001.0" y="117" width="0.1" height="15.0" fill="rgb(218,133,4)" rx="2" ry="2" />
<text x="1003.98" y="127.5" ></text>
</g>
<g >
<title>vmonyx`unlink_handling::operator()(nameidata&amp;, std::basic_string_view (27 samples, 0.07%)</title><rect x="1161.7" y="197" width="0.9" height="15.0" fill="rgb(239,203,48)" rx="2" ry="2" />
<text x="1164.75" y="207.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e04a (16 samples, 0.04%)</title><rect x="67.2" y="229" width="0.5" height="15.0" fill="rgb(242,46,50)" rx="2" ry="2" />
<text x="70.21" y="239.5" ></text>
</g>
<g >
<title>vmonyx`get_dirfd_file(int) (5 samples, 0.01%)</title><rect x="1182.5" y="245" width="0.2" height="15.0" fill="rgb(245,184,44)" rx="2" ry="2" />
<text x="1185.53" y="255.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107c087 (7 samples, 0.02%)</title><rect x="759.2" y="165" width="0.2" height="15.0" fill="rgb(215,153,14)" rx="2" ry="2" />
<text x="762.17" y="175.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (5 samples, 0.01%)</title><rect x="483.6" y="101" width="0.2" height="15.0" fill="rgb(231,143,1)" rx="2" ry="2" />
<text x="486.64" y="111.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (10 samples, 0.03%)</title><rect x="361.2" y="101" width="0.3" height="15.0" fill="rgb(230,118,17)" rx="2" ry="2" />
<text x="364.22" y="111.5" ></text>
</g>
<g >
<title>vmonyx`inode_release(inode*) (1,457 samples, 3.82%)</title><rect x="988.8" y="149" width="45.1" height="15.0" fill="rgb(225,35,9)" rx="2" ry="2" />
<text x="991.77" y="159.5" >vmon..</text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="1001.2" y="117" width="0.2" height="15.0" fill="rgb(215,164,38)" rx="2" ry="2" />
<text x="1004.23" y="127.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (4 samples, 0.01%)</title><rect x="1041.8" y="133" width="0.1" height="15.0" fill="rgb(243,171,43)" rx="2" ry="2" />
<text x="1044.78" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (1,056 samples, 2.77%)</title><rect x="713.4" y="181" width="32.7" height="15.0" fill="rgb(228,136,30)" rx="2" ry="2" />
<text x="716.36" y="191.5" >vm..</text>
</g>
<g >
<title>vmonyx`__spin_lock (35 samples, 0.09%)</title><rect x="632.1" y="181" width="1.1" height="15.0" fill="rgb(253,76,12)" rx="2" ry="2" />
<text x="635.08" y="191.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (100 samples, 0.26%)</title><rect x="746.2" y="181" width="3.1" height="15.0" fill="rgb(205,161,28)" rx="2" ry="2" />
<text x="749.16" y="191.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc4 (57 samples, 0.15%)</title><rect x="61.6" y="229" width="1.8" height="15.0" fill="rgb(243,77,13)" rx="2" ry="2" />
<text x="64.64" y="239.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (182 samples, 0.48%)</title><rect x="614.8" y="165" width="5.7" height="15.0" fill="rgb(216,223,53)" rx="2" ry="2" />
<text x="617.82" y="175.5" ></text>
</g>
<g >
<title>vmonyx`dentry_destroy(dentry*) (4 samples, 0.01%)</title><rect x="713.2" y="181" width="0.1" height="15.0" fill="rgb(213,188,3)" rx="2" ry="2" />
<text x="716.20" y="191.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e03f (8 samples, 0.02%)</title><rect x="66.8" y="229" width="0.3" height="15.0" fill="rgb(246,150,37)" rx="2" ry="2" />
<text x="69.81" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (121 samples, 0.32%)</title><rect x="1038.0" y="133" width="3.8" height="15.0" fill="rgb(221,46,36)" rx="2" ry="2" />
<text x="1041.03" y="143.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (8 samples, 0.02%)</title><rect x="1094.4" y="149" width="0.2" height="15.0" fill="rgb(226,61,0)" rx="2" ry="2" />
<text x="1097.37" y="159.5" ></text>
</g>
<g >
<title>vmonyx`dentry_lookup_internal(std::basic_string_view (668 samples, 1.75%)</title><rect x="473.3" y="133" width="20.7" height="15.0" fill="rgb(236,20,27)" rx="2" ry="2" />
<text x="476.29" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_put(dentry*) (124 samples, 0.33%)</title><rect x="1089.5" y="165" width="3.9" height="15.0" fill="rgb(205,98,27)" rx="2" ry="2" />
<text x="1092.54" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="1080.2" y="133" width="0.1" height="15.0" fill="rgb(252,20,31)" rx="2" ry="2" />
<text x="1083.22" y="143.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (60 samples, 0.16%)</title><rect x="1166.3" y="229" width="1.9" height="15.0" fill="rgb(224,145,19)" rx="2" ry="2" />
<text x="1169.30" y="239.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (481 samples, 1.26%)</title><rect x="541.3" y="149" width="14.9" height="15.0" fill="rgb(251,162,14)" rx="2" ry="2" />
<text x="544.28" y="159.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (6 samples, 0.02%)</title><rect x="473.0" y="133" width="0.2" height="15.0" fill="rgb(237,91,47)" rx="2" ry="2" />
<text x="476.04" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (8 samples, 0.02%)</title><rect x="414.3" y="101" width="0.2" height="15.0" fill="rgb(238,37,17)" rx="2" ry="2" />
<text x="417.28" y="111.5" ></text>
</g>
<g >
<title>vmonyx`unlink_handling::operator()(nameidata&amp;, std::basic_string_view (12,540 samples, 32.92%)</title><rect x="750.9" y="181" width="388.5" height="15.0" fill="rgb(234,162,17)" rx="2" ry="2" />
<text x="753.93" y="191.5" >vmonyx`unlink_handling::operator()(nameidata&amp;, std::..</text>
</g>
<g >
<title>vmonyx`mutex_lock(mutex*) (8 samples, 0.02%)</title><rect x="1001.5" y="133" width="0.3" height="15.0" fill="rgb(224,99,29)" rx="2" ry="2" />
<text x="1004.51" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (254 samples, 0.67%)</title><rect x="150.4" y="101" width="7.8" height="15.0" fill="rgb(226,153,40)" rx="2" ry="2" />
<text x="153.36" y="111.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (140 samples, 0.37%)</title><rect x="620.6" y="165" width="4.3" height="15.0" fill="rgb(239,209,17)" rx="2" ry="2" />
<text x="623.55" y="175.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (6 samples, 0.02%)</title><rect x="657.1" y="213" width="0.2" height="15.0" fill="rgb(206,95,33)" rx="2" ry="2" />
<text x="660.14" y="223.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (6 samples, 0.02%)</title><rect x="158.7" y="101" width="0.1" height="15.0" fill="rgb(218,110,4)" rx="2" ry="2" />
<text x="161.66" y="111.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (5 samples, 0.01%)</title><rect x="1028.5" y="85" width="0.1" height="15.0" fill="rgb(250,13,44)" rx="2" ry="2" />
<text x="1031.46" y="95.5" ></text>
</g>
<g >
<title>vmonyx`rb_tree_new (100 samples, 0.26%)</title><rect x="403.3" y="69" width="3.1" height="15.0" fill="rgb(235,171,38)" rx="2" ry="2" />
<text x="406.31" y="79.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (6 samples, 0.02%)</title><rect x="985.1" y="165" width="0.2" height="15.0" fill="rgb(215,148,41)" rx="2" ry="2" />
<text x="988.12" y="175.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (53 samples, 0.14%)</title><rect x="505.2" y="165" width="1.6" height="15.0" fill="rgb(229,166,5)" rx="2" ry="2" />
<text x="508.20" y="175.5" ></text>
</g>
<g >
<title>vmonyx`do_fxrstor(void*) (6 samples, 0.02%)</title><rect x="17.7" y="277" width="0.2" height="15.0" fill="rgb(209,151,3)" rx="2" ry="2" />
<text x="20.68" y="287.5" ></text>
</g>
<g >
<title>vmonyx`rwslock::try_write (28 samples, 0.07%)</title><rect x="1099.1" y="165" width="0.9" height="15.0" fill="rgb(209,6,40)" rx="2" ry="2" />
<text x="1102.08" y="175.5" ></text>
</g>
<g >
<title>vmonyx`wait_for(void*, bool (*)(void*), unsigned int, unsigned long) (75 samples, 0.20%)</title><rect x="432.8" y="117" width="2.3" height="15.0" fill="rgb(233,89,48)" rx="2" ry="2" />
<text x="435.77" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (14 samples, 0.04%)</title><rect x="1002.6" y="133" width="0.4" height="15.0" fill="rgb(254,197,44)" rx="2" ry="2" />
<text x="1005.59" y="143.5" ></text>
</g>
<g >
<title>vmonyx`mutex_lock(mutex*) (55 samples, 0.14%)</title><rect x="997.7" y="117" width="1.7" height="15.0" fill="rgb(211,44,32)" rx="2" ry="2" />
<text x="1000.73" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="726.5" y="149" width="0.1" height="15.0" fill="rgb(253,213,25)" rx="2" ry="2" />
<text x="729.49" y="159.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (61 samples, 0.16%)</title><rect x="1077.9" y="133" width="1.9" height="15.0" fill="rgb(252,33,14)" rx="2" ry="2" />
<text x="1080.89" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="43.8" y="245" width="0.2" height="15.0" fill="rgb(235,69,54)" rx="2" ry="2" />
<text x="46.83" y="255.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107ef87 (15 samples, 0.04%)</title><rect x="11.0" y="277" width="0.5" height="15.0" fill="rgb(224,140,49)" rx="2" ry="2" />
<text x="14.02" y="287.5" ></text>
</g>
<g >
<title>vmonyx`creat_vfs(dentry*, char const*, int) (14,084 samples, 36.97%)</title><rect x="72.9" y="213" width="436.2" height="15.0" fill="rgb(220,109,15)" rx="2" ry="2" />
<text x="75.85" y="223.5" >vmonyx`creat_vfs(dentry*, char const*, int)</text>
</g>
<g >
<title>vmonyx`strcpy_from_user (4 samples, 0.01%)</title><rect x="54.9" y="245" width="0.2" height="15.0" fill="rgb(249,172,12)" rx="2" ry="2" />
<text x="57.95" y="255.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="406.2" y="37" width="0.1" height="15.0" fill="rgb(206,123,32)" rx="2" ry="2" />
<text x="409.16" y="47.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_resolve_path(nameidata&amp;) (6 samples, 0.02%)</title><rect x="686.2" y="213" width="0.2" height="15.0" fill="rgb(238,80,27)" rx="2" ry="2" />
<text x="689.22" y="223.5" ></text>
</g>
<g >
<title>vmonyx`realloc (162 samples, 0.43%)</title><rect x="406.4" y="69" width="5.0" height="15.0" fill="rgb(207,50,33)" rx="2" ry="2" />
<text x="409.41" y="79.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (288 samples, 0.76%)</title><rect x="1118.2" y="117" width="8.9" height="15.0" fill="rgb(230,211,48)" rx="2" ry="2" />
<text x="1121.16" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (375 samples, 0.98%)</title><rect x="1066.3" y="133" width="11.6" height="15.0" fill="rgb(217,190,51)" rx="2" ry="2" />
<text x="1069.28" y="143.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="414.5" y="101" width="0.2" height="15.0" fill="rgb(211,34,37)" rx="2" ry="2" />
<text x="417.53" y="111.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (18 samples, 0.05%)</title><rect x="635.0" y="165" width="0.5" height="15.0" fill="rgb(229,45,35)" rx="2" ry="2" />
<text x="637.99" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (10 samples, 0.03%)</title><rect x="636.7" y="149" width="0.3" height="15.0" fill="rgb(220,61,10)" rx="2" ry="2" />
<text x="639.66" y="159.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (68 samples, 0.18%)</title><rect x="1034.0" y="149" width="2.1" height="15.0" fill="rgb(218,106,46)" rx="2" ry="2" />
<text x="1037.00" y="159.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (79 samples, 0.21%)</title><rect x="1173.3" y="213" width="2.5" height="15.0" fill="rgb(240,1,3)" rx="2" ry="2" />
<text x="1176.30" y="223.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="497.2" y="133" width="0.1" height="15.0" fill="rgb(233,12,7)" rx="2" ry="2" />
<text x="500.20" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (6 samples, 0.02%)</title><rect x="556.2" y="149" width="0.2" height="15.0" fill="rgb(239,168,19)" rx="2" ry="2" />
<text x="559.18" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (183 samples, 0.48%)</title><rect x="726.8" y="149" width="5.7" height="15.0" fill="rgb(244,85,26)" rx="2" ry="2" />
<text x="729.80" y="159.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (90 samples, 0.24%)</title><rect x="1168.3" y="229" width="2.7" height="15.0" fill="rgb(248,149,47)" rx="2" ry="2" />
<text x="1171.25" y="239.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (14 samples, 0.04%)</title><rect x="1079.8" y="133" width="0.4" height="15.0" fill="rgb(215,81,36)" rx="2" ry="2" />
<text x="1082.78" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_do_unlink(dentry*) (457 samples, 1.20%)</title><rect x="1043.9" y="165" width="14.2" height="15.0" fill="rgb(215,109,42)" rx="2" ry="2" />
<text x="1046.94" y="175.5" ></text>
</g>
<g >
<title>vmonyx`phys_to_page(unsigned long) (11 samples, 0.03%)</title><rect x="1032.2" y="85" width="0.4" height="15.0" fill="rgb(223,219,27)" rx="2" ry="2" />
<text x="1035.24" y="95.5" ></text>
</g>
<g >
<title>vmonyx`do_sys_unlink(int, char const*, int) (16,550 samples, 43.45%)</title><rect x="664.3" y="245" width="512.7" height="15.0" fill="rgb(217,203,2)" rx="2" ry="2" />
<text x="667.29" y="255.5" >vmonyx`do_sys_unlink(int, char const*, int)</text>
</g>
<g >
<title>vmonyx`0xffffffff8107dff2 (31 samples, 0.08%)</title><rect x="671.4" y="229" width="1.0" height="15.0" fill="rgb(251,216,26)" rx="2" ry="2" />
<text x="674.42" y="239.5" ></text>
</g>
<g >
<title>vmonyx`__can_sleep_internal() (22 samples, 0.06%)</title><rect x="113.1" y="101" width="0.7" height="15.0" fill="rgb(211,191,10)" rx="2" ry="2" />
<text x="116.12" y="111.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107efb6 (5 samples, 0.01%)</title><rect x="12.0" y="277" width="0.2" height="15.0" fill="rgb(238,25,51)" rx="2" ry="2" />
<text x="15.01" y="287.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (11 samples, 0.03%)</title><rect x="652.7" y="213" width="0.4" height="15.0" fill="rgb(228,173,40)" rx="2" ry="2" />
<text x="655.74" y="223.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (4 samples, 0.01%)</title><rect x="43.4" y="245" width="0.1" height="15.0" fill="rgb(212,216,28)" rx="2" ry="2" />
<text x="46.36" y="255.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (68 samples, 0.18%)</title><rect x="654.3" y="197" width="2.1" height="15.0" fill="rgb(213,189,4)" rx="2" ry="2" />
<text x="657.32" y="207.5" ></text>
</g>
<g >
<title>vmonyx`mutex_unlock(mutex*) (50 samples, 0.13%)</title><rect x="999.4" y="117" width="1.6" height="15.0" fill="rgb(220,132,46)" rx="2" ry="2" />
<text x="1002.43" y="127.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (16 samples, 0.04%)</title><rect x="616.1" y="149" width="0.5" height="15.0" fill="rgb(206,55,30)" rx="2" ry="2" />
<text x="619.12" y="159.5" ></text>
</g>
<g >
<title>vmonyx`inode_sync(inode*) (192 samples, 0.50%)</title><rect x="995.4" y="133" width="6.0" height="15.0" fill="rgb(225,181,51)" rx="2" ry="2" />
<text x="998.40" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="1042.1" y="149" width="0.2" height="15.0" fill="rgb(245,60,44)" rx="2" ry="2" />
<text x="1045.12" y="159.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107efbb (5 samples, 0.01%)</title><rect x="12.2" y="277" width="0.2" height="15.0" fill="rgb(207,0,12)" rx="2" ry="2" />
<text x="15.20" y="287.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="1033.8" y="117" width="0.1" height="15.0" fill="rgb(210,214,41)" rx="2" ry="2" />
<text x="1036.78" y="127.5" ></text>
</g>
<g >
<title>all (38,093 samples, 100%)</title><rect x="10.0" y="293" width="1180.0" height="15.0" fill="rgb(209,104,33)" rx="2" ry="2" />
<text x="13.00" y="303.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (17 samples, 0.04%)</title><rect x="37.7" y="277" width="0.6" height="15.0" fill="rgb(241,152,48)" rx="2" ry="2" />
<text x="40.72" y="287.5" ></text>
</g>
<g >
<title>vmonyx`__spin_unlock (7 samples, 0.02%)</title><rect x="995.2" y="133" width="0.2" height="15.0" fill="rgb(237,175,3)" rx="2" ry="2" />
<text x="998.19" y="143.5" ></text>
</g>
<g >
<title>vmonyx`proc_event_enter_syscall(syscall_frame*, unsigned long) (6 samples, 0.02%)</title><rect x="36.9" y="277" width="0.2" height="15.0" fill="rgb(206,159,25)" rx="2" ry="2" />
<text x="39.89" y="287.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (9 samples, 0.02%)</title><rect x="54.0" y="229" width="0.2" height="15.0" fill="rgb(219,24,47)" rx="2" ry="2" />
<text x="56.96" y="239.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (71 samples, 0.19%)</title><rect x="618.3" y="149" width="2.2" height="15.0" fill="rgb(227,174,44)" rx="2" ry="2" />
<text x="621.26" y="159.5" ></text>
</g>
<g >
<title>vmonyx`is_in_panic (5 samples, 0.01%)</title><rect x="113.8" y="101" width="0.2" height="15.0" fill="rgb(209,160,16)" rx="2" ry="2" />
<text x="116.80" y="111.5" ></text>
</g>
<g >
<title>vmonyx`x86::internal::kernel_thread_start (15 samples, 0.04%)</title><rect x="39.1" y="277" width="0.5" height="15.0" fill="rgb(232,66,1)" rx="2" ry="2" />
<text x="42.12" y="287.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e03f (6 samples, 0.02%)</title><rect x="673.7" y="229" width="0.2" height="15.0" fill="rgb(212,112,19)" rx="2" ry="2" />
<text x="676.68" y="239.5" ></text>
</g>
<g >
<title>vmonyx`phys_to_page(unsigned long) (7 samples, 0.02%)</title><rect x="1041.9" y="133" width="0.2" height="15.0" fill="rgb(220,138,30)" rx="2" ry="2" />
<text x="1044.90" y="143.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (83 samples, 0.22%)</title><rect x="1017.1" y="117" width="2.5" height="15.0" fill="rgb(250,227,28)" rx="2" ry="2" />
<text x="1020.06" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_resolve_path(nameidata&amp;) (13,452 samples, 35.31%)</title><rect x="84.4" y="149" width="416.7" height="15.0" fill="rgb(237,12,8)" rx="2" ry="2" />
<text x="87.38" y="159.5" >vmonyx`__dentry_resolve_path(nameidata&amp;)</text>
</g>
<g >
<title>vmonyx`__spin_lock (452 samples, 1.19%)</title><rect x="971.1" y="165" width="14.0" height="15.0" fill="rgb(210,5,15)" rx="2" ry="2" />
<text x="974.06" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (18 samples, 0.05%)</title><rect x="1165.6" y="213" width="0.5" height="15.0" fill="rgb(231,111,21)" rx="2" ry="2" />
<text x="1168.59" y="223.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (18 samples, 0.05%)</title><rect x="658.7" y="229" width="0.6" height="15.0" fill="rgb(243,8,8)" rx="2" ry="2" />
<text x="661.72" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_purge(slab_cache*) (5 samples, 0.01%)</title><rect x="43.5" y="245" width="0.1" height="15.0" fill="rgb(207,130,3)" rx="2" ry="2" />
<text x="46.49" y="255.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff810e8bf1 (5 samples, 0.01%)</title><rect x="122.6" y="101" width="0.2" height="15.0" fill="rgb(213,188,34)" rx="2" ry="2" />
<text x="125.63" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (36 samples, 0.09%)</title><rect x="1100.0" y="165" width="1.1" height="15.0" fill="rgb(237,28,49)" rx="2" ry="2" />
<text x="1102.95" y="175.5" ></text>
</g>
<g >
<title>vmonyx`get_token_from_path(nameidata&amp;) (73 samples, 0.19%)</title><rect x="1159.2" y="197" width="2.3" height="15.0" fill="rgb(246,196,13)" rx="2" ry="2" />
<text x="1162.21" y="207.5" ></text>
</g>
<g >
<title>vmonyx`get_mapping_info(void*) (9 samples, 0.02%)</title><rect x="1041.3" y="117" width="0.3" height="15.0" fill="rgb(225,150,23)" rx="2" ry="2" />
<text x="1044.31" y="127.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (13 samples, 0.03%)</title><rect x="1094.6" y="149" width="0.4" height="15.0" fill="rgb(227,100,23)" rx="2" ry="2" />
<text x="1097.62" y="159.5" ></text>
</g>
<g >
<title>vmonyx`phys_to_page(unsigned long) (6 samples, 0.02%)</title><rect x="657.3" y="213" width="0.2" height="15.0" fill="rgb(212,92,28)" rx="2" ry="2" />
<text x="660.32" y="223.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (363 samples, 0.95%)</title><rect x="573.9" y="133" width="11.3" height="15.0" fill="rgb(254,149,33)" rx="2" ry="2" />
<text x="576.93" y="143.5" ></text>
</g>
<g >
<title>vmonyx`do_sys_open(char const*, int, unsigned int, file*) (18,572 samples, 48.75%)</title><rect x="69.6" y="229" width="575.3" height="15.0" fill="rgb(226,6,21)" rx="2" ry="2" />
<text x="72.57" y="239.5" >vmonyx`do_sys_open(char const*, int, unsigned int, file*)</text>
</g>
<g >
<title>vmonyx`context_tracking_exit_kernel() (9 samples, 0.02%)</title><rect x="17.4" y="277" width="0.3" height="15.0" fill="rgb(209,147,26)" rx="2" ry="2" />
<text x="20.40" y="287.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8100e3c4 (7 samples, 0.02%)</title><rect x="10.0" y="277" width="0.2" height="15.0" fill="rgb(253,152,21)" rx="2" ry="2" />
<text x="13.03" y="287.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107b89c (44 samples, 0.12%)</title><rect x="757.8" y="165" width="1.4" height="15.0" fill="rgb(205,166,43)" rx="2" ry="2" />
<text x="760.81" y="175.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (130 samples, 0.34%)</title><rect x="1131.5" y="133" width="4.1" height="15.0" fill="rgb(246,186,27)" rx="2" ry="2" />
<text x="1134.55" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_resolve_path(nameidata&amp;) (3,631 samples, 9.53%)</title><rect x="516.1" y="197" width="112.5" height="15.0" fill="rgb(249,150,33)" rx="2" ry="2" />
<text x="519.10" y="207.5" >vmonyx`dentry..</text>
</g>
<g >
<title>vmonyx`context_tracking_enter_kernel() (97 samples, 0.25%)</title><rect x="19.1" y="261" width="3.0" height="15.0" fill="rgb(253,68,50)" rx="2" ry="2" />
<text x="22.14" y="271.5" ></text>
</g>
<g >
<title>vmonyx`thread_get_addr_limit (15 samples, 0.04%)</title><rect x="663.8" y="229" width="0.4" height="15.0" fill="rgb(221,176,22)" rx="2" ry="2" />
<text x="666.77" y="239.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="726.6" y="149" width="0.1" height="15.0" fill="rgb(236,116,36)" rx="2" ry="2" />
<text x="729.62" y="159.5" ></text>
</g>
<g >
<title>vmonyx`tmpfs_unlink(char const*, int, dentry*) (32 samples, 0.08%)</title><rect x="749.9" y="181" width="1.0" height="15.0" fill="rgb(248,43,41)" rx="2" ry="2" />
<text x="752.94" y="191.5" ></text>
</g>
<g >
<title>vmonyx`creat_vfs(dentry*, char const*, int) (9 samples, 0.02%)</title><rect x="69.3" y="229" width="0.3" height="15.0" fill="rgb(226,100,22)" rx="2" ry="2" />
<text x="72.29" y="239.5" ></text>
</g>
<g >
<title>vmonyx`superblock_add_inode_unlocked(superblock*, inode*) (251 samples, 0.66%)</title><rect x="418.2" y="101" width="7.8" height="15.0" fill="rgb(252,92,49)" rx="2" ry="2" />
<text x="421.21" y="111.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (28 samples, 0.07%)</title><rect x="482.4" y="101" width="0.8" height="15.0" fill="rgb(207,72,23)" rx="2" ry="2" />
<text x="485.37" y="111.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8100e3c4 (4 samples, 0.01%)</title><rect x="693.2" y="197" width="0.1" height="15.0" fill="rgb(236,44,36)" rx="2" ry="2" />
<text x="696.16" y="207.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (12 samples, 0.03%)</title><rect x="1131.0" y="133" width="0.3" height="15.0" fill="rgb(229,176,7)" rx="2" ry="2" />
<text x="1133.96" y="143.5" ></text>
</g>
<g >
<title>vmonyx`inode_to_file(inode*) (61 samples, 0.16%)</title><rect x="505.0" y="181" width="1.9" height="15.0" fill="rgb(216,227,23)" rx="2" ry="2" />
<text x="508.01" y="191.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (8 samples, 0.02%)</title><rect x="494.6" y="117" width="0.3" height="15.0" fill="rgb(248,30,37)" rx="2" ry="2" />
<text x="497.63" y="127.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (1,026 samples, 2.69%)</title><rect x="564.7" y="149" width="31.8" height="15.0" fill="rgb(207,1,28)" rx="2" ry="2" />
<text x="567.67" y="159.5" >vm..</text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (5 samples, 0.01%)</title><rect x="506.7" y="149" width="0.1" height="15.0" fill="rgb(207,62,13)" rx="2" ry="2" />
<text x="509.65" y="159.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e012 (4 samples, 0.01%)</title><rect x="65.4" y="229" width="0.1" height="15.0" fill="rgb(225,55,49)" rx="2" ry="2" />
<text x="68.39" y="239.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (335 samples, 0.88%)</title><rect x="389.5" y="101" width="10.3" height="15.0" fill="rgb(238,30,28)" rx="2" ry="2" />
<text x="392.47" y="111.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (5 samples, 0.01%)</title><rect x="747.1" y="165" width="0.1" height="15.0" fill="rgb(254,129,44)" rx="2" ry="2" />
<text x="750.06" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (9 samples, 0.02%)</title><rect x="434.8" y="101" width="0.3" height="15.0" fill="rgb(245,66,53)" rx="2" ry="2" />
<text x="437.79" y="111.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (46 samples, 0.12%)</title><rect x="362.5" y="101" width="1.4" height="15.0" fill="rgb(249,172,47)" rx="2" ry="2" />
<text x="365.52" y="111.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (405 samples, 1.06%)</title><rect x="475.2" y="117" width="12.6" height="15.0" fill="rgb(208,204,8)" rx="2" ry="2" />
<text x="478.24" y="127.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (6 samples, 0.02%)</title><rect x="1170.7" y="197" width="0.2" height="15.0" fill="rgb(230,146,20)" rx="2" ry="2" />
<text x="1173.73" y="207.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (136 samples, 0.36%)</title><rect x="557.0" y="149" width="4.2" height="15.0" fill="rgb(233,111,7)" rx="2" ry="2" />
<text x="559.96" y="159.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107b89c (27 samples, 0.07%)</title><rect x="113.1" y="117" width="0.9" height="15.0" fill="rgb(238,57,15)" rx="2" ry="2" />
<text x="116.12" y="127.5" ></text>
</g>
<g >
<title>vmonyx`get_mapping_info(void*) (11 samples, 0.03%)</title><rect x="1031.5" y="69" width="0.4" height="15.0" fill="rgb(230,203,27)" rx="2" ry="2" />
<text x="1034.52" y="79.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (94 samples, 0.25%)</title><rect x="723.2" y="149" width="2.9" height="15.0" fill="rgb(251,190,36)" rx="2" ry="2" />
<text x="726.21" y="159.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (59 samples, 0.15%)</title><rect x="122.8" y="101" width="1.8" height="15.0" fill="rgb(239,135,15)" rx="2" ry="2" />
<text x="125.79" y="111.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (16 samples, 0.04%)</title><rect x="628.1" y="181" width="0.5" height="15.0" fill="rgb(225,60,40)" rx="2" ry="2" />
<text x="631.08" y="191.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (5 samples, 0.01%)</title><rect x="53.8" y="229" width="0.2" height="15.0" fill="rgb(211,131,22)" rx="2" ry="2" />
<text x="56.80" y="239.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (92 samples, 0.24%)</title><rect x="660.8" y="213" width="2.9" height="15.0" fill="rgb(247,122,48)" rx="2" ry="2" />
<text x="663.82" y="223.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc2 (16 samples, 0.04%)</title><rect x="668.3" y="229" width="0.5" height="15.0" fill="rgb(236,114,12)" rx="2" ry="2" />
<text x="671.26" y="239.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="555.6" y="133" width="0.4" height="15.0" fill="rgb(239,25,28)" rx="2" ry="2" />
<text x="558.59" y="143.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_create_pending_lookup(char const*, inode*, dentry*, bool) (1,544 samples, 4.05%)</title><rect x="114.5" y="117" width="47.8" height="15.0" fill="rgb(245,64,27)" rx="2" ry="2" />
<text x="117.45" y="127.5" >vmon..</text>
</g>
<g >
<title>vmonyx`__spin_unlock (6 samples, 0.02%)</title><rect x="359.7" y="117" width="0.2" height="15.0" fill="rgb(229,21,9)" rx="2" ry="2" />
<text x="362.70" y="127.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (192 samples, 0.50%)</title><rect x="1036.2" y="149" width="5.9" height="15.0" fill="rgb(217,207,13)" rx="2" ry="2" />
<text x="1039.17" y="159.5" ></text>
</g>
<g >
<title>vmonyx`do_syscall64 (133 samples, 0.35%)</title><rect x="18.0" y="277" width="4.1" height="15.0" fill="rgb(242,50,22)" rx="2" ry="2" />
<text x="21.02" y="287.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e03d (9 samples, 0.02%)</title><rect x="673.4" y="229" width="0.3" height="15.0" fill="rgb(254,129,9)" rx="2" ry="2" />
<text x="676.40" y="239.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107ef8f (11 samples, 0.03%)</title><rect x="11.5" y="277" width="0.4" height="15.0" fill="rgb(252,92,48)" rx="2" ry="2" />
<text x="14.52" y="287.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="1095.0" y="149" width="0.4" height="15.0" fill="rgb(206,82,20)" rx="2" ry="2" />
<text x="1098.03" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (636 samples, 1.67%)</title><rect x="1139.4" y="181" width="19.7" height="15.0" fill="rgb(207,160,14)" rx="2" ry="2" />
<text x="1142.38" y="191.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (16 samples, 0.04%)</title><rect x="616.6" y="149" width="0.5" height="15.0" fill="rgb(228,39,52)" rx="2" ry="2" />
<text x="619.62" y="159.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107ef85 (11 samples, 0.03%)</title><rect x="10.7" y="277" width="0.3" height="15.0" fill="rgb(249,189,26)" rx="2" ry="2" />
<text x="13.68" y="287.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (67 samples, 0.18%)</title><rect x="1029.4" y="69" width="2.0" height="15.0" fill="rgb(213,143,32)" rx="2" ry="2" />
<text x="1032.35" y="79.5" ></text>
</g>
<g >
<title>vmonyx`get_token_from_path(nameidata&amp;) (82 samples, 0.22%)</title><rect x="625.5" y="181" width="2.5" height="15.0" fill="rgb(231,228,44)" rx="2" ry="2" />
<text x="628.48" y="191.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (74 samples, 0.19%)</title><rect x="1038.9" y="117" width="2.3" height="15.0" fill="rgb(234,110,53)" rx="2" ry="2" />
<text x="1041.90" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (8 samples, 0.02%)</title><rect x="1042.3" y="149" width="0.2" height="15.0" fill="rgb(206,17,11)" rx="2" ry="2" />
<text x="1045.27" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (81 samples, 0.21%)</title><rect x="498.6" y="133" width="2.5" height="15.0" fill="rgb(248,160,28)" rx="2" ry="2" />
<text x="501.57" y="143.5" ></text>
</g>
<g >
<title>vmonyx`__sys_close_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (406 samples, 1.07%)</title><rect x="41.7" y="261" width="12.5" height="15.0" fill="rgb(210,81,4)" rx="2" ry="2" />
<text x="44.66" y="271.5" ></text>
</g>
<g >
<title>vmonyx`dentry_resolve_path(nameidata&amp;) (15,372 samples, 40.35%)</title><rect x="686.4" y="213" width="476.2" height="15.0" fill="rgb(248,156,2)" rx="2" ry="2" />
<text x="689.41" y="223.5" >vmonyx`dentry_resolve_path(nameidata&amp;)</text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (83 samples, 0.22%)</title><rect x="403.8" y="53" width="2.6" height="15.0" fill="rgb(224,46,28)" rx="2" ry="2" />
<text x="406.84" y="63.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="556.1" y="133" width="0.1" height="15.0" fill="rgb(214,181,2)" rx="2" ry="2" />
<text x="559.06" y="143.5" ></text>
</g>
<g >
<title>vmonyx`do_fxsave(void*) (5 samples, 0.01%)</title><rect x="17.9" y="277" width="0.1" height="15.0" fill="rgb(240,220,29)" rx="2" ry="2" />
<text x="20.87" y="287.5" ></text>
</g>
<g >
<title>vmonyx`inode_is_cacheable(inode*) (7 samples, 0.02%)</title><rect x="988.6" y="149" width="0.2" height="15.0" fill="rgb(224,173,32)" rx="2" ry="2" />
<text x="991.56" y="159.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff810e8bfa (5 samples, 0.01%)</title><rect x="148.7" y="85" width="0.1" height="15.0" fill="rgb(253,113,9)" rx="2" ry="2" />
<text x="151.65" y="95.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (5 samples, 0.01%)</title><rect x="360.3" y="117" width="0.1" height="15.0" fill="rgb(210,176,28)" rx="2" ry="2" />
<text x="363.25" y="127.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (6 samples, 0.02%)</title><rect x="413.3" y="85" width="0.1" height="15.0" fill="rgb(247,105,17)" rx="2" ry="2" />
<text x="416.26" y="95.5" ></text>
</g>
<g >
<title>vmonyx`__sys_open_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (19,692 samples, 51.69%)</title><rect x="54.2" y="261" width="610.0" height="15.0" fill="rgb(217,126,32)" rx="2" ry="2" />
<text x="57.23" y="271.5" >vmonyx`__sys_open_thunk(unsigned long, unsigned long, unsigned long, unsigned long, ..</text>
</g>
<g >
<title>vmonyx`wait_token::wait (243 samples, 0.64%)</title><rect x="738.5" y="165" width="7.6" height="15.0" fill="rgb(229,117,38)" rx="2" ry="2" />
<text x="741.54" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (8 samples, 0.02%)</title><rect x="411.0" y="37" width="0.2" height="15.0" fill="rgb(213,123,36)" rx="2" ry="2" />
<text x="413.99" y="47.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (49 samples, 0.13%)</title><rect x="67.7" y="229" width="1.5" height="15.0" fill="rgb(235,123,36)" rx="2" ry="2" />
<text x="70.71" y="239.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (129 samples, 0.34%)</title><rect x="483.8" y="101" width="4.0" height="15.0" fill="rgb(222,223,18)" rx="2" ry="2" />
<text x="486.79" y="111.5" ></text>
</g>
<g >
<title>vmonyx`rb_tree_new (11 samples, 0.03%)</title><rect x="401.5" y="85" width="0.3" height="15.0" fill="rgb(243,30,41)" rx="2" ry="2" />
<text x="404.49" y="95.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (7 samples, 0.02%)</title><rect x="588.9" y="133" width="0.2" height="15.0" fill="rgb(228,55,13)" rx="2" ry="2" />
<text x="591.93" y="143.5" ></text>
</g>
<g >
<title>vmonyx`strlcpy (51 samples, 0.13%)</title><rect x="377.0" y="117" width="1.5" height="15.0" fill="rgb(231,175,35)" rx="2" ry="2" />
<text x="379.95" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_resolve_path(nameidata&amp;) (15,035 samples, 39.47%)</title><rect x="693.3" y="197" width="465.8" height="15.0" fill="rgb(237,199,36)" rx="2" ry="2" />
<text x="696.35" y="207.5" >vmonyx`__dentry_resolve_path(nameidata&amp;)</text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (16 samples, 0.04%)</title><rect x="647.4" y="213" width="0.5" height="15.0" fill="rgb(225,152,25)" rx="2" ry="2" />
<text x="650.41" y="223.5" ></text>
</g>
<g >
<title>vmonyx`tree_iterator_first (15 samples, 0.04%)</title><rect x="1014.8" y="133" width="0.5" height="15.0" fill="rgb(226,51,43)" rx="2" ry="2" />
<text x="1017.83" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (4 samples, 0.01%)</title><rect x="497.1" y="133" width="0.1" height="15.0" fill="rgb(221,194,25)" rx="2" ry="2" />
<text x="500.08" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (9 samples, 0.02%)</title><rect x="643.8" y="213" width="0.2" height="15.0" fill="rgb(229,31,37)" rx="2" ry="2" />
<text x="646.75" y="223.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (14 samples, 0.04%)</title><rect x="158.2" y="101" width="0.5" height="15.0" fill="rgb(214,146,38)" rx="2" ry="2" />
<text x="161.22" y="111.5" ></text>
</g>
<g >
<title>vmonyx`__dentry_try_to_open(std::basic_string_view (808 samples, 2.12%)</title><rect x="536.1" y="165" width="25.1" height="15.0" fill="rgb(248,90,1)" rx="2" ry="2" />
<text x="539.14" y="175.5" >v..</text>
</g>
<g >
<title>vmonyx`is_in_panic (17 samples, 0.04%)</title><rect x="758.6" y="149" width="0.6" height="15.0" fill="rgb(254,179,11)" rx="2" ry="2" />
<text x="761.65" y="159.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (4 samples, 0.01%)</title><rect x="732.5" y="165" width="0.1" height="15.0" fill="rgb(214,42,35)" rx="2" ry="2" />
<text x="735.47" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (9 samples, 0.02%)</title><rect x="747.6" y="165" width="0.3" height="15.0" fill="rgb(217,189,30)" rx="2" ry="2" />
<text x="750.59" y="175.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (269 samples, 0.71%)</title><rect x="351.4" y="117" width="8.3" height="15.0" fill="rgb(226,78,17)" rx="2" ry="2" />
<text x="354.36" y="127.5" ></text>
</g>
<g >
<title>vmonyx`fd_put(file*) [clone .part.0] (29 samples, 0.08%)</title><rect x="48.6" y="229" width="0.9" height="15.0" fill="rgb(224,44,49)" rx="2" ry="2" />
<text x="51.60" y="239.5" ></text>
</g>
<g >
<title>vmonyx`do_xrstor(void*, long) (79 samples, 0.21%)</title><rect x="22.1" y="277" width="2.5" height="15.0" fill="rgb(244,188,25)" rx="2" ry="2" />
<text x="25.14" y="287.5" ></text>
</g>
<g >
<title>vmonyx`strlcpy (19 samples, 0.05%)</title><rect x="1175.8" y="229" width="0.6" height="15.0" fill="rgb(232,18,33)" rx="2" ry="2" />
<text x="1178.78" y="239.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e01f (19 samples, 0.05%)</title><rect x="672.5" y="229" width="0.6" height="15.0" fill="rgb(243,194,27)" rx="2" ry="2" />
<text x="675.50" y="239.5" ></text>
</g>
<g >
<title>vmonyx`rb_tree_free (308 samples, 0.81%)</title><rect x="1023.8" y="117" width="9.6" height="15.0" fill="rgb(221,202,21)" rx="2" ry="2" />
<text x="1026.81" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__can_sleep_internal() (7 samples, 0.02%)</title><rect x="996.4" y="117" width="0.2" height="15.0" fill="rgb(230,41,14)" rx="2" ry="2" />
<text x="999.43" y="127.5" ></text>
</g>
<g >
<title>vmonyx`clock_get_posix_time() (12 samples, 0.03%)</title><rect x="359.9" y="117" width="0.4" height="15.0" fill="rgb(236,229,37)" rx="2" ry="2" />
<text x="362.88" y="127.5" ></text>
</g>
<g >
<title>vmonyx`strncpy (5 samples, 0.01%)</title><rect x="1111.5" y="165" width="0.2" height="15.0" fill="rgb(235,138,40)" rx="2" ry="2" />
<text x="1114.54" y="175.5" ></text>
</g>
<g >
<title>vmonyx`__memmove (10 samples, 0.03%)</title><rect x="103.8" y="133" width="0.3" height="15.0" fill="rgb(248,120,50)" rx="2" ry="2" />
<text x="106.80" y="143.5" ></text>
</g>
<g >
<title>vmonyx`proc_event_exit_syscall(long, long) (19 samples, 0.05%)</title><rect x="37.1" y="277" width="0.6" height="15.0" fill="rgb(211,177,32)" rx="2" ry="2" />
<text x="40.07" y="287.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (6 samples, 0.02%)</title><rect x="1084.9" y="149" width="0.2" height="15.0" fill="rgb(212,159,10)" rx="2" ry="2" />
<text x="1087.90" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sys_close(int) (7 samples, 0.02%)</title><rect x="1188.7" y="261" width="0.2" height="15.0" fill="rgb(223,167,7)" rx="2" ry="2" />
<text x="1191.67" y="271.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (12 samples, 0.03%)</title><rect x="1171.4" y="229" width="0.4" height="15.0" fill="rgb(251,223,37)" rx="2" ry="2" />
<text x="1174.38" y="239.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e01f (10 samples, 0.03%)</title><rect x="65.6" y="229" width="0.3" height="15.0" fill="rgb(205,35,18)" rx="2" ry="2" />
<text x="68.60" y="239.5" ></text>
</g>
<g >
<title>vmonyx`do_sys_unlink(int, char const*, int) (9 samples, 0.02%)</title><rect x="1186.3" y="261" width="0.3" height="15.0" fill="rgb(233,86,16)" rx="2" ry="2" />
<text x="1189.34" y="271.5" ></text>
</g>
<g >
<title>vmonyx`sys_open(char const*, int, unsigned int) (15 samples, 0.04%)</title><rect x="1188.9" y="261" width="0.4" height="15.0" fill="rgb(251,132,23)" rx="2" ry="2" />
<text x="1191.88" y="271.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (16 samples, 0.04%)</title><rect x="614.3" y="165" width="0.5" height="15.0" fill="rgb(246,131,28)" rx="2" ry="2" />
<text x="617.33" y="175.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (18 samples, 0.05%)</title><rect x="1085.1" y="149" width="0.5" height="15.0" fill="rgb(206,130,1)" rx="2" ry="2" />
<text x="1088.08" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (9 samples, 0.02%)</title><rect x="1033.0" y="101" width="0.3" height="15.0" fill="rgb(225,115,8)" rx="2" ry="2" />
<text x="1035.98" y="111.5" ></text>
</g>
<g >
<title>vmonyx`get_mapping_info(void*) (10 samples, 0.03%)</title><rect x="1023.1" y="85" width="0.3" height="15.0" fill="rgb(210,100,33)" rx="2" ry="2" />
<text x="1026.13" y="95.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (4 samples, 0.01%)</title><rect x="504.6" y="149" width="0.2" height="15.0" fill="rgb(208,106,3)" rx="2" ry="2" />
<text x="507.64" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (6 samples, 0.02%)</title><rect x="43.6" y="245" width="0.2" height="15.0" fill="rgb(226,217,28)" rx="2" ry="2" />
<text x="46.64" y="255.5" ></text>
</g>
<g >
<title>vmonyx`__cpu_identify() (6 samples, 0.02%)</title><rect x="403.0" y="69" width="0.2" height="15.0" fill="rgb(216,3,36)" rx="2" ry="2" />
<text x="406.03" y="79.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (151 samples, 0.40%)</title><rect x="718.5" y="149" width="4.7" height="15.0" fill="rgb(206,94,53)" rx="2" ry="2" />
<text x="721.53" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (185 samples, 0.49%)</title><rect x="637.4" y="165" width="5.7" height="15.0" fill="rgb(227,191,3)" rx="2" ry="2" />
<text x="640.40" y="175.5" ></text>
</g>
<g >
<title>vmonyx`__errno_location (5 samples, 0.01%)</title><rect x="624.9" y="181" width="0.2" height="15.0" fill="rgb(211,141,39)" rx="2" ry="2" />
<text x="627.92" y="191.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (11 samples, 0.03%)</title><rect x="749.4" y="181" width="0.4" height="15.0" fill="rgb(251,140,35)" rx="2" ry="2" />
<text x="752.42" y="191.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff810848be (5 samples, 0.01%)</title><rect x="654.2" y="197" width="0.1" height="15.0" fill="rgb(239,92,50)" rx="2" ry="2" />
<text x="657.16" y="207.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfc4 (55 samples, 0.14%)</title><rect x="668.8" y="229" width="1.7" height="15.0" fill="rgb(216,195,41)" rx="2" ry="2" />
<text x="671.75" y="239.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (4 samples, 0.01%)</title><rect x="1080.3" y="133" width="0.2" height="15.0" fill="rgb(220,34,43)" rx="2" ry="2" />
<text x="1083.34" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (4 samples, 0.01%)</title><rect x="1128.4" y="117" width="0.1" height="15.0" fill="rgb(247,63,43)" rx="2" ry="2" />
<text x="1131.39" y="127.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (130 samples, 0.34%)</title><rect x="1019.8" y="117" width="4.0" height="15.0" fill="rgb(240,150,47)" rx="2" ry="2" />
<text x="1022.75" y="127.5" ></text>
</g>
<g >
<title>vmonyx`rw_lock_trywrite(rwlock*) (10 samples, 0.03%)</title><rect x="364.3" y="117" width="0.4" height="15.0" fill="rgb(223,137,11)" rx="2" ry="2" />
<text x="367.34" y="127.5" ></text>
</g>
<g >
<title>vmonyx`superblock_remove_inode(superblock*, inode*) (379 samples, 0.99%)</title><rect x="1003.1" y="133" width="11.7" height="15.0" fill="rgb(247,227,1)" rx="2" ry="2" />
<text x="1006.09" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (10 samples, 0.03%)</title><rect x="1002.3" y="133" width="0.3" height="15.0" fill="rgb(212,101,12)" rx="2" ry="2" />
<text x="1005.28" y="143.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (8 samples, 0.02%)</title><rect x="1023.5" y="101" width="0.2" height="15.0" fill="rgb(253,99,51)" rx="2" ry="2" />
<text x="1026.50" y="111.5" ></text>
</g>
<g >
<title>vmonyx`get_mapping_info(void*) (11 samples, 0.03%)</title><rect x="656.6" y="197" width="0.4" height="15.0" fill="rgb(229,131,15)" rx="2" ry="2" />
<text x="659.61" y="207.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (782 samples, 2.05%)</title><rect x="1060.7" y="149" width="24.2" height="15.0" fill="rgb(253,3,0)" rx="2" ry="2" />
<text x="1063.67" y="159.5" >v..</text>
</g>
<g >
<title>vmonyx`creds_get() (9 samples, 0.02%)</title><rect x="561.2" y="165" width="0.3" height="15.0" fill="rgb(246,34,38)" rx="2" ry="2" />
<text x="564.23" y="175.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107e02b (4 samples, 0.01%)</title><rect x="673.1" y="229" width="0.1" height="15.0" fill="rgb(219,34,35)" rx="2" ry="2" />
<text x="676.12" y="239.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (88 samples, 0.23%)</title><rect x="1055.4" y="149" width="2.7" height="15.0" fill="rgb(247,227,29)" rx="2" ry="2" />
<text x="1058.37" y="159.5" ></text>
</g>
<g >
<title>vmonyx`__sys_close_thunk(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) (61 samples, 0.16%)</title><rect x="12.5" y="277" width="1.9" height="15.0" fill="rgb(246,153,4)" rx="2" ry="2" />
<text x="15.48" y="287.5" ></text>
</g>
<g >
<title>vmonyx`cache_to_paging_bits(unsigned char) (4 samples, 0.01%)</title><rect x="1023.0" y="85" width="0.1" height="15.0" fill="rgb(212,112,12)" rx="2" ry="2" />
<text x="1026.00" y="95.5" ></text>
</g>
<g >
<title>vmonyx`__can_sleep_internal() (25 samples, 0.07%)</title><rect x="757.9" y="149" width="0.7" height="15.0" fill="rgb(206,2,42)" rx="2" ry="2" />
<text x="760.87" y="159.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (235 samples, 0.62%)</title><rect x="589.2" y="133" width="7.3" height="15.0" fill="rgb(224,185,35)" rx="2" ry="2" />
<text x="592.17" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (16 samples, 0.04%)</title><rect x="366.7" y="117" width="0.5" height="15.0" fill="rgb(250,207,31)" rx="2" ry="2" />
<text x="369.70" y="127.5" ></text>
</g>
<g >
<title>vmonyx`pat_init() (6 samples, 0.02%)</title><rect x="657.0" y="197" width="0.1" height="15.0" fill="rgb(245,122,38)" rx="2" ry="2" />
<text x="659.95" y="207.5" ></text>
</g>
<g >
<title>vmonyx`realloc (8 samples, 0.02%)</title><rect x="364.1" y="117" width="0.2" height="15.0" fill="rgb(220,26,19)" rx="2" ry="2" />
<text x="367.10" y="127.5" ></text>
</g>
<g >
<title>vmonyx`file_alloc(file*, ioctx*) (423 samples, 1.11%)</title><rect x="630.1" y="197" width="13.1" height="15.0" fill="rgb(209,147,15)" rx="2" ry="2" />
<text x="633.09" y="207.5" ></text>
</g>
<g >
<title>vmonyx`sys_close(int) (332 samples, 0.87%)</title><rect x="44.0" y="245" width="10.2" height="15.0" fill="rgb(224,209,27)" rx="2" ry="2" />
<text x="46.95" y="255.5" ></text>
</g>
<g >
<title>vmonyx`strncmp (22 samples, 0.06%)</title><rect x="149.5" y="85" width="0.6" height="15.0" fill="rgb(239,152,44)" rx="2" ry="2" />
<text x="152.46" y="95.5" ></text>
</g>
<g >
<title>vmonyx`superblock_add_inode(superblock*, inode*) (115 samples, 0.30%)</title><rect x="414.7" y="101" width="3.5" height="15.0" fill="rgb(220,177,22)" rx="2" ry="2" />
<text x="417.65" y="111.5" ></text>
</g>
<g >
<title>vmonyx`pop_arg.part.0 (13 samples, 0.03%)</title><rect x="401.1" y="85" width="0.4" height="15.0" fill="rgb(236,149,25)" rx="2" ry="2" />
<text x="404.08" y="95.5" ></text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (40 samples, 0.11%)</title><rect x="1021.8" y="85" width="1.2" height="15.0" fill="rgb(244,195,34)" rx="2" ry="2" />
<text x="1024.76" y="95.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc(slab_cache*, unsigned int) (76 samples, 0.20%)</title><rect x="409.0" y="53" width="2.3" height="15.0" fill="rgb(206,213,35)" rx="2" ry="2" />
<text x="411.98" y="63.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (13 samples, 0.03%)</title><rect x="556.4" y="149" width="0.4" height="15.0" fill="rgb(249,29,49)" rx="2" ry="2" />
<text x="559.37" y="159.5" ></text>
</g>
<g >
<title>vmonyx`strlcpy (29 samples, 0.08%)</title><rect x="507.0" y="181" width="0.9" height="15.0" fill="rgb(242,149,15)" rx="2" ry="2" />
<text x="509.96" y="191.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_free(slab_cache*, void*) (192 samples, 0.50%)</title><rect x="1026.6" y="101" width="6.0" height="15.0" fill="rgb(250,199,24)" rx="2" ry="2" />
<text x="1029.63" y="111.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache(dentry*, std::basic_string_view (543 samples, 1.43%)</title><rect x="715.7" y="165" width="16.8" height="15.0" fill="rgb(225,92,38)" rx="2" ry="2" />
<text x="718.65" y="175.5" ></text>
</g>
<g >
<title>vmonyx`__file_close_unlocked(int, process*) (15 samples, 0.04%)</title><rect x="41.7" y="245" width="0.4" height="15.0" fill="rgb(233,219,16)" rx="2" ry="2" />
<text x="44.66" y="255.5" ></text>
</g>
<g >
<title>vmonyx`open_with_vnode(file*, int) (487 samples, 1.28%)</title><rect x="628.6" y="213" width="15.1" height="15.0" fill="rgb(244,130,48)" rx="2" ry="2" />
<text x="631.58" y="223.5" ></text>
</g>
<g >
<title>vmonyx`generic_last_name_helper(dentry*, char const*, last_name_handling&amp;, unsigned int) (15,711 samples, 41.24%)</title><rect x="675.9" y="229" width="486.7" height="15.0" fill="rgb(233,119,13)" rx="2" ry="2" />
<text x="678.91" y="239.5" >vmonyx`generic_last_name_helper(dentry*, char const*, last_name_ha..</text>
</g>
<g >
<title>vmonyx`__spin_lock (172 samples, 0.45%)</title><rect x="989.9" y="133" width="5.3" height="15.0" fill="rgb(205,14,26)" rx="2" ry="2" />
<text x="992.86" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sha256_compress (21 samples, 0.06%)</title><rect x="1101.1" y="165" width="0.6" height="15.0" fill="rgb(223,160,52)" rx="2" ry="2" />
<text x="1104.07" y="175.5" ></text>
</g>
<g >
<title>vmonyx`generic_last_name_helper(dentry*, char const*, last_name_handling&amp;, unsigned int) (13,917 samples, 36.53%)</title><rect x="73.8" y="181" width="431.1" height="15.0" fill="rgb(209,149,48)" rx="2" ry="2" />
<text x="76.84" y="191.5" >vmonyx`generic_last_name_helper(dentry*, char const*, last..</text>
</g>
<g >
<title>vmonyx`__get_mapping_info(void*, mm_address_space*) (4 samples, 0.01%)</title><rect x="1037.9" y="133" width="0.1" height="15.0" fill="rgb(233,197,17)" rx="2" ry="2" />
<text x="1040.90" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_resolve_path(nameidata&amp;) (4 samples, 0.01%)</title><rect x="509.1" y="213" width="0.2" height="15.0" fill="rgb(223,69,16)" rx="2" ry="2" />
<text x="512.13" y="223.5" ></text>
</g>
<g >
<title>vmonyx`softirq_pending() (5 samples, 0.01%)</title><rect x="1095.5" y="149" width="0.1" height="15.0" fill="rgb(234,35,11)" rx="2" ry="2" />
<text x="1098.49" y="159.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (14 samples, 0.04%)</title><rect x="495.1" y="117" width="0.4" height="15.0" fill="rgb(239,53,37)" rx="2" ry="2" />
<text x="498.10" y="127.5" ></text>
</g>
<g >
<title>vmonyx`kmem_cache_alloc_nopcpu(slab_cache*, unsigned int) (4 samples, 0.01%)</title><rect x="651.4" y="229" width="0.1" height="15.0" fill="rgb(239,128,39)" rx="2" ry="2" />
<text x="654.41" y="239.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (106 samples, 0.28%)</title><rect x="1093.5" y="165" width="3.3" height="15.0" fill="rgb(225,70,47)" rx="2" ry="2" />
<text x="1096.48" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (21 samples, 0.06%)</title><rect x="366.0" y="117" width="0.7" height="15.0" fill="rgb(206,34,52)" rx="2" ry="2" />
<text x="369.05" y="127.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107dfe6 (5 samples, 0.01%)</title><rect x="64.2" y="229" width="0.2" height="15.0" fill="rgb(217,75,47)" rx="2" ry="2" />
<text x="67.24" y="239.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (8 samples, 0.02%)</title><rect x="746.8" y="165" width="0.3" height="15.0" fill="rgb(245,75,52)" rx="2" ry="2" />
<text x="749.81" y="175.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff810e8ccd (8 samples, 0.02%)</title><rect x="148.8" y="85" width="0.3" height="15.0" fill="rgb(227,227,3)" rx="2" ry="2" />
<text x="151.84" y="95.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (148 samples, 0.39%)</title><rect x="477.8" y="101" width="4.6" height="15.0" fill="rgb(249,187,10)" rx="2" ry="2" />
<text x="480.78" y="111.5" ></text>
</g>
<g >
<title>vmonyx`0xffffffff8107ef9b (5 samples, 0.01%)</title><rect x="11.9" y="277" width="0.1" height="15.0" fill="rgb(221,181,37)" rx="2" ry="2" />
<text x="14.86" y="287.5" ></text>
</g>
<g >
<title>vmonyx`creds_get() (4 samples, 0.01%)</title><rect x="400.3" y="101" width="0.1" height="15.0" fill="rgb(219,94,45)" rx="2" ry="2" />
<text x="403.28" y="111.5" ></text>
</g>
<g >
<title>vmonyx`rwslock::try_read (8 samples, 0.02%)</title><rect x="1098.8" y="165" width="0.3" height="15.0" fill="rgb(238,125,16)" rx="2" ry="2" />
<text x="1101.84" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (15 samples, 0.04%)</title><rect x="663.2" y="197" width="0.4" height="15.0" fill="rgb(230,109,32)" rx="2" ry="2" />
<text x="666.18" y="207.5" ></text>
</g>
<g >
<title>vmonyx`inode_can_access(inode*, unsigned int) (100 samples, 0.26%)</title><rect x="360.8" y="117" width="3.1" height="15.0" fill="rgb(244,58,27)" rx="2" ry="2" />
<text x="363.84" y="127.5" ></text>
</g>
<g >
<title>vmonyx`kfree(void*) (97 samples, 0.25%)</title><rect x="648.4" y="229" width="3.0" height="15.0" fill="rgb(223,5,48)" rx="2" ry="2" />
<text x="651.40" y="239.5" ></text>
</g>
<g >
<title>vmonyx`mutex_unlock(mutex*) (6 samples, 0.02%)</title><rect x="1001.8" y="133" width="0.1" height="15.0" fill="rgb(217,101,33)" rx="2" ry="2" />
<text x="1004.75" y="143.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (22 samples, 0.06%)</title><rect x="588.1" y="133" width="0.6" height="15.0" fill="rgb(249,74,47)" rx="2" ry="2" />
<text x="591.06" y="143.5" ></text>
</g>
<g >
<title>vmonyx`dentry_put(dentry*) (50 samples, 0.13%)</title><rect x="47.0" y="229" width="1.6" height="15.0" fill="rgb(239,24,52)" rx="2" ry="2" />
<text x="50.05" y="239.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (10 samples, 0.03%)</title><rect x="361.5" y="101" width="0.3" height="15.0" fill="rgb(212,134,39)" rx="2" ry="2" />
<text x="364.52" y="111.5" ></text>
</g>
<g >
<title>vmonyx`hash_wait(wait_token&amp;) (36 samples, 0.09%)</title><rect x="1127.1" y="117" width="1.1" height="15.0" fill="rgb(253,162,29)" rx="2" ry="2" />
<text x="1130.09" y="127.5" ></text>
</g>
<g >
<title>vmonyx`__spin_lock (34 samples, 0.09%)</title><rect x="996.6" y="117" width="1.1" height="15.0" fill="rgb(245,94,19)" rx="2" ry="2" />
<text x="999.64" y="127.5" ></text>
</g>
<g >
<title>vmonyx`inode_mark_dirty(inode*) (10 samples, 0.03%)</title><rect x="1096.8" y="165" width="0.3" height="15.0" fill="rgb(222,193,11)" rx="2" ry="2" />
<text x="1099.76" y="175.5" ></text>
</g>
<g >
<title>vmonyx`sched_handle_preempt(bool) (14 samples, 0.04%)</title><rect x="643.2" y="197" width="0.4" height="15.0" fill="rgb(241,129,28)" rx="2" ry="2" />
<text x="646.20" y="207.5" ></text>
</g>
<g >
<title>vmonyx`dentry_open_from_cache_unlocked(dentry*, std::basic_string_view (4 samples, 0.01%)</title><rect x="596.5" y="149" width="0.1" height="15.0" fill="rgb(244,224,20)" rx="2" ry="2" />
<text x="599.45" y="159.5" ></text>
</g>
<g >
<title>vmonyx`strlcpy (9 samples, 0.02%)</title><rect x="1111.3" y="165" width="0.2" height="15.0" fill="rgb(210,55,23)" rx="2" ry="2" />
<text x="1114.26" y="175.5" ></text>
</g>
<g >
<title>vmonyx`tree_iterator_valid (4 samples, 0.01%)</title><rect x="1015.3" y="133" width="0.1" height="15.0" fill="rgb(214,23,18)" rx="2" ry="2" />
<text x="1018.29" y="143.5" ></text>
</g>
<g >
<title>vmonyx`context_tracking_enter_kernel() (7 samples, 0.02%)</title><rect x="17.2" y="277" width="0.2" height="15.0" fill="rgb(218,102,33)" rx="2" ry="2" />
<text x="20.19" y="287.5" ></text>
</g>
<g >
<title>vmonyx`wait_token::wait (163 samples, 0.43%)</title><rect x="488.9" y="117" width="5.1" height="15.0" fill="rgb(254,156,21)" rx="2" ry="2" />
<text x="491.93" y="127.5" ></text>
</g>
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment