Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System freeze on HP EliteBook 735 G6 #1

Open
tandasat opened this issue Jun 21, 2020 · 1 comment
Open

System freeze on HP EliteBook 735 G6 #1

tandasat opened this issue Jun 21, 2020 · 1 comment

Comments

@tandasat
Copy link
Owner

tandasat commented Jun 21, 2020

After installing HelloAmdHvDxe.efi and starting bootx64.efi, the system freezes even without displaying the Windows logo.

Provided that this device does not have a Thunderbolt-capable port for DMA (and of course a serial port or DCI), I can only think of few options to move forward:

  • Configure KD. As the issue appears to occur after handing over to the bootloader, it may be possible to break-in and inspect the state and memory logs if the processors are stuck in the guest.
    • I was unable to configure KD in the first place against this device. Tried KDUSB, KDNET and KDNET over USB but none let me connect from the host.
  • See EFI variables can be used as a persistent log storage. This would let me to inspect the logs from the previous run even.
    • This is sort of an interesting idea. I may do.
  • Ask experts. I am curious.
  • Ignore this issue. What I would get by resolving this issue really?

BIOS Version/Date is HP R74 Ver. 01.05.00, 4/15/2020.

@tandasat
Copy link
Owner Author

tandasat commented Jun 28, 2020

INIT-SIPI-SIPI handling is broken in at least two ways:

  • The current logic assumes that INIT-SIPI-SIPI does not happen after load of the driver until the OS wakes up APs. This is not the case on this device; this device uses INIT-SIPI-SIPI for MP protocol implementation and calls the implementation somewhere between exit-boot-services and set-virtual-address-map. This results in that APs entering WaitForSipi loop and never receive SIPI because emulation is not started yet.
  • Even the INIT-SIPI-SIPI emulation is started, the BSP appears to enter an indefinite loop after emulating a certain INIT-SIPI-SIPI for AP#1. Applying this patch.txt, we are able to see 2 sets of INIT-SIPI-SIPI were successfully processed for all processors, but the 3rd one stops after processing AP#1. See out.txt. This may be because of the way to invoke MP API (ie, parameters) or may be because of the logic executed after SIPI on AP#1 (ie, AP#1 disables SVME and enters broken state). The cause is not understood yet.

EDIT: Note that the UEFI variable based logging was added to diagnose the issue. As write to a UEFI variables requires SMI, log entries may never been saved if the processor never returns to the guest because during execution of the host, SMI is disabled with GIF being 0. This is the case with assertion failure that enters to an infinite loop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant