0xc000001d "an instruction not supported by the CPU was executed in module dither"

Postings relating to old VirtualBox pre-releases
Post Reply
FranceBB
Posts: 105
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

0xc000001d "an instruction not supported by the CPU was executed in module dither"

Post by FranceBB »

With the latest beta, Fedora 26 host (Intel i7 6700HQ) and Windows XP Professional x86 guest,
if the CPU used by the host supports instructions that are not supported by the guest OS (like AVX, AVX2, FMA3, FMA4, AVX-512),
these assembly optimisations are shown as available, therefore once a program starts, it detects AVX as available, so it tries to use the AVX registers,
but the guest OS (Windows XP) supports up to SSE4.2 and such a program crashes with 0xc000001d code.
This issue doesn't occur in VirtualBox 5.1.26 (latest stable).

Code: Select all

Disassembly:
1c887e20: 1c50            sbb    al, 50h
1c887e22: 8d4df4          lea    ecx, [ebp-0ch]
1c887e25: e8e1c40100      call   1c8a430b
1c887e2a: 6898188e1c      push   1c8e1898
1c887e2f: 8d45f4          lea    eax, [ebp-0ch]
1c887e32: c745f430d08c1c  mov    dword ptr [ebp-0ch], 1c8cd030
1c887e39: 50              push   eax
1c887e3a: e8acd80100      call   1c8a56eb
1c887e3f: cc              int    3
1c887e40: 55              push   ebp
1c887e41: 8bec            mov    ebp, esp
1c887e43: 83ec10          sub    esp, 10h
1c887e46: 56              push   esi
1c887e47: 8bf2            mov    esi, edx
1c887e49: 8b550c          mov    edx, [ebp+0ch]
1c887e4c: 8bc2            mov    eax, edx
1c887e4e: c1ee02          shr    esi, 02h
1c887e51: 83e0f0          and    eax, 0f0h
1c887e54: 2bd0            sub    edx, eax
1c887e56: 8945f4          mov    [ebp-0ch], eax
1c887e59: 837d1000        cmp    dword ptr [ebp+10h], 00h
1c887e5d: 57              push   edi
1c887e5e: 89550c          mov    [ebp+0ch], edx
1c887e61: 0f8eeb000000    jle    1c887f52
1c887e67: 8b7d18          mov    edi, [ebp+18h]
1c887e6a: 8d14b500000000  lea    edx, [esi*4+00000000]
1c887e71: 8b751c          mov    esi, [ebp+1ch]
1c887e74: 8955f0          mov    [ebp-10h], edx
1c887e77: 8b45f4          mov    eax, [ebp-0ch]
1c887e7a: 8bd7            mov    edx, edi
1c887e7c: 8955fc          mov    [ebp-04h], edx
1c887e7f: 8975f8          mov    [ebp-08h], esi
1c887e82: 85c0            test   eax, eax
1c887e84: 7e6c            jle    1c887ef2
1c887e86: 48              dec    eax
1c887e87: 8bf7            mov    esi, edi
1c887e89: 8b7df8          mov    edi, [ebp-08h]
1c887e8c: 8bd1            mov    edx, ecx
1c887e8e: c1e804          shr    eax, 04h
1c887e91: 40              inc    eax
1c887e92: eb0c            jmp    1c887ea0
1c887e94: 8da42400000000  lea    esp, [esp+00]
1c887e9b: eb03            jmp    1c887ea0
1c887e9d: 8d4900          lea    ecx, [ecx+00h]
[color=#FF0000][b]1c887ea0: c4e2            les    esp, edx      <-- FAULT[/b][/color]
1c887ea2: 7d30            jge    1c887ed4
1c887ea4: 06              push   es
1c887ea5: c4e2            les    esp, edx
1c887ea7: 7d30            jge    1c887ed9
1c887ea9: 0fc5fd71        pextrw ebp, mm7, 71h
1c887ead: f0              lock   
1c887eae: 08c5            or     ch, al
1c887eb0: fd              std    
1c887eb1: ebc9            jmp    1c887e7c
1c887eb3: c4e2            les    esp, edx
1c887eb5: 7d33            jge    1c887eea
1c887eb7: c1c5fc          rol    ebp, 0fch
1c887eba: 5b              pop    ebx
1c887ebb: c0c5fc          rol    ch, 0fch
1c887ebe: 2902            sub    [edx], eax
1c887ec0: c4e3            les    esp, ebx
1c887ec2: 7d19            jge    1c887edd
1c887ec4: c801c4e2        enter  c401, 0e2h
1c887ec8: 7d33            jge    1c887efd
1c887eca: c0c5fc          rol    ch, 0fch
1c887ecd: 5b              pop    ebx
1c887ece: c083c6108d5240  rol    byte ptr [ebx+528d10c6], 40h
1c887ed5: 83c710          add    edi, 10h
1c887ed8: c5fc            lds    edi, esp
1c887eda: 2942e0          sub    [edx-20h], eax
1c887edd: 48              dec    eax
1c887ede: 75c0            jnz    1c887ea0
1c887ee0: 8b45f4          mov    eax, [ebp-0ch]
1c887ee3: 8975fc          mov    [ebp-04h], esi
1c887ee6: 8b751c          mov    esi, [ebp+1ch]
1c887ee9: 8b55fc          mov    edx, [ebp-04h]
1c887eec: 897df8          mov    [ebp-08h], edi
1c887eef: 8b7d18          mov    edi, [ebp+18h]
1c887ef2: 837d0c00        cmp    dword ptr [ebp+0ch], 00h
1c887ef6: 7e42            jle    1c887f3a
1c887ef8: 837d0c08        cmp    dword ptr [ebp+0ch], 08h
1c887efc: 8b75f8          mov    esi, [ebp-08h]
1c887eff: c4e2            les    esp, edx
1c887f01: 7d30            jge    1c887f33
1c887f03: 02c5            add    al, ch
1c887f05: fd              std    
1c887f06: 71f0            jno    1c887ef8
1c887f08: 08c4            or     ah, al
1c887f0a: e27d            loop   1c887f89
1c887f0c: 300e            xor    [esi], cl
1c887f0e: 8b751c          mov    esi, [ebp+1ch]
1c887f11: c5fd            lds    edi, ebp
1c887f13: ebc9            jmp    1c887ede
1c887f15: c4e2            les    esp, edx
1c887f17: 7d33            jge    1c887f4c
1c887f19: c1c5fc          rol    ebp, 0fch
1c887f1c: 5b              pop    ebx
1c887f1d: c0c5fc          rol    ch, 0fch

Built on Anton3 on Sat Jul 15 11:46:46 2017 using compiler version 1500

Windows 5.1 (Windows XP x86 build 2600) [Service Pack 3]
Memory status: virtual free 1378M/2048M, commit limit 9816M, physical total 6000M

EAX = 0000000c
EBX = 0014f0f0
ECX = 18e00540
EDX = 18e00540
EBP = 251bfde8
ESI = 1e3b0020
EDI = 1e42e920
ESP = 251bfdd0
EIP = 1c887ea0
EFLAGS = 00010207
FPUCW = ffff027f
FPUTW = ffffffff

Crash reason: Illegal instruction

Crash context:
An instruction not supported by the CPU was executed in module 'dither'.

Pointer dumps:

EBX   0014f0f0: 1c8d4c94 08000004 1c8e887c 1c8d4c8c 1c8d4c7c 1c8d4cb4 00000001 18e79b70
ECX   18e00540: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
EDX   18e00540: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ESI   1e3b0020: 82828282 82828282 82828282 82828282 82828282 82828282 83828382 83838382
EDI   1e42e920: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ESP   251bfdd0: 00000010 0012eb34 00000340 000000c0 1e42e920 1e3b0020 251bfe18 1c887920
      251bfdf0: 000003c0 00000003 000000ed 1e3b0020 1e3b0020 1e42e920 1c892a72 00010000
      251bfe10: 00000001 18e00508 251bfe88 1c88f4db 18e00540 00000340 00000002 00000010
      251bfe30: 00000001 1e42e920 000003c0 000000c3 000000ed 00000000 00000000 0014f0f0
EBP   251bfde8: 251bfe18 1c887920 000003c0 00000003 000000ed 1e3b0020 1e3b0020 1e42e920
      251bfe08: 1c892a72 00010000 00000001 18e00508 251bfe88 1c88f4db 18e00540 00000340
      251bfe28: 00000002 00000010 00000001 1e42e920 000003c0 000000c3 000000ed 00000000
      251bfe48: 00000000 0014f0f0 18e004f8 1c88fb9e 10723618 00000001 00000000 00000000

Thread call stack:
1c887ea0: dither!_AvisynthPluginInit2@4 [1c850000+d020+2ae80]
1c887920: dither!_AvisynthPluginInit2@4 [1c850000+d020+2a900]
1c892a72: dither!_AvisynthPluginInit2@4 [1c850000+d020+35a52]
1c88f4db: dither!_AvisynthPluginInit2@4 [1c850000+d020+324bb]
1c88fb9e: dither!_AvisynthPluginInit2@4 [1c850000+d020+32b7e]
1c88dc2a: dither!_AvisynthPluginInit2@4 [1c850000+d020+30c0a]
1c88ebe1: dither!_AvisynthPluginInit2@4 [1c850000+d020+31bc1]
05503c1c: avstp!00003c1c
055091c5: avstp!avstp_wait_completion [05500000+40e0+50e5]
05502306: avstp!00002306
0550595a: avstp!avstp_wait_completion [05500000+40e0+187a]
05505a82: avstp!avstp_wait_completion [05500000+40e0+19a2]
7c80b849: kernel32!GetModuleFileNameA [7c800000+b68f+1ba]
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: 0xc000001d "an instruction not supported by the CPU was executed in module dither"

Post by michaln »

Sorry, we can't make any sense of what you're complaining about. If you have software that tries to use AVX when it wasn't enabled by the OS (in this case, guest OS) then yes, it will crash. But why is that a surprise? And what does that have to do with virtualization?

Please provide VBox.log files from 5.1.26 and 5.2 beta running the same VM and guest software. We are not aware of intentional differences in behavior between 5.1.26 and 5.2 in this regard.
Post Reply