{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/12612","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/12612/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/12612/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/12612/events","html_url":"https://github.com/dotnet/coreclr/issues/12612","id":240285912,"number":12612,"title":"Tiered jitting: Design/Implement appropriate diagnostics","user":{"login":"noahfalk","id":6243776,"avatar_url":"https://avatars0.githubusercontent.com/u/6243776?v=4","gravatar_id":"","url":"https://api.github.com/users/noahfalk","html_url":"https://github.com/noahfalk","followers_url":"https://api.github.com/users/noahfalk/followers","following_url":"https://api.github.com/users/noahfalk/following{/other_user}","gists_url":"https://api.github.com/users/noahfalk/gists{/gist_id}","starred_url":"https://api.github.com/users/noahfalk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noahfalk/subscriptions","organizations_url":"https://api.github.com/users/noahfalk/orgs","repos_url":"https://api.github.com/users/noahfalk/repos","events_url":"https://api.github.com/users/noahfalk/events{/privacy}","received_events_url":"https://api.github.com/users/noahfalk/received_events","type":"User","site_admin":false},"labels":[{"id":196940783,"url":"https://api.github.com/repos/dotnet/coreclr/labels/area-Diagnostics","name":"area-Diagnostics","color":"d4c5f9","default":false},{"id":172143005,"url":"https://api.github.com/repos/dotnet/coreclr/labels/enhancement","name":"enhancement","color":"1d76db","default":true}],"state":"open","locked":false,"assignee":{"login":"noahfalk","id":6243776,"avatar_url":"https://avatars0.githubusercontent.com/u/6243776?v=4","gravatar_id":"","url":"https://api.github.com/users/noahfalk","html_url":"https://github.com/noahfalk","followers_url":"https://api.github.com/users/noahfalk/followers","following_url":"https://api.github.com/users/noahfalk/following{/other_user}","gists_url":"https://api.github.com/users/noahfalk/gists{/gist_id}","starred_url":"https://api.github.com/users/noahfalk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noahfalk/subscriptions","organizations_url":"https://api.github.com/users/noahfalk/orgs","repos_url":"https://api.github.com/users/noahfalk/repos","events_url":"https://api.github.com/users/noahfalk/events{/privacy}","received_events_url":"https://api.github.com/users/noahfalk/received_events","type":"User","site_admin":false},"assignees":[{"login":"noahfalk","id":6243776,"avatar_url":"https://avatars0.githubusercontent.com/u/6243776?v=4","gravatar_id":"","url":"https://api.github.com/users/noahfalk","html_url":"https://github.com/noahfalk","followers_url":"https://api.github.com/users/noahfalk/followers","following_url":"https://api.github.com/users/noahfalk/following{/other_user}","gists_url":"https://api.github.com/users/noahfalk/gists{/gist_id}","starred_url":"https://api.github.com/users/noahfalk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noahfalk/subscriptions","organizations_url":"https://api.github.com/users/noahfalk/orgs","repos_url":"https://api.github.com/users/noahfalk/repos","events_url":"https://api.github.com/users/noahfalk/events{/privacy}","received_events_url":"https://api.github.com/users/noahfalk/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/coreclr/milestones/10","html_url":"https://github.com/dotnet/coreclr/milestone/10","labels_url":"https://api.github.com/repos/dotnet/coreclr/milestones/10/labels","id":2344332,"number":10,"title":"2.1.0","description":".NET Core 2.1, next major release. See [official release dates](https://github.com/dotnet/core/blob/master/roadmap.md) for details.","creator":{"login":"karelz","id":5776068,"avatar_url":"https://avatars2.githubusercontent.com/u/5776068?v=4","gravatar_id":"","url":"https://api.github.com/users/karelz","html_url":"https://github.com/karelz","followers_url":"https://api.github.com/users/karelz/followers","following_url":"https://api.github.com/users/karelz/following{/other_user}","gists_url":"https://api.github.com/users/karelz/gists{/gist_id}","starred_url":"https://api.github.com/users/karelz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karelz/subscriptions","organizations_url":"https://api.github.com/users/karelz/orgs","repos_url":"https://api.github.com/users/karelz/repos","events_url":"https://api.github.com/users/karelz/events{/privacy}","received_events_url":"https://api.github.com/users/karelz/received_events","type":"User","site_admin":false},"open_issues":245,"closed_issues":1247,"state":"open","created_at":"2017-02-23T20:40:02Z","updated_at":"2017-12-19T06:13:08Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2017-07-04T00:32:12Z","updated_at":"2017-12-19T12:09:34Z","closed_at":null,"author_association":"MEMBER","body":"There are two aspects of this work:\r\n1) We have pre-existing diagnostic APIs/tools that need to keep working properly in spite of tiered jitting. For example SOS, ETW events, COMPLUS logging, stress logging, ICorDebug and ICorProfiler APIs. ICorDebug and ICorProfiler are sizable and are already called out in separate work items, but the remainder are lumped here for now. We either need to confirm they are working as expected or fix any issues that tiered jitting caused if not.\r\n\r\n2) We have new diagnostic scenarios specifically to diagnose issues relating to tiered jitting. In this case we need to understand the state of the code versions in the runtime. SOS already has some ReJIT related functionality that could be enhanced. New or adjusted ETW events may be necessary. New COMPLUS logging/stress logging messages would be useful. Questions that would be desirable for diagnostics to answer:\r\n - Is tiered jitting enabled?\r\n - Given code at a certain address, what jit settings were used to compile it?\r\n - For a particular MethodDesc, what code versions exist? If those versions have been jitted, where is the code?\r\n - In a perf trace, how much time did the runtime spend jitting each version of the code?\r\n - In a perf trace, which CPU samples are attributable to which versions of the code?\r\n\r\nThis is a bucket of likely many small items, please sub-divide as needed and make new work items."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/352731546","html_url":"https://github.com/dotnet/coreclr/issues/12612#issuecomment-352731546","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/12612","id":352731546,"user":{"login":"mattwarren","id":157298,"avatar_url":"https://avatars3.githubusercontent.com/u/157298?v=4","gravatar_id":"","url":"https://api.github.com/users/mattwarren","html_url":"https://github.com/mattwarren","followers_url":"https://api.github.com/users/mattwarren/followers","following_url":"https://api.github.com/users/mattwarren/following{/other_user}","gists_url":"https://api.github.com/users/mattwarren/gists{/gist_id}","starred_url":"https://api.github.com/users/mattwarren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattwarren/subscriptions","organizations_url":"https://api.github.com/users/mattwarren/orgs","repos_url":"https://api.github.com/users/mattwarren/repos","events_url":"https://api.github.com/users/mattwarren/events{/privacy}","received_events_url":"https://api.github.com/users/mattwarren/received_events","type":"User","site_admin":false},"created_at":"2017-12-19T12:09:34Z","updated_at":"2017-12-19T12:09:34Z","author_association":"COLLABORATOR","body":"@noahfalk \r\n\r\n`<shameless plug>` I liked the tiered compilation feature so much that I wrote a blog post about it [A look at the internals of 'Tiered JIT Compilation' in .NET Core](http://mattwarren.org/2017/12/15/How-does-.NET-JIT-a-method-and-Tiered-Compilation/#tiered-compilation). If I've got anything horribly wrong, please let me know and I'll update the post (I know it's 'work-in-progress', so things might change over time) `</shameless plug>`"}}
{"actor":{"display_login":"mattwarren"}}