<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Inter-processor_interrupt</id>
	<title>Inter-processor interrupt - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Inter-processor_interrupt"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Inter-processor_interrupt&amp;action=history"/>
	<updated>2026-05-05T00:35:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Inter-processor_interrupt&amp;diff=2223474&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot: Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Inter-processor_interrupt&amp;diff=2223474&amp;oldid=prev"/>
		<updated>2024-09-08T20:54:25Z</updated>

		<summary type="html">&lt;p&gt;Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|Type of interrupt signal sent between computer processors}}&lt;br /&gt;
{{More references|date=December 2014}}&lt;br /&gt;
&lt;br /&gt;
In [[computing]], an &amp;#039;&amp;#039;&amp;#039;inter-processor interrupt&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;IPI&amp;#039;&amp;#039;&amp;#039;), also known as a &amp;#039;&amp;#039;shoulder tap&amp;#039;&amp;#039;, is a special type of [[interrupt]] by which one [[Processor (computing)|processor]] may interrupt another processor in a [[multiprocessor]] system if the interrupting processor requires action from the other processor.  Actions that might be requested include:&lt;br /&gt;
&lt;br /&gt;
* flushes of [[memory management unit]] caches, such as [[translation lookaside buffer]]s, on other processors when memory mappings are changed by one processor;&lt;br /&gt;
* stopping when the system is being shut down by one processor.&lt;br /&gt;
* Notify a processor that higher priority work is available.&lt;br /&gt;
* Notify a processor of work that cannot be done on all processors due to, e.g.,&lt;br /&gt;
** asymmetric access to [[I/O channel]]s&amp;lt;ref&amp;gt;{{cite manual&lt;br /&gt;
 | title       = OS I/O Supervisor Logic - Release 21 - Program Number 360S-CI-505&lt;br /&gt;
 | id          = GY28-6616-9&lt;br /&gt;
 | page        = 271&lt;br /&gt;
 | section     = Appendix F: Multiprocessing Extensions&lt;br /&gt;
 | section-url = http://bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/plm/GY28-6616-9_OS_IO_Superv_PLM_R21.7_Apr73.pdf#page=282&lt;br /&gt;
 | url         = http://bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/plm/GY28-6616-9_OS_IO_Superv_PLM_R21.7_Apr73.pdf&lt;br /&gt;
 | series      = Program Logic&lt;br /&gt;
 | publisher   = [[IBM]]&lt;br /&gt;
 | access-date = August 28, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
** special features on some processors&amp;lt;ref&amp;gt;{{Cite web |title=AMD Technical Information Portal |url=https://docs.amd.com/r/en-US/am011-versal-acap-trm/Inter-Processor-Interrupts |access-date=2024-07-18 |website=docs.amd.com}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mechanism ==&lt;br /&gt;
The [[OS/360 and successors#M65MP|M65MP]] option of [[OS/360 and successors|OS/360]]  used the Direct Control feature of the [[IBM System/360|S/360]] to generate an interrupt on another processor; on [[IBM System/370|S/370]] and its successors, including [[z/Architecture]], the SIGNAL PROCESSOR instruction provides a more formalized interface. The documentation for some IBM operating systems refers to this as a shoulder tap.&lt;br /&gt;
&lt;br /&gt;
On [[IBM PC compatible]] computers that use the [[Advanced Programmable Interrupt Controller]] (APIC), IPI signaling is often performed using the APIC. When a CPU wishes to send an interrupt to another CPU, it stores the [[interrupt vector]] and the identifier of the target&amp;#039;s local APIC in the Interrupt Command Register (ICR) of its own local APIC. A message is then sent via the APIC bus to the target&amp;#039;s local APIC, which then issues a corresponding interrupt to its own CPU.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
In a multiprocessor system running [[Microsoft Windows]], a processor may interrupt another processor for the following reasons, in addition to the ones listed above:&amp;lt;ref&amp;gt;{{Cite web |title=Inter Processor Interrupt usage |url=https://stackoverflow.com/questions/15091165/inter-processor-interrupt-usage |access-date=2024-07-18 |website=Stack Overflow |language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# queue a DISPATCH_LEVEL interrupt to schedule a particular thread for execution;&lt;br /&gt;
# kernel debugger breakpoint.&lt;br /&gt;
&lt;br /&gt;
IPIs are given an [[IRQL (Windows)|IRQL]] of 29.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
 |author = Matt&lt;br /&gt;
 |title = Understanding IRQL&lt;br /&gt;
 |url = http://ext2fsd.sourceforge.net/documents/irql.htm&lt;br /&gt;
 |accessdate = 2014-12-06&lt;br /&gt;
 |date = 2002-04-28&lt;br /&gt;
 |archive-date = 2019-10-14&lt;br /&gt;
 |archive-url = https://web.archive.org/web/20191014125625/http://ext2fsd.sourceforge.net/documents/irql.htm&lt;br /&gt;
 |url-status = dead&lt;br /&gt;
 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Interrupt]]&lt;br /&gt;
* [[Interrupt handler]]&lt;br /&gt;
* [[Non-maskable interrupt]] (NMI)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
*[http://linux.linti.unlp.edu.ar/images/0/0c/ULK3-CAPITULO4-UNNOBA.pdf Interrupts and Exceptions]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interrupts]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Compu-hardware-stub}}&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>