BSOD hal.dll on Windows Server 2016

talishka

Well-known member
Joined
May 28, 2018
Posts
102
Location
Buenos Aires, AR.
Hi! I know this is not a Win10/Win11 specific but i'm desperate, this issue is driving me nuts, i'm not understanding what is failing! Please help! I had two exactly clones of hardware, i even migrated the disks from one pc to the other one and the issue persists.

  • The issue is i get almost once a week a hall.dll bsod with a MACHINE_CHECK_EXCEPTION code Bugcheck code 0x0000009c
  • System Manufacturer ASUS
  • Desktop like (i'm not using server hardware)
  • ASUS PRIME B365M-A
  • OS Windows 2016 Server Datacenter Version 1607 (OS Build 14393.6709)
  • x64 (64bit)
  • No Service Pack
  • OS Windows 2016 Server Datacenter Version 1607 (OS Build 14393.6709) Installed from the begining
  • Retail Version installed
  • Age of system? Less than 1 year
  • Age of OS installation? 15/05/23 was installed
  • Have you re-installed the OS? No
  • CPU I7 9700 - Intel64 Family 6 Model 158 Stepping 13 GenuineIntel ~3000 Mhz
  • RAM
    Slot 1 Kingston KF3200C16D4/8GX 8GB DDR4-2400
    Slot 2 Kingston KHX2666C16/8G 8GB DDR4-2666
    Slot 3 Kingston KF3200C16D4/8GX 8GB DDR4-2400
    Slot 4 Kingston KHX2666C16/8G 8GB DDR4-2666
  • Onboard (drivers not installed to avoid issues, using Microsoft Basic Display Adapter)
  • ASUS PRIME B365M-A
  • Power Supply CoolerMaster 1000W Silent Pro
  • Is driver verifier enabled or disabled? It seems disabled
  • What security software are you using? Native Microsoft Defender
  • Are you using proxy, vpn, ipfilters or similar software? No
  • Are you using Disk Image tools? No
  • Are you currently under/overclocking? Are there overclocking software installed on your system? No

Anything that could help is welcomed. Also ask whatever you need.

Eternal thanks in advance!
 

Attachments

In the two dumps uploaded, the BSODs are happening as a processor comes out of the idle state. Here's one of the call stacks, you read these from the bottom up (they are push-down stacks)...
Code:
0: kd> kn
 # Child-SP          RetAddr               Call Site
00 fffff801`08056b68 fffff801`06060031     nt!KeBugCheckEx
01 fffff801`08056b70 fffff801`0606046b     hal!HalpMcaReportError+0xf5
02 fffff801`08056cc0 fffff801`06060590     hal!HalpMceHandlerWithRendezvous+0x12b
03 fffff801`08056cf0 fffff801`05977a3b     hal!HalHandleMcheck+0x40
04 fffff801`08056d20 fffff801`0597771a     nt!KxMcheckAbort+0x7b
05 fffff801`08056e60 fffff805`981640ce     nt!KiMcheckAbort+0x19a
06 fffff801`080417c8 00000000`00000000     intelppm!MWaitIdle+0x2e
You can see the machine check happening as the intelppm.sys driver is called. This driver is the specific power management driver for Intel CPUs and, amongst other things, it's responsible for changing the power state (the C-State) from the low-power idle state to the high-power running state. It's possible that the CPU is struggling with power state transitions. I have seen that before.

If your BIOS allows C-State management then disable C-States for all processors, this will stop them dropping to lower power states when idle. I'm not sure whether that server version of Windows allows modifying the processor power states in the active power option(?) but if it does, change both the minimum processor power state AND the maximum processor power state to both be 99%. That also stops the processors dropping into a lower power state.

See whether that helps.

BTW: It may also be worth checking CPU temperatures, a hot CPU could misbehave in this way also.

And another thing: I'm not happy about the mismatched RAM. I doubt it's causing these machine checks but mismatched RAM causes all sorts of problems, including BSODs.
 
Hi! I've created a custom Power Plan, my "High Performance" plan also had configured CPU at 100% as minimum and as maximus. Besides of that i've found a tool called ThrottleStop which allows to disable C1 States and saves it inside the Power Plan. After work hours i'll change the memories also.
 
Back
Top