Root cause is memtest86 doesn’t have high enough priority during its running session, the specific memory region is manipulated by other higher priority task, resulted memtest86 crash.
/** MdePkg/Include/Uefi/UefiSpec.h **/
585 //
586 // Task priority level
587 //
588 #define TPL_APPLICATION 4
589 #define TPL_CALLBACK 8
590 #define TPL_NOTIFY 16
591 #define TPL_HIGH_LEVEL 31
When Lan-Over-USB (Redfish host interface) was introduced in BIOS 3.3, a TPL_CALLBACK level routine was in place for IPv4 binding, which has higher priority than memtest86 and also manipulate EfiBootservicesData memory pool, resulted the conflict and crash in memtest86.
Although BISO changed design, eliminated the timer interrupt that will crash memtest86, but still uncertain memtest86 won’t be influenced by other higher priority tasks. We would encourage memtest86 to reappraise their design, in general higher priority can much lower the chance of conflict when running memory test.
How can we verify what the BIOS engineer is saying and memtest86 the Passmark people says our BIOS engineer is wrong.
/** MdePkg/Include/Uefi/UefiSpec.h **/
585 //
586 // Task priority level
587 //
588 #define TPL_APPLICATION 4
589 #define TPL_CALLBACK 8
590 #define TPL_NOTIFY 16
591 #define TPL_HIGH_LEVEL 31
When Lan-Over-USB (Redfish host interface) was introduced in BIOS 3.3, a TPL_CALLBACK level routine was in place for IPv4 binding, which has higher priority than memtest86 and also manipulate EfiBootservicesData memory pool, resulted the conflict and crash in memtest86.
Although BISO changed design, eliminated the timer interrupt that will crash memtest86, but still uncertain memtest86 won’t be influenced by other higher priority tasks. We would encourage memtest86 to reappraise their design, in general higher priority can much lower the chance of conflict when running memory test.
How can we verify what the BIOS engineer is saying and memtest86 the Passmark people says our BIOS engineer is wrong.
- BIOS team now have a solution to solve the problem from one side, and they can easily demonstrate a simple application to crash memtest86 by 1ms TPL_CALLBACK routine, I have to believe what they said.
Comment