Skip to content
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

[6.0] Re-create MultiCoreJIT profile data on profile-use-only mode #71754

Merged

Conversation

wscho77
Copy link
Contributor

@wscho77 wscho77 commented Jul 7, 2022

Backport of #71420.

This is a patch to solve the problem that profile data cannot be recreated when profile data is broken on profile-use-only mode.
Please consider backporting this to release/6.0

Customer Impact

Some apps use DOTNET_MultiCoreJitNoProfileGather=1, which only uses the recorded profile data and does not record, to improve flash storage life. The profile data helps to improve startup time. This fix enables an app for which profile data was gathered once, to continue working with profile data across profile data version changes while using the above config switch. When the existing profile data is incompatible, it records profile data once to maintain the startup improvements, and does not record again thereafter to improve storage life. So, the change makes it easier to deploy apps using the above config switch without having to manually recreate profile data by altering the config switch any time the profile version changes.

Regression?

No

Testing

Verified that the change behaves as described above

Risk

Low - The behavior without the config switch is identical to before, and the behavior when the existing profile data is valid is also identical to before.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Jul 7, 2022
Activate multicorejit recorder to re-create the profile data
when the multicorejit player cannot be executed due to BADIMAGEFORMAT error on profile-use-only mode
@wscho77 wscho77 force-pushed the recreate_profile_data_for_6.0 branch from b821862 to 0d2befb Compare July 11, 2022 21:23
@JulieLeeMSFT
Copy link
Member

@kouvel, PTAL. Do we need to backport this fix?

@JulieLeeMSFT
Copy link
Member

@kouvel, today is the due date for 6.0 servicing fix tactics approval and merge for August release. If ready in time, please send an email to get tactics approval.
CC @jeffschwMSFT.

@kouvel
Copy link
Member

kouvel commented Jul 12, 2022

@wscho77, are there apps running on .NET 6 that would benefit from backporting this change? Would it be feasible to work around the issue by recreating the profile by changing the config var once?

@wscho77
Copy link
Contributor Author

wscho77 commented Jul 12, 2022

We are preparing to products with NET 6, so we need to apply related patches.
I received a request from the product development team about how to restore profile data when it is wrong.

@kouvel kouvel changed the title Re-create profile data on profile-use-only mode [6.0] Re-create MultiCoreJIT profile data on profile-use-only mode Jul 15, 2022
@kouvel kouvel added this to the 6.0.x milestone Jul 15, 2022
@kouvel kouvel added the Servicing-consider Issue for next servicing release review label Jul 15, 2022
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. We should take for consideration in 6.0.x

@jeffschwMSFT jeffschwMSFT removed the Servicing-consider Issue for next servicing release review label Jul 19, 2022
@mangod9
Copy link
Member

mangod9 commented Jul 19, 2022

@wscho77 just making sure that this fix is required to be ported in 6 for your scenario?

@wscho77
Copy link
Contributor Author

wscho77 commented Jul 24, 2022

@wscho77 just making sure that this fix is required to be ported in 6 for your scenario?

Sorry for late response.
Yes. We need this patch to restore broken profile data.

@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Jul 25, 2022
@rbhanda rbhanda added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jul 28, 2022
@rbhanda rbhanda modified the milestones: 6.0.x, 6.0.9 Jul 28, 2022
Copy link
Member

@carlossanlop carlossanlop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tactics approved.
Correct milestone applied.
No CI failures.
Additional area owner sign-off provided.
No OOB package authoring changes needed (native code).
Ready to merge. :shipit:

@carlossanlop carlossanlop merged commit 3dd36c2 into dotnet:release/6.0 Aug 11, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Sep 10, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-TieredCompilation-coreclr community-contribution Indicates that the PR has been added by a community member Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants