Opened 15 years ago

Closed 13 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 by Martin Decky, 15 years ago

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 by Jiri Svoboda, 15 years ago

Component: kernel/genarch

comment:3 by Jakub Jermář, 15 years ago

Milestone: 0.4.10.5.0

in reply to:  1 comment:4 by Jakub Jermář, 14 years ago

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 by Martin Decky, 14 years ago

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

comment:6 by Jakub Jermář, 14 years ago

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 by Jakub Jermář, 13 years ago

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.