[SOLVED] BSOD BAD_POOL_CALLER

Vincent_22

Distinguished
May 29, 2016
76
0
18,640
Hello i just got my first bsod on this system can anyone help me identify the problem.I've been playing Detroit : Become Human and all of a sudden game froze threw me to dekstop and gave me an application error i said meh i'll launch it again but after i clicked close on application error pop up system froze and bsod popped up and pc restarted itself.

OS:Windows 8.1
CPU;i5 6600
GPU:GTX 1060 6GB

I was gonna include a .dmp file but it's over 700mb.

BSOD info from BlueScreenView
jnIoVA.png


Same cirsumtances happened 3 times in total but only this one turned into bsod situation
The other 2 times were I was playing AC:Origins and Spintires both graphical heavy games.
jnIYAq.png


Any help is appreciated.Crashes happened in mulitple driver versions.But BSOD happened on latest after BSOD i've reverted back to old driver just incase.

I also would like a edit in how long i was playing these games before the crashes happened.
I was 9 hours in Detroit Become Human before BSOD happened.
2.5 hours in AC:Origins before crash happened.
4 hours in Spintires before crash happened.

So i don't think reason is overheating.
 
Last edited:
Solution
I've asked some friends for input on this because I noticed something I've never seen before.
At the bottom of the stack, there's a weird string that is actually some code.
Code:
Start memory scan  : 0xffffd000ebf0c018 ($csp)
End memory scan    : 0xffffd000ebf0d000 (Kernel Stack Base)

               rsp : 0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c108 : 0xfffff801a269dc65 : dxgmms1!VIDMM_GLOBAL::DestroyOneAllocation+0x375
0xffffd000ebf0c238 : 0xfffff802b1489cc5 : nt!KiAbEntryRemoveFromTree+0x12d
0xffffd000ebf0c2e8 : 0xfffff801a269d8ba : dxgmms1!VIDMM_GLOBAL::DestroyAllocation+0x5a
0xffffd000ebf0c318 : 0xfffff801a25432a4 ...

Vincent_22

Distinguished
May 29, 2016
76
0
18,640
A minidmp might be helpful.

Overclocking at all? Drop everything to stock clocks.

PSU not specified. One variable to eliminate, if quality supply, or not.

I have .dmp file but it's over 700mb any way to turn that into minidump ?
No overclocking 6600 turbo clocks as intel intended and gpu just factory overclocks itself i've did not touched anything.
PSU ; Thermaltake Smart 650w 80+ Bronze.
https://www.thermaltake.com/smart-bx1-650w.html
 
I've asked some friends for input on this because I noticed something I've never seen before.
At the bottom of the stack, there's a weird string that is actually some code.
Code:
Start memory scan  : 0xffffd000ebf0c018 ($csp)
End memory scan    : 0xffffd000ebf0d000 (Kernel Stack Base)

               rsp : 0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c108 : 0xfffff801a269dc65 : dxgmms1!VIDMM_GLOBAL::DestroyOneAllocation+0x375
0xffffd000ebf0c238 : 0xfffff802b1489cc5 : nt!KiAbEntryRemoveFromTree+0x12d
0xffffd000ebf0c2e8 : 0xfffff801a269d8ba : dxgmms1!VIDMM_GLOBAL::DestroyAllocation+0x5a
0xffffd000ebf0c318 : 0xfffff801a25432a4 : dxgkrnl!DXGDEVICE::DestroyAllocations+0x3e4
0xffffd000ebf0c398 : 0xfffff801a24e4449 : dxgkrnl!DXGAUTOMUTEX::Acquire+0x21
0xffffd000ebf0c3c8 : 0xfffff801a254dcd4 : dxgkrnl!DXGGLOBAL::GetSessionData+0x24
0xffffd000ebf0c418 : 0xfffff801a254c8f3 : dxgkrnl!DXGDEVICE::DestroyResource+0x5f
0xffffd000ebf0c458 : 0xfffff801a2553e67 : dxgkrnl!DXGDEVICE::DestroyAllDeviceState+0x147
0xffffd000ebf0c488 : 0xfffff801a2544708 : dxgkrnl!DXGPROCESS::GetCurrent+0x18
0xffffd000ebf0c4a8 : 0xfffff801a2553ad8 : dxgkrnl!DXGDEVICE::FlushScheduler+0x7c
0xffffd000ebf0c4b8 : 0xfffff801a255422b : dxgkrnl!ADAPTER_RENDER::DestroyDevice+0xa7
0xffffd000ebf0c4e8 : 0xfffff801a254da85 : dxgkrnl!DXGPROCESS::Destroy+0x2dd
0xffffd000ebf0c508 : 0xfffff960003de1a0 : win32k!gDxgkWin32kEngInterface
0xffffd000ebf0c518 : 0xfffff802b1717180 : nt!KiInitialPCR+0x180
0xffffd000ebf0c538 : 0xfffff802b14948a2 : nt!ExReleaseResourceAndLeaveCriticalRegion+0x12
0xffffd000ebf0c588 : 0xfffff960003de1a0 : win32k!gDxgkWin32kEngInterface
0xffffd000ebf0c5a8 : 0xfffff801a254d5a1 : dxgkrnl!DxgkProcessCallout+0x135
0xffffd000ebf0c608 : 0xfffff96000099293 : win32k!GdiProcessCallout+0x1f7
0xffffd000ebf0c688 : 0xfffff96000098ad7 : win32k!W32pProcessCallout+0x53
0xffffd000ebf0c6b8 : 0xfffff802b17c1a4e : nt!PsInvokeWin32Callout+0x42
0xffffd000ebf0c6f8 : 0xfffff802b17c0c7c : nt!PspExitThread+0x518
0xffffd000ebf0c728 : 0xfffff802b15fbf1a : nt!KiSchedulerApc+0x472
0xffffd000ebf0c808 : 0xfffff802b18a332c : nt!KiSchedulerApcTerminate+0x18
0xffffd000ebf0c838 : 0xfffff802b14c524a : nt!KiDeliverApc+0x2fa
0xffffd000ebf0c8b8 : 0xfffff802b156dcc0 : nt!KiInitiateUserApc+0x70
0xffffd000ebf0c8d0 : 0xfffff802b15fbaa8 : nt!KiSchedulerApc
0xffffd000ebf0c9f8 : 0xfffff802b157465a : nt!KiSystemServiceExit+0x9f
0xffffd000ebf0ca00 : 0xffffe0009b2e2080 :  Trap @ ffffd000ebf0ca00
0xffffd000ebf0cb98 : 0xffffd000ebf06000 :  !du ""ebkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(w,"$1-webkit-$2")+a...""

0: kd> !PDE.du ffffd000ebf06000
ebkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(w,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(u=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+u+a;case 1005:return f.test(a)?a.replace(h,":-webkit-")+a.replace(h,":-moz-")+a:a;case 1e3:switch(t=(u=a.substring(13).trim()).indexOf("-")+1,u.charCodeAt(0)+u.charCodeAt(t)){case 226:u=a.replace(b,"tb");break;case 232:u=a.replace(b,"tb-rl");break;case 220:u=a.replace(b,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+u+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(u=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|u.charCodeAt(7))){case 203:if(111>u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(u,"-webkit-"+u)+";"+a.replace(u,"-ms-"+u+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return u=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+u+"-ms-flex-"+u+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(E,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(E,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===S.test(e))return 115===(u=e.substring(e.indexOf(":")+1)).charCodeAt(0)?r(e.replace("stretch","fill-available"),t,n,o).replace(":fill-available",":stretch"):a.replace(u,"-webkit-"+u)+a.replace(u,"-moz-"+u.replace("fill-",""))+a;breꀈ༂
This code is most likely javascript parsing some CSS via the GPU.

Most of the analysis is done by x BlueRobot over at https://www.sysnative.com/forums/threads/bsod-bad_pool_caller.31654/, while I was asleep x BlueRobot looked into the matter.
 
  • Like
Reactions: Vincent_22
Solution
Quick dump look 061920-11171.dmp: further analysis needed:



BAD_POOL_CALLER (c2)
Arg1: 0000000000000007, Attempt to free pool which was already freed
Arg2: 0000000000001200, Pool tag value from the pool header
Arg3: 0000000000000000, Contents of the first 4 bytes of the pool header


SYSTEM_MANUFACTURER: MSI
SYSTEM_PRODUCT_NAME: MS-7A78
BIOS_VERSION: 1.30
BIOS_DATE: 12/05/2016
BASEBOARD_PRODUCT: Z270 GAMING M5 (MS-7A78)
BASEBOARD_VERSION: 1.0

MEMORY:
Speed 2133MHz
Manufacturer Kingston
Part Number KHX2133C14/8G

---------------------------------------------------------------------------------------------------

PROCESS_NAME: DetroitBecomeH

MODULE_NAME: dxgmms1
IMAGE_NAME: dxgmms1.sys

OSBUILD: 9600
OSSERVICEPACK: 18790
OSNAME: Windows 8.1

---------------------------------------------------------------------------------------------------

AsIO.sys Aug 22 2012 Asus I/O Utility?
AsUpIO.sys Aug 2 2010 Asus Hardware Monitoring?

e2xw8x64.sys Jan 26 2016 Killer Network Driver
iusb3adp.sys Oct 10 2016 Intel USB driver

nvhda64v.sys Feb 19 2020 NVidia HDMI Audio Device
nvlddmkm.sys May 15 2020 NVidia Video Driver

RTKVHD64.sys Nov 27 2018 Realtek HD Audio

SmartDefragDriver.sys Dec 23 2013 IOBit Smart Defrag?

TeeDriverW8x64.sys Sep 15 2016 Intel Management Engine Interface


UNLOADED MODULES:

cpuz149_x64.
 

Vincent_22

Distinguished
May 29, 2016
76
0
18,640
I've asked some friends for input on this because I noticed something I've never seen before.
At the bottom of the stack, there's a weird string that is actually some code.
Code:
Start memory scan  : 0xffffd000ebf0c018 ($csp)
End memory scan    : 0xffffd000ebf0d000 (Kernel Stack Base)

               rsp : 0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c018 : 0xfffff802b16b8fea : nt!ExFreePool+0x2fa
0xffffd000ebf0c108 : 0xfffff801a269dc65 : dxgmms1!VIDMM_GLOBAL::DestroyOneAllocation+0x375
0xffffd000ebf0c238 : 0xfffff802b1489cc5 : nt!KiAbEntryRemoveFromTree+0x12d
0xffffd000ebf0c2e8 : 0xfffff801a269d8ba : dxgmms1!VIDMM_GLOBAL::DestroyAllocation+0x5a
0xffffd000ebf0c318 : 0xfffff801a25432a4 : dxgkrnl!DXGDEVICE::DestroyAllocations+0x3e4
0xffffd000ebf0c398 : 0xfffff801a24e4449 : dxgkrnl!DXGAUTOMUTEX::Acquire+0x21
0xffffd000ebf0c3c8 : 0xfffff801a254dcd4 : dxgkrnl!DXGGLOBAL::GetSessionData+0x24
0xffffd000ebf0c418 : 0xfffff801a254c8f3 : dxgkrnl!DXGDEVICE::DestroyResource+0x5f
0xffffd000ebf0c458 : 0xfffff801a2553e67 : dxgkrnl!DXGDEVICE::DestroyAllDeviceState+0x147
0xffffd000ebf0c488 : 0xfffff801a2544708 : dxgkrnl!DXGPROCESS::GetCurrent+0x18
0xffffd000ebf0c4a8 : 0xfffff801a2553ad8 : dxgkrnl!DXGDEVICE::FlushScheduler+0x7c
0xffffd000ebf0c4b8 : 0xfffff801a255422b : dxgkrnl!ADAPTER_RENDER::DestroyDevice+0xa7
0xffffd000ebf0c4e8 : 0xfffff801a254da85 : dxgkrnl!DXGPROCESS::Destroy+0x2dd
0xffffd000ebf0c508 : 0xfffff960003de1a0 : win32k!gDxgkWin32kEngInterface
0xffffd000ebf0c518 : 0xfffff802b1717180 : nt!KiInitialPCR+0x180
0xffffd000ebf0c538 : 0xfffff802b14948a2 : nt!ExReleaseResourceAndLeaveCriticalRegion+0x12
0xffffd000ebf0c588 : 0xfffff960003de1a0 : win32k!gDxgkWin32kEngInterface
0xffffd000ebf0c5a8 : 0xfffff801a254d5a1 : dxgkrnl!DxgkProcessCallout+0x135
0xffffd000ebf0c608 : 0xfffff96000099293 : win32k!GdiProcessCallout+0x1f7
0xffffd000ebf0c688 : 0xfffff96000098ad7 : win32k!W32pProcessCallout+0x53
0xffffd000ebf0c6b8 : 0xfffff802b17c1a4e : nt!PsInvokeWin32Callout+0x42
0xffffd000ebf0c6f8 : 0xfffff802b17c0c7c : nt!PspExitThread+0x518
0xffffd000ebf0c728 : 0xfffff802b15fbf1a : nt!KiSchedulerApc+0x472
0xffffd000ebf0c808 : 0xfffff802b18a332c : nt!KiSchedulerApcTerminate+0x18
0xffffd000ebf0c838 : 0xfffff802b14c524a : nt!KiDeliverApc+0x2fa
0xffffd000ebf0c8b8 : 0xfffff802b156dcc0 : nt!KiInitiateUserApc+0x70
0xffffd000ebf0c8d0 : 0xfffff802b15fbaa8 : nt!KiSchedulerApc
0xffffd000ebf0c9f8 : 0xfffff802b157465a : nt!KiSystemServiceExit+0x9f
0xffffd000ebf0ca00 : 0xffffe0009b2e2080 :  Trap @ ffffd000ebf0ca00
0xffffd000ebf0cb98 : 0xffffd000ebf06000 :  !du ""ebkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(w,"$1-webkit-$2")+a...""

0: kd> !PDE.du ffffd000ebf06000
ebkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(w,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(u=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+u+a;case 1005:return f.test(a)?a.replace(h,":-webkit-")+a.replace(h,":-moz-")+a:a;case 1e3:switch(t=(u=a.substring(13).trim()).indexOf("-")+1,u.charCodeAt(0)+u.charCodeAt(t)){case 226:u=a.replace(b,"tb");break;case 232:u=a.replace(b,"tb-rl");break;case 220:u=a.replace(b,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+u+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(u=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|u.charCodeAt(7))){case 203:if(111>u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(u,"-webkit-"+u)+";"+a.replace(u,"-ms-"+u+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return u=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+u+"-ms-flex-"+u+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(E,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(E,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===S.test(e))return 115===(u=e.substring(e.indexOf(":")+1)).charCodeAt(0)?r(e.replace("stretch","fill-available"),t,n,o).replace(":fill-available",":stretch"):a.replace(u,"-webkit-"+u)+a.replace(u,"-moz-"+u.replace("fill-",""))+a;breꀈ༂
This code is most likely javascript parsing some CSS via the GPU.

Most of the analysis is done by x BlueRobot over at https://www.sysnative.com/forums/threads/bsod-bad_pool_caller.31654/, while I was asleep x BlueRobot looked into the matter.

Yeap they are being really helpful.I hope we can solve this issue without any hardware changes
 
Yep, from the analysis performed by x BlueRobot you can see the pool the Nvidia driver tried to free which was already freed, which is why the crash occurred in the first place. The main goal of the analysis by x BlueRobot was to find the pool tag corresponding to the pool to find out what driver the pool belonged to. This pool tag is in reverse stored in memory, so 'driver' is shown as 'revird'. As the dxgkrnl driver is the driver of the pool it only makes sense that the Nvidia driver would need to be updated.

I had actually forgotten the pooltag is stored in memory in reverse order.
 
  • Like
Reactions: Vincent_22