[x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

Description

@VSadov
Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
CORECLR! Object::Validate + 0x98 (0x7436d308)
CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
CORECLR! GcEnumObject + 0x57 (0x744866c7)
CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe

To repro run
runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

DOTNET_GCStress=0xC
DOTNET_JitStress=2
DOTNET_ReadyToRun=0
DOTNET_TieredCompilation=0

removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
Perhaps some uninitialized data is involved, thus nondeterminism.

The actual failing instruction is:

G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
Build error leg or test failing: JIT.performance.0.1
Pull request: #102415

Error Message

Fill the error message using step by step known issues guidance.

{
"ErrorMessage": "Item 'JIT.performance' did not finish running",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}

Known issue validation

Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
Error message validated:[Item 'JIT.performance' did not finish running]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 5/26/2024 12:59:42 AM UTC

Report

BuildDefinitionTestPull Request
742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

Summary

24-Hour Hit Count7-Day Hit Count1-Month Count
0017

Metadata

Metadata

Assignees

Labels

Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , '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" + '
    
    Skip to content

    [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

    Description

    @VSadov
    Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
    CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
    CORECLR! Object::Validate + 0x98 (0x7436d308)
    CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
    CORECLR! GcEnumObject + 0x57 (0x744866c7)
    CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
    CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
    CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
    CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
    CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
    CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
    File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
    Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
    

    To repro run
    runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

    DOTNET_GCStress=0xC
    DOTNET_JitStress=2
    DOTNET_ReadyToRun=0
    DOTNET_TieredCompilation=0
    

    removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

    It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
    Perhaps some uninitialized data is involved, thus nondeterminism.

    The actual failing instruction is:

    G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

    Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

    Build Information

    Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
    Build error leg or test failing: JIT.performance.0.1
    Pull request: #102415

    Error Message

    Fill the error message using step by step known issues guidance.

    {
    "ErrorMessage": "Item 'JIT.performance' did not finish running",
    "ErrorPattern": "",
    "BuildRetry": false,
    "ExcludeConsoleLog": false
    }

    Known issue validation

    Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
    Error message validated:[Item 'JIT.performance' did not finish running]
    Result validation: ✅ Known issue matched with the provided build.
    Validation performed at: 5/26/2024 12:59:42 AM UTC

    Report

    BuildDefinitionTestPull Request
    742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
    742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
    742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
    741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
    739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
    732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
    732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
    732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
    731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
    731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
    730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
    727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

    Summary

    24-Hour Hit Count7-Day Hit Count1-Month Count
    0017

    Metadata

    Metadata

    Assignees

    Labels

    Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , '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('^' + ".*" + '
      Skip to content

      [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

      Description

      @VSadov
      Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
      CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
      CORECLR! Object::Validate + 0x98 (0x7436d308)
      CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
      CORECLR! GcEnumObject + 0x57 (0x744866c7)
      CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
      CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
      CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
      CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
      CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
      CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
      File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
      Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
      

      To repro run
      runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

      DOTNET_GCStress=0xC
      DOTNET_JitStress=2
      DOTNET_ReadyToRun=0
      DOTNET_TieredCompilation=0
      

      removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

      It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
      Perhaps some uninitialized data is involved, thus nondeterminism.

      The actual failing instruction is:

      G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

      Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

      Build Information

      Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
      Build error leg or test failing: JIT.performance.0.1
      Pull request: #102415

      Error Message

      Fill the error message using step by step known issues guidance.

      {
      "ErrorMessage": "Item 'JIT.performance' did not finish running",
      "ErrorPattern": "",
      "BuildRetry": false,
      "ExcludeConsoleLog": false
      }

      Known issue validation

      Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
      Error message validated:[Item 'JIT.performance' did not finish running]
      Result validation: ✅ Known issue matched with the provided build.
      Validation performed at: 5/26/2024 12:59:42 AM UTC

      Report

      BuildDefinitionTestPull Request
      742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
      742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
      742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
      741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
      739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
      732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
      732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
      732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
      731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
      731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
      730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
      727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

      Summary

      24-Hour Hit Count7-Day Hit Count1-Month Count
      0017

      Metadata

      Metadata

      Assignees

      Labels

      Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

      Type

      No type

      Projects

      No projects

        Milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , '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('^' + ".*" + '
        Skip to content

        [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

        Description

        @VSadov
        Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
        CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
        CORECLR! Object::Validate + 0x98 (0x7436d308)
        CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
        CORECLR! GcEnumObject + 0x57 (0x744866c7)
        CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
        CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
        CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
        CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
        CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
        CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
        File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
        Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
        

        To repro run
        runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

        DOTNET_GCStress=0xC
        DOTNET_JitStress=2
        DOTNET_ReadyToRun=0
        DOTNET_TieredCompilation=0
        

        removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

        It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
        Perhaps some uninitialized data is involved, thus nondeterminism.

        The actual failing instruction is:

        G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

        Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

        Build Information

        Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
        Build error leg or test failing: JIT.performance.0.1
        Pull request: #102415

        Error Message

        Fill the error message using step by step known issues guidance.

        {
        "ErrorMessage": "Item 'JIT.performance' did not finish running",
        "ErrorPattern": "",
        "BuildRetry": false,
        "ExcludeConsoleLog": false
        }

        Known issue validation

        Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
        Error message validated:[Item 'JIT.performance' did not finish running]
        Result validation: ✅ Known issue matched with the provided build.
        Validation performed at: 5/26/2024 12:59:42 AM UTC

        Report

        BuildDefinitionTestPull Request
        742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
        742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
        742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
        741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
        739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
        732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
        732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
        732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
        731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
        731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
        730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
        727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

        Summary

        24-Hour Hit Count7-Day Hit Count1-Month Count
        0017

        Metadata

        Metadata

        Assignees

        Labels

        Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

        Type

        No type

        Projects

        No projects

          Milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , '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" + '
          Skip to content

          [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

          Description

          @VSadov
          Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
          CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
          CORECLR! Object::Validate + 0x98 (0x7436d308)
          CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
          CORECLR! GcEnumObject + 0x57 (0x744866c7)
          CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
          CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
          CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
          CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
          CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
          CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
          File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
          Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
          

          To repro run
          runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

          DOTNET_GCStress=0xC
          DOTNET_JitStress=2
          DOTNET_ReadyToRun=0
          DOTNET_TieredCompilation=0
          

          removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

          It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
          Perhaps some uninitialized data is involved, thus nondeterminism.

          The actual failing instruction is:

          G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

          Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

          Build Information

          Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
          Build error leg or test failing: JIT.performance.0.1
          Pull request: #102415

          Error Message

          Fill the error message using step by step known issues guidance.

          {
          "ErrorMessage": "Item 'JIT.performance' did not finish running",
          "ErrorPattern": "",
          "BuildRetry": false,
          "ExcludeConsoleLog": false
          }

          Known issue validation

          Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
          Error message validated:[Item 'JIT.performance' did not finish running]
          Result validation: ✅ Known issue matched with the provided build.
          Validation performed at: 5/26/2024 12:59:42 AM UTC

          Report

          BuildDefinitionTestPull Request
          742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
          742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
          742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
          741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
          739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
          732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
          732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
          732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
          731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
          731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
          730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
          727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

          Summary

          24-Hour Hit Count7-Day Hit Count1-Month Count
          0017

          Metadata

          Metadata

          Assignees

          Labels

          Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

          Type

          No type

          Projects

          No projects

            Milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , '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('^' + ".*" + '
            Skip to content

            [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

            Description

            @VSadov
            Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
            CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
            CORECLR! Object::Validate + 0x98 (0x7436d308)
            CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
            CORECLR! GcEnumObject + 0x57 (0x744866c7)
            CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
            CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
            CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
            CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
            CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
            CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
            File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
            Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
            

            To repro run
            runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

            DOTNET_GCStress=0xC
            DOTNET_JitStress=2
            DOTNET_ReadyToRun=0
            DOTNET_TieredCompilation=0
            

            removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

            It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
            Perhaps some uninitialized data is involved, thus nondeterminism.

            The actual failing instruction is:

            G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

            Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

            Build Information

            Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
            Build error leg or test failing: JIT.performance.0.1
            Pull request: #102415

            Error Message

            Fill the error message using step by step known issues guidance.

            {
            "ErrorMessage": "Item 'JIT.performance' did not finish running",
            "ErrorPattern": "",
            "BuildRetry": false,
            "ExcludeConsoleLog": false
            }

            Known issue validation

            Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
            Error message validated:[Item 'JIT.performance' did not finish running]
            Result validation: ✅ Known issue matched with the provided build.
            Validation performed at: 5/26/2024 12:59:42 AM UTC

            Report

            BuildDefinitionTestPull Request
            742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
            742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
            742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
            741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
            739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
            732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
            732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
            732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
            731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
            731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
            730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
            727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

            Summary

            24-Hour Hit Count7-Day Hit Count1-Month Count
            0017

            Metadata

            Metadata

            Assignees

            Labels

            Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

            Type

            No type

            Projects

            No projects

              Milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , '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); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

              Description

              @VSadov
              Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
              CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
              CORECLR! Object::Validate + 0x98 (0x7436d308)
              CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
              CORECLR! GcEnumObject + 0x57 (0x744866c7)
              CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
              CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
              CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
              CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
              CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
              CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
              File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
              Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
              

              To repro run
              runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

              DOTNET_GCStress=0xC
              DOTNET_JitStress=2
              DOTNET_ReadyToRun=0
              DOTNET_TieredCompilation=0
              

              removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

              It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
              Perhaps some uninitialized data is involved, thus nondeterminism.

              The actual failing instruction is:

              G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

              Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

              Build Information

              Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
              Build error leg or test failing: JIT.performance.0.1
              Pull request: #102415

              Error Message

              Fill the error message using step by step known issues guidance.

              {
              "ErrorMessage": "Item 'JIT.performance' did not finish running",
              "ErrorPattern": "",
              "BuildRetry": false,
              "ExcludeConsoleLog": false
              }

              Known issue validation

              Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
              Error message validated:[Item 'JIT.performance' did not finish running]
              Result validation: ✅ Known issue matched with the provided build.
              Validation performed at: 5/26/2024 12:59:42 AM UTC

              Report

              BuildDefinitionTestPull Request
              742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
              742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
              742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
              741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
              739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
              732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
              732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
              732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
              731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
              731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
              730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
              727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

              Summary

              24-Hour Hit Count7-Day Hit Count1-Month Count
              0017

              Metadata

              Metadata

              Assignees

              Labels

              Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

              Type

              No type

              Projects

              No projects

                Milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                [x86] stress failure in RayTracer.GetNaturalColor with DOTNET_JitStress=2 #102590

                Description

                @VSadov
                Assert failure(PID 14856 [0x00003a08], Thread: 2656 [0x0a60]): !CREATE_CHECK_STRING(pMT && pMT->Validate())
                CORECLR! Object::ValidateInner + 0x14B (0x7436d48b)
                CORECLR! Object::Validate + 0x98 (0x7436d308)
                CORECLR! WKS::GCHeap::Promote + 0x8F (0x746c0c1f)
                CORECLR! GcEnumObject + 0x57 (0x744866c7)
                CORECLR! EnumGcRefsX86 + 0xC70 (0x74298a50)
                CORECLR! EECodeManager::EnumGcRefs + 0x114 (0x74297d94)
                CORECLR! GcStackCrawlCallBack + 0x156 (0x74486936)
                CORECLR! Thread::MakeStackwalkerCallback + 0x48 (0x743ad355)
                CORECLR! Thread::StackWalkFramesEx + 0x16C (0x743ae72f)
                CORECLR! Thread::StackWalkFrames + 0x15D (0x743ae53f)
                File: E:\dotnet004\runtime\src\coreclr\vm\object.cpp:553
                Image: E:\dotnet004\runtime\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe
                

                To repro run
                runtime\artifacts\tests\coreclr\windows.x86.Checked\JIT\Performance\JIT.performance\JIT.performance.cmd with

                DOTNET_GCStress=0xC
                DOTNET_JitStress=2
                DOTNET_ReadyToRun=0
                DOTNET_TieredCompilation=0
                

                removing DOTNET_JitStress=2 changes the codegen considerably and makes the failure disappear, so it looks like it might be specific to JitStress.

                It may be necessary to run the test a few times (3-5 times, maybe more) before seeing the failure. I'd run it in a loop.
                Perhaps some uninitialized data is involved, thus nondeterminism.

                The actual failing instruction is:

                G_M31285_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IGpushebpmovebp,esppushedipushesipushebxsubesp,160mov gword ptr [ebp-0x9C],ecx ; GC ptr vars +{V00}mov bword ptr [ebp-0xA0],edx ; GC ptr vars +{V01}moveax, gword ptr [ebp+0x08] ; gcrRegs +[eax]vmovupsxmm0, xmmword ptr [ebp+0x24] ;; size=32 bbWeight=1 PerfScore 10.50G_M31285_IG02: ; bbWeight=1, gcVars=0000000000000900 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref vxorps xmm3,xmm3,xmm3 ;; size=4 bbWeight=1 PerfScore 0.33G_M31285_IG03: ; bbWeight=1, extendvmovups xmmword ptr [ebp-0x50],xmm3 ;; size=5 bbWeight=1 PerfScore 1.00G_M31285_IG04: ; bbWeight=1, extendmov gword ptr [ebp+0x08],eax ;; size=3 bbWeight=1 PerfScore 1.00G_M31285_IG05: ; bbWeight=1, extendmovedx, gword ptr [eax+0x08] ; gcrRegs +[edx] ;; size=3 bbWeight=1 PerfScore 2.00G_M31285_IG06: ; bbWeight=1, extendmov gword ptr [ebp-0xA4],edx ; GC ptr vars +{V08} ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG07: ; bbWeight=1, extendxorecx,ecx ;; size=2 bbWeight=1 PerfScore 0.25G_M31285_IG08: ; bbWeight=1, extendcmp dword ptr [edx+0x04],0 ;; size=4 bbWeight=1 PerfScore 3.00G_M31285_IG09: ; bbWeight=1, extendjle G_M31285_IG175 ;; size=6 bbWeight=1 PerfScore 1.00G_M31285_IG10: ; bbWeight=4, gcVars=0000000000000940 {V00 V01 V08}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax]mov dword ptr [ebp-0x10],ecx ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG11: ; bbWeight=4, extendmovebx, gword ptr [edx+4*ecx+0x08] ; gcrRegs +[ebx] ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG12: ; bbWeight=4, extend vmovsd xmm4, qword ptr [ebx+0x04] ;; size=5 bbWeight=4 PerfScore 16.00G_M31285_IG13: ; bbWeight=4, extend vinsertps xmm4,xmm4, dword ptr [ebx+0x0C],40 ;; size=7 bbWeight=4 PerfScore 12.00G_M31285_IG14: ; bbWeight=4, extend vsubps xmm4,xmm4,xmm0 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG15: ; bbWeight=4, extend vdpps xmm5,xmm4,xmm4,127 ;; size=6 bbWeight=4 PerfScore 48.00G_M31285_IG16: ; bbWeight=4, extend vcvtss2sd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG17: ; bbWeight=4, extend vsqrtsd xmm5,xmm5,xmm5 ;; size=4 bbWeight=4 PerfScore 48.00G_M31285_IG18: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x98],xmm5 ;; size=8 bbWeight=4 PerfScore 4.00G_M31285_IG19: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm5 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG20: ; bbWeight=4, extend vxorps xmm7,xmm7,xmm7 ;; size=4 bbWeight=4 PerfScore 1.33G_M31285_IG21: ; bbWeight=4, extend vucomiss xmm6,xmm7 ;; size=4 bbWeight=4 PerfScore 8.00G_M31285_IG22: ; bbWeight=4, isz, extendjp SHORT G_M31285_IG24 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG23: ; bbWeight=4, isz, extendje SHORT G_M31285_IG27 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG24: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref ; gcrRegs -[edx]vmovssxmm7, dword ptr [@RWD00] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG25: ; bbWeight=2, extend vdivss xmm6,xmm7,xmm6 ;; size=4 bbWeight=2 PerfScore 20.00G_M31285_IG26: ; bbWeight=2, isz, extendjmp SHORT G_M31285_IG28 ;; size=2 bbWeight=2 PerfScore 4.00G_M31285_IG27: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byrefvmovssxmm6, dword ptr [@RWD04] ;; size=8 bbWeight=2 PerfScore 6.00G_M31285_IG28: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref vcvtss2sd xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG29: ; bbWeight=4, extend vcvtsd2ss xmm6,xmm6,xmm6 ;; size=4 bbWeight=4 PerfScore 16.00G_M31285_IG30: ; bbWeight=4, extendvbroadcastssxmm6,xmm6 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG31: ; bbWeight=4, extend vmulps xmm4,xmm6,xmm4 ;; size=4 bbWeight=4 PerfScore 12.00G_M31285_IG32: ; bbWeight=4, extendvmovups xmmword ptr [ebp-0x80],xmm4 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG33: ; bbWeight=4, extendxoreax,eax ;; size=2 bbWeight=4 PerfScore 1.00G_M31285_IG34: ; bbWeight=4, extendleaedi, bword ptr [ebp-0x28] ; byrRegs +[edi] ;; size=3 bbWeight=4 PerfScore 2.00G_M31285_IG35: ; bbWeight=4, extendmov dword ptr [edi],eax ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG36: ; bbWeight=4, extendmovesi,20 ;; size=5 bbWeight=4 PerfScore 1.00G_M31285_IG37: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000080 {edi}, byrefmov dword ptr [edi+esi],eax ;; size=3 bbWeight=4 PerfScore 4.00G_M31285_IG38: ; bbWeight=4, extendsubesi,4 ;; size=3 bbWeight=4 PerfScore 1.00G_M31285_IG39: ; bbWeight=4, isz, extendjne SHORT G_M31285_IG37 ;; size=2 bbWeight=4 PerfScore 4.00G_M31285_IG40: ; bbWeight=4, extendvmovups xmmword ptr [ebp+0x24],xmm0 ;; size=5 bbWeight=4 PerfScore 4.00G_M31285_IG41: ; bbWeight=4, extend vmovsd qword ptr [ebp-0x28],xmm0 <--- crash here on reporting untracked local to GC and seeing bad object

                Since this is in the middle of SIMD instruction sequence, I wonder if this may be related to recent vectorizing optimizations for struct copying/initialization.

                Build Information

                Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
                Build error leg or test failing: JIT.performance.0.1
                Pull request: #102415

                Error Message

                Fill the error message using step by step known issues guidance.

                {
                "ErrorMessage": "Item 'JIT.performance' did not finish running",
                "ErrorPattern": "",
                "BuildRetry": false,
                "ExcludeConsoleLog": false
                }

                Known issue validation

                Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=685688
                Error message validated:[Item 'JIT.performance' did not finish running]
                Result validation: ✅ Known issue matched with the provided build.
                Validation performed at: 5/26/2024 12:59:42 AM UTC

                Report

                BuildDefinitionTestPull Request
                742830dotnet/runtimeJIT.performance.WorkItemExecution#104906
                742514dotnet/runtimeJIT.performance.WorkItemExecution#104944
                742451dotnet/runtimeJIT.performance.WorkItemExecution#104906
                741624dotnet/runtimeJIT.performance.WorkItemExecution#104906
                739394dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732644dotnet/runtimeJIT.performance.WorkItemExecution#103837
                732378dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732173dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732165dotnet/runtimeJIT.performance.WorkItemExecution#104517
                732116dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732101dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732053dotnet/runtimeJIT.performance.WorkItemExecution#104445
                732003dotnet/runtimeJIT.performance.WorkItemExecution#104103
                731745dotnet/runtimeJIT.performance.WorkItemExecution#104445
                731069dotnet/runtimeJIT.performance.WorkItemExecution#104445
                730950dotnet/runtimeJIT.performance.WorkItemExecution#104445
                727224dotnet/runtimeJIT.performance.WorkItemExecution#104288

                Summary

                24-Hour Hit Count7-Day Hit Count1-Month Count
                0017

                Metadata

                Metadata

                Assignees

                Labels

                Known Build ErrorUse this to report build issues in the .NET Helix tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

                Type

                No type

                Projects

                No projects

                  Milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions