An apparatus, method and computer program product for stopping processors
in a multiprocessor system without using non-maskable interrupts are
provided. With the apparatus, method and computer program product, at
system initialization time, a copy of the operating system (OS) kernel is
copied to a new physical location in memory. When a processor enters the
debugger due to the occurrence of an event, the debugger switches its
virtual-to-physical address mapping to point to the new copy of the OS
kernel. The original copy of the OS kernel is then modified by inserting
breakpoints, e.g., interrupts, in a repeating pattern in the text of the
original copy of the OS kernel, with the exception of the breakpoint
handler text in the original copy of the OS kernel. A cache flush of the
remaining processors is then instigated thereby forcing the remaining
processors to refetch instructions from the OS kernel. When the remaining
processors fetch the OS kernel instructions, the instructions are fetched
from the modified OS kernel. Thus, the processors encounter the inserted
breakpoints and enter a breakpoint handler. The breakpoint handler then,
by virtue of the switched virtual-to-physical address mapping, redirects
the processor to the new copy of the OS kernel and handles the breakpoint
in a normal fashion, e.g. causes the processor to enter the debugger.
Un produit de matériel, de méthode et de programme machine pour arrêter des processeurs dans un système de multiprocesseur sans employer des interruptions non masquables sont fournis. Avec l'appareil, le produit de méthode et de programme machine, au temps d'initialisation de système, une copie du grain du logiciel d'exploitation (OS) est copié à un nouvel endroit physique dans la mémoire. Quand un processeur entre dans le programme de mise au point dû à l'occurrence d'un événement, le programme de mise au point commute son tracer d'adresse virtuel-à-physique au point à la nouvelle copie du grain d'OS. La copie originale du grain d'OS est alors modifiée en insérant des paliers, par exemple, interruptions, dans un modèle de répétition dans le texte de la copie originale du grain d'OS, excepté le texte de traiteur de palier dans la copie originale du grain d'OS. Un éclat de cachette des processeurs restants est alors incité forçant de ce fait les processeurs restants aux instructions de refetch du grain d'OS. Quand les processeurs restants cherchent les instructions de grain d'OS, les instructions sont cherchées du grain modifié d'OS. Ainsi, les processeurs rencontrent les paliers insérés et présentent un traiteur de palier. Le traiteur de palier alors, en vertu de tracer d'adresse virtuel-à-physique commuté, réoriente le processeur à la nouvelle copie du grain d'OS et manipule le palier d'une mode normale, par exemple fait entrer dans le processeur le programme de mise au point.