New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tiered jitting: Design/Implement appropriate diagnostics #12612

Open
noahfalk opened this Issue Jul 4, 2017 · 6 comments

Comments

Projects
None yet
4 participants
@noahfalk
Member

noahfalk commented Jul 4, 2017

There are two aspects of this work:

  1. 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.

  2. 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:

  • Is tiered jitting enabled?
  • Given code at a certain address, what jit settings were used to compile it?
  • For a particular MethodDesc, what code versions exist? If those versions have been jitted, where is the code?
  • In a perf trace, how much time did the runtime spend jitting each version of the code?
  • In a perf trace, which CPU samples are attributable to which versions of the code?

This is a bucket of likely many small items, please sub-divide as needed and make new work items.

@noahfalk

This comment has been minimized.

Show comment
Hide comment
@noahfalk

noahfalk Jul 4, 2017

Member

ICorProfiler work is tracked in #12610, plus what was already done in #12193.
ICorDebug work is tracked in #12617.

Member

noahfalk commented Jul 4, 2017

ICorProfiler work is tracked in #12610, plus what was already done in #12193.
ICorDebug work is tracked in #12617.

@lt72 lt72 added this to the 2.1.0 milestone Oct 31, 2017

@lt72 lt72 added the enhancement label Oct 31, 2017

@mattwarren

This comment has been minimized.

Show comment
Hide comment
@mattwarren

mattwarren Dec 19, 2017

Collaborator

@noahfalk

<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. 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>

Collaborator

mattwarren commented Dec 19, 2017

@noahfalk

<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. 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>

@noahfalk

This comment has been minimized.

Show comment
Hide comment
@noahfalk

noahfalk Dec 21, 2017

Member

Hi @mattwarren! I'm flattered for the feature we've been working on to get such a nice blog post and very glad you are digging the work. Thanks! I sent you an email if you wanted to chat more technical details without taking this issue too far off topic ; )

Member

noahfalk commented Dec 21, 2017

Hi @mattwarren! I'm flattered for the feature we've been working on to get such a nice blog post and very glad you are digging the work. Thanks! I sent you an email if you wanted to chat more technical details without taking this issue too far off topic ; )

@lt72

This comment has been minimized.

Show comment
Hide comment
@lt72

lt72 Feb 22, 2018

Contributor

One more issue to deal with, hopefully in 2.1 timeframe: #16506

Contributor

lt72 commented Feb 22, 2018

One more issue to deal with, hopefully in 2.1 timeframe: #16506

@lt72 lt72 modified the milestones: 2.1.0, Future Mar 7, 2018

@noahfalk

This comment has been minimized.

Show comment
Hide comment
@noahfalk

noahfalk Jul 25, 2018

Member

#19133 - Add an explicit ETW event to indicate tiering is on/off

Member

noahfalk commented Jul 25, 2018

#19133 - Add an explicit ETW event to indicate tiering is on/off

@noahfalk

This comment has been minimized.

Show comment
Hide comment
@noahfalk

noahfalk Jul 25, 2018

Member

Microsoft/perfview#717 - Ran into this while trying to do the MusicStore tiered compilation PerfView demo. It is sadly easy to hit on async heavy apps due to the large number of TPL events.

Member

noahfalk commented Jul 25, 2018

Microsoft/perfview#717 - Ran into this while trying to do the MusicStore tiered compilation PerfView demo. It is sadly easy to hit on async heavy apps due to the large number of TPL events.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment