Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 10 years ago

Closed 9 years ago

#69 closed defect (notadefect)

i8042 CPU reset fails miserably in SMP configurations

Reported by: Jiri Svoboda Owned by:
Priority: minor Milestone: 0.4.3
Component: helenos/kernel/genarch Version: mainline
Keywords: reboot i8042 Cc:
Blocker for: Depends on:
See also:

Description

The new method for rebooting PCs using i8042 works in uniprocessor. However, with SMP in Qemu it goes horribly wrong. Either it does not reboot at all, or it reboots and then dies in a triple fault during POST.

I believe this is because only one CPU gets reset and the others continue running happily. Whether this is a Qemu bug, or whether we are using an incorrect method of rebooting, needs to be determined.

Change History (7)

comment:1 Changed 10 years ago by Martin Decky

I have already investigated this and it seems to be a bug in QEMU (I don't remember the details, but the reset flag gets somehow forgotten by the other CPUs — I can dig into the sources again).

The i8042 reset works OK in Simics and on bare hardware in SMP configurations.

The question is what should we do about it? Fixing the bug in QEMU is certainly welcomed, but if there is a fail-safe workaround, we should implement it also.

comment:2 Changed 10 years ago by Jiri Svoboda

Component: kernel/genarch

comment:3 Changed 10 years ago by Jakub Jermář

Milestone: 0.4.10.5.0

comment:4 in reply to:  1 Changed 9 years ago by Jakub Jermář

Replying to decky:

I have already investigated this and it seems to be a bug in QEMU (I don't remember the details, but the reset flag gets somehow forgotten by the other CPUs — I can dig into the sources again).

With the recent versions of Qemu, it is possible to log CPU resets, so if we run qemu with the -d int,cpu_reset option, we should be able to see how the other CPUs reacted to the reset in /tmp/qemu.log.

comment:5 Changed 9 years ago by Martin Decky

I have tried. In case of two CPUs they both report to be reset, but nothing actually happens pass that point ..

comment:6 Changed 9 years ago by Jakub Jermář

In the case of a triple-fault on Qemu/SMP, the system is not reset either, but appears to be hard hung. What is important, IMHO, is to verify that after reseting the system via i8042, all CPUs are marked as reset by Qemu, regardless of whether the system is eventually reset or not.

I suggest closing this bug as not a defect.

comment:7 Changed 9 years ago by Jakub Jermář

Resolution: notadefect
Status: newclosed

Closing this ticket as not a defect, feel free to reopen if necessary.

Note: See TracTickets for help on using tickets.