Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Restore Crossgen2's Optimizations in CoreCLR Builds by ivdiazsa · Pull Request #90278 · dotnet/runtime · GitHub
Skip to content

Restore Crossgen2's Optimizations in CoreCLR Builds - #90278

Merged
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems
Aug 10, 2023
Merged

Restore Crossgen2's Optimizations in CoreCLR Builds#90278
ivdiazsa merged 1 commit into
dotnet:mainfrom
ivdiazsa:O-more-problems

Conversation

@ivdiazsa

Copy link
Copy Markdown
Contributor

Addresses Issue #90265. Previously on PR #89223, we removed the -O flag from calls to Crossgen2 because some tests were failing due to their reliance on the debug bit, which Crossgen2's -O flag removes. However, removing the flag from the CoreCLR builds led to an unexpected side effect of NarrowUtf16ToAscii of targeting V256 instead of V128. A full explanation can be found here in this comment: #89986 (comment)

As a consequence of the issues mentioned above, a safety assertion had to be disabled in Ascii.Utility.cs to mitigate this problem, which was having a big impact. We should not rely on skipping safety checks to get around bugs. This PR brings back what allowed things to work properly without circumventing security.

…e poisoning tests since the problem has been addressed.
@ghostghost assigned ivdiazsaAug 9, 2023
@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 9, 2023
@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

@jakobbotsch I also reenabled the JIT poison tests that were disabled because of issue #56148. Restoring only the CoreCLR -O fixes the assertion problem while still allowing the poison tests to function properly. Let me know if there are specific pipelines I should run to ensure those tests really work well now.

@ivdiazsaivdiazsa added this to the 8.0.0 milestone Aug 9, 2023
@ivdiazsaivdiazsa linked an issue Aug 9, 2023 that may be closed by this pull request
@ivdiazsaivdiazsa added area-ReadyToRun and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Aug 9, 2023

@trylektrylek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

@jakobbotsch

Copy link
Copy Markdown
Member

You should run runtime-coreclr crossgen2 to verify that the poison test works correctly during crossgen.

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

In general I was under the impression that the underlying problem you described is mostly a framework issue but I'm fine with this as a short-term workaround, Aaron has already created the issue to address this more cleanly - I assume that will include reverting your current hotfix; it might be worth mentioning your current PR in the issue #90265 for context.

I'm going to explain it in that issue accordingly when this PR is merged. I just think removing asserts is not the ideal way to mitigate problems when removing the cause is straightforward, and it doesn't break anything else. Otherwise, we're just adding to the snowball of patches that can potentially blow up at any time.

I agree, we should not hit asserts just because we crossgen SPC without optimizations, so there's definitely something to address at some point here.

Agreed with this as well. I will be keeping the issue open. Taking from Tanner's comment here (#89986 (comment)), it might end up being some sort of feature work so it will help tracking it.

@ivdiazsa

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr crossgen2

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@ivdiazsa
ivdiazsa merged commit f4d08e3 into dotnet:mainAug 10, 2023
@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ivdiazsa@jakobbotsch@trylek@AaronRobinsonMSFT