Migration between CPU cores

US9910700B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9910700-B2
Application numberUS-201514836331-A
CountryUS
Kind codeB2
Filing dateAug 26, 2015
Priority dateAug 26, 2015
Publication dateMar 6, 2018
Grant dateMar 6, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for migration of operations between CPU cores, the method includes: processing, by a source core, one or more tasks and one or more interrupt service routines; accessing a mapping corresponding to a task of the one or more tasks and an interrupt service routine of the one or more interrupt service routines; identifying, based on the mapping, a target core that corresponds to the task and the interrupt service routine; blocking the task from being processed by the source core in response to identifying the target core; in response to identifying the target core, disabling an interrupt corresponding to the interrupt service routine; in response to identifying the target core, assigning the task and the interrupt to the target core; after assigning the interrupt to the target core, enabling the interrupt; and after assigning the task to the target core, processing the task by the target core.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: processing, by a plurality of cores of a storage controller, one or more tasks and one or more interrupt service routines; responsive to detecting a low system load, transitioning from a multi-core configuration to a single-core configuration, the transitioning including migrating the one or more tasks and one or more interrupt service routines from the plurality of cores to a target core by: accessing a mapping corresponding to a task of the one or more tasks and an interrupt service routine of the one or more interrupt service routines; identifying, based on the mapping, the target core that corresponds to the task and the interrupt service routine; blocking the task from being processed by a source core in response to identifying the target core; in response to identifying the target core, disabling an interrupt corresponding to the interrupt service routine; in response to identifying the target core, assigning the task and the interrupt to the target core; after assigning the interrupt to the target core, enabling the interrupt; and after assigning the task to the target core, processing the task by the target core. 2. The method of claim 1 , further comprising: prior to enabling the interrupt, buffering the interrupt at a buffer corresponding to the source core. 3. The method of claim 1 , wherein the mapping is provided by a user configured mapping table. 4. The method of claim 1 , wherein accessing the mapping includes creating the mapping. 5. The method of claim 1 , further comprising: migrating a second set of tasks and interrupt service routines to a second target core. 6. The method of claim 5 , wherein the second set of tasks and interrupt service routines is selected for migration to the second target core based upon a number of cores available. 7. The method of claim 1 , wherein the one or more tasks and the one or more interrupt service routines are processed by the target core during an initialization sequence, and wherein the task is processed by the source core after the initialization sequence. 8. A computing device comprising: a memory containing machine-readable medium comprising machine executable code having stored thereon instructions for performing a method of migrating tasks and interrupt service routines (ISRs) from a source core to a plurality of cores and from the plurality of cores to the source core; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: access a mapping; identify from the mapping, (1) a first set of tasks and a first set of ISRs to migrate to a first core of the plurality of cores, and (2) a second set of tasks and a second set of ISRs to migrate to a second core of the plurality of cores; perform the following operations according to identifying the first set of tasks and the first set of ISRs: block the first set of tasks and disable a first set of interrupts, wherein the first set of interrupts corresponds to the first set of ISRs; assign the first set of tasks and the first set of interrupts to the first core; and enable the first set of interrupts and unblock the first set of tasks; perform the following operations according to identifying the second set of tasks and the second set of ISRs: block the second set of tasks and disable a second set of interrupts, wherein the second set of interrupts corresponds to the second set of ISRs; assign the second set of tasks and the second set of interrupts to the second core; and enable the second set of interrupts and unblock the second set of tasks; and responsive to detecting a low system load, transition from a multi-core configuration to a single-core configuration, the transition including migrating the first set of tasks and the second set of tasks to the source core. 9. The computing device of claim 8 , wherein the unblock of the first set of tasks is performed prior to the block of the second set of tasks. 10. The computing device of claim 8 , wherein the mapping is configured via user interface. 11. The computing device of claim 8 , wherein the mapping is dynamically generated. 12. The computing device of claim 8 , wherein at least one task of the first set of tasks is performed by the source core during an initialization sequence, wherein the at least one task is executed on the first core after the initialization sequence. 13. The computing device of claim 8 , wherein the second set of tasks is selected for migration to the second core based at least in part upon a number of cores available. 14. The computing device of claim 8 , wherein the first set of tasks is blocked from execution prior to disabling the first set of interrupts, wherein the first set of tasks is unblocked after enabling the first set of interrupts. 15. A non-transitory machine-readable medium having stored thereon instructions for performing a method comprising machine executable code that when executed by at least one machine, causes the machine to: during an initialization, execute a plurality of tasks and a plurality of interrupt service routines (ISRs) on a first core; after completing the initialization, migrate the plurality of tasks and the plurality of ISRs across a plurality of cores, including: accessing a mapping that associates the plurality of tasks and the plurality of ISRs with the plurality of cores; based on the mapping, assigning the plurality of tasks to the plurality of cores as assigned tasks; based on the mapping, assigning one or more interrupts to the plurality of cores as assigned interrupts, the one or more interrupts corresponding to the plurality of ISRs; handling the assigned interrupts on the plurality of cores; and executing the assigned tasks on the plurality of cores; and responsive to detecting a low system load, transition from a multi-core configuration to a single-core configuration, the transition including migrating the plurality of tasks and the plurality of ISRs from the plurality of cores to the first core. 16. The non-transitory machine-readable medium of claim 15 , the migrate further including: blocking the plurality of tasks and disabling the one or more interrupts. 17. The non-transitory machine-readable medium of claim 16 , the migrate further including: unblocking assigned tasks and enabling the assigned interrupts. 18. The non-transitory machine-readable medium of claim 15 , the machine further to: based on performance measurements, migrate one or more tasks to other cores of the plurality of cores. 19. The non-transitory machine-readable medium of claim 17 , wherein the plurality of tasks are blocked prior to disabling the one or more interrupts, wherein the assigned tasks are unblocked after enabling the assigned interrupts.

Assignees

Inventors

Classifications

  • G06F13/24Primary

    using interrupt (G06F13/32 takes precedence) · CPC title

  • involving task migration · CPC title

  • G06F9/4812Primary

    by interrupt, e.g. masked · CPC title

  • resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9910700B2 cover?
A method for migration of operations between CPU cores, the method includes: processing, by a source core, one or more tasks and one or more interrupt service routines; accessing a mapping corresponding to a task of the one or more tasks and an interrupt service routine of the one or more interrupt service routines; identifying, based on the mapping, a target core that corresponds to the task a…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 06 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).