{"push_id":2194097837,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"ca689b322fdef270e0aec5c4d3793099accb1735","before":"8fb263f8476b9e765510312f9234176018868ca7","commits":[{"sha":"ca689b322fdef270e0aec5c4d3793099accb1735","author":{"name":"Dean Michael Berris","email":"6b0af69dd05a094d46606b1b8f141285184892b2@google.com"},"message":"[XRay][compiler-rt] Coalesce calls to mprotect to reduce patching overhead\n\nSummary:\nBefore this change, XRay would conservatively patch sections of the code\none sled at a time. Upon testing/profiling, this turns out to take an\ninordinate amount of time and cycles. For an instrumented clang binary,\nthe cycles spent both in the patching/unpatching routine constituted 4%\nof the cycles -- this didn't count the time spent in the kernel while\nperforming the mprotect calls in quick succession.\n\nWith this change, we're coalescing the number of calls to mprotect from\nbeing linear to the number of instrumentation points, to now being a\nlower constant when patching all the sleds through `__xray_patch()` or\n`__xray_unpatch()`. In the case of calling `__xray_patch_function()` or\n`__xray_unpatch_function()` we're now doing an mprotect call once for\nall the sleds for that function (reduction of at least 2x calls to\nmprotect).\n\nReviewers: kpw, eizan\n\nSubscribers: llvm-commits\n\nDifferential Revision: https://reviews.llvm.org/D41153","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project-20170507/commits/ca689b322fdef270e0aec5c4d3793099accb1735"}]}
{"actor":{"display_login":"chapuni"}}