Detecting deadlocks involving inter-processor interrupts
US-2015378791-A1 · Dec 31, 2015 · US
US2017344403A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2017344403-A1 |
| Application number | US-201615166840-A |
| Country | US |
| Kind code | A1 |
| Filing date | May 27, 2016 |
| Priority date | May 27, 2016 |
| Publication date | Nov 30, 2017 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Apparatuses, methods and storage medium associated with spinlock are disclosed herein. In embodiments, an apparatus for computing may comprise a first and a second processor core to correspondingly execute a first and a second thread; a storage location to store a spinlock to facilitate exclusive access by the first or the second thread to a plurality of resources implicitly shared by the first and second threads; and spin logic to be executed by the second processor core to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by the first thread for exclusive access to one or more of the implicitly shared resources. Other embodiments may be disclosed or claimed.
Opening claim text (preview).
What is claimed is: 1 . An apparatus for computing, comprising: a processor having at least a first and a second processor core to correspondingly execute a first and a second firmware or software thread; a storage location to store a spinlock to facilitate exclusive access by the first or the second thread to a plurality of resources implicitly shared by the first and second threads; and spin logic to be executed by the second processor core to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by the first thread for exclusive access to one or more of the implicitly shared resources; wherein the second thread does not have a need for exclusive access to one or more of the implicitly shared resources. 2 . The apparatus of claim 1 , wherein the spin logic has higher execution priority than the second thread. 3 . The apparatus of claim 1 , wherein the first thread is to set the spinlock, without having to check a state of the spinlock, prior to commencing execution of a critical section of the first thread to ensure the implicitly shared resources are available to the first thread, if needed, during execution of the critical section of the first thread. 4 . The apparatus of claim 3 , wherein the first thread is to release the spinlock on completion of execution of the critical section of the first thread. 5 . The apparatus of claim 4 , wherein the spin logic is to cease occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first thread. 6 . The apparatus of claim 3 , further comprising a spinlock service to initialize the spinlock at the storage location; wherein the storage location is accessible to the first thread and visible to the spin logic. 7 . The apparatus of claim 6 , wherein the first thread is to obtain the storage location from the spinlock service, or the apparatus further comprises a loader to load the first thread for execution, and provide the first thread with the storage location. 8 . The apparatus of claim 6 , wherein the second thread is to register with the spinlock service to receive a spinlock set event notification from the spinlock service whenever the spinlock is set; and wherein the spinlock service is to accept registration of the second thread, monitor the spinlock, and on detection that the spinlock is set, provide the second thread with the spinlock set event notification. 9 . The apparatus of claim 6 , further comprising a basic input/output system (BIOS) having the spinlock service or the spin logic. 10 . The apparatus of claim 1 , wherein the processor comprises a control register, and the storage location is disposed within the control register, or the apparatus further comprises a system memory having the storage location; and wherein the plurality of resources of the apparatus implicitly shared by the first and second threads comprise a system memory, a memory controller, or a system bus of the apparatus. 11 . The apparatus of claim 1 , wherein the second thread comprises the spin logic. 12 . The apparatus of claim 1 , wherein the spin logic is a first spin logic, the processor core further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by the first, the second or the third thread to the plurality of resources implicitly shared by the first and second threads, as well as the third thread; and wherein the apparatus further comprises: second spin logic to be executed by the third processor core to occupy the third processor core to effectively suspend execution of the third thread to prevent the third thread from using any one of the implicitly shared resources, wherein the third thread does not have a need for exclusive access to one or more of the implicitly shared resources. 13 . The apparatus of claim 1 , wherein the processor core further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by a subset of the first, the second and the third thread to the plurality of resources implicitly shared by the first and second threads, as well as the third thread; and wherein the spin logic is to be executed by the second processor core to occupy the second processor core to effectively suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by either the first thread, the third thread or both the first and third thread for exclusive access to one or more of the implicitly shared resources. 14 . The apparatus of claim 13 , wherein the first or third thread is to set the spinlock, without having to first check a state of the spinlock, prior to commencing execution of a semi-critical section of the first or third thread to increase likelihood of the implicitly shared resources are available to the first or third thread, if needed, during execution of the semi-critical section of the first or third thread. 15 . The apparatus of claim 14 , wherein the spinlock is a counter with an initial value, and the first or third thread sets the spinlock by incrementing the counter; and wherein the first or third thread is to release the spinlock on completion of execution of the semi-critical section of the first or third thread by decrementing the counter; and wherein the spin logic is to cease occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first and third threads, when the spinlock counter is decremented to the initial value. 16 . A method for computing on an apparatus with a first processor core executing a first firmware or software thread, the method comprising: executing, by a second processor core of the apparatus, a second firmware or software thread; wherein the apparatus includes a plurality of resources implicitly shared by the first and second threads; and executing , by the second processor core, a spin logic to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever a spinlock disposed at a storage location of the apparatus is set by the first thread for exclusive access to the implicitly shared resources; wherein the second thread does not have a need for exclusive access to one or more of the implicitly shared resources. 17 . The method of claim 16 , further comprising setting, by the first thread, the spinlock, without checking a state of the spinlock, prior to commencing execution of a critical section of the first thread to ensure the implicitly shared resources are available to the first thread, if needed, during execution of the critical section of the first thread; releasing, by the first thread, the spinlock on completion of execution of the critical section of the first thread; and ceasing, by the spin logic, occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first thread. 18 . The method of claim 16 , wherein the spin logic is a first spin logic, the apparatus further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by the first, the second or the third thread to the plurality of resources implicitly shared by
Deadlock detection or avoidance · CPC title
considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.