Techniques for managing memory in a multiprocessor architecture
AssigneeSuse LLC
InventorNikanth Karthikesan
Life of this patent
Estimating the term…
Abstract
Techniques for managing memory in a multiprocessor architecture are presented. Each processor of the multiprocessor architecture includes its own local memory. When data is to be removed from a particular local memory or written to storage that data is transitioned to another local memory associated with a different processor of the multiprocessor architecture. If the data is then requested from the processor, which originally had the data, then the data is acquired from a local memory of the particular processor that received and now has the data.
Claims18
A method implemented in a non-transitory machine-readable storage medium and processed by one or more processors configured to perform the method, comprising:
- detecting, by a kernel process of an Operating System (OS), that a local memory for a first processor of a multiprocessor system has reached a threshold capacity level;
- identifying, by the kernel processing, a second memory local to a second processor of the multiprocessor system with excess capacity by accessing a system metric table that includes a second processor identifier for the second processor, a second memory identifier for the second memory of the second processor, and a current usage value representing a current capacity of the second memory;
- and
- offloading, by the kernel process, data from the local memory of the first processor to the second memory local to the second processor through inter-processor communications between the first processor and the second processor to increase capacity of the local memory and decrease capacity of the second memory based on the system metric table having the current usage value for the second memory, wherein the local memory and the second memory are volatile memories, wherein offloading the data further includes providing, by the first processor, the offloaded data from the local memory to the second processor for temporary storage in the second memory and instructing the second processor to write the offloaded data to non-volatile storage on behalf of the first processor when the second processor is experiencing less processing load relative to the first processor.
A method implemented in a non-transitory machine-readable storage medium and processed by one or more processors configured to perform the method, comprising:
- detecting, by a kernel processing of an Operating System (OS), a condition indicating data in a local memory of a first processor is to be transitioned to one or more second memories local to one or more second processors in a multiprocessor system, wherein the local memory and the one or more second memories are volatile memories;
- ensuring, by the kernel process, the some or all of the one or more second memories can handle excess capacity associated with receiving the data;
- and
- transitioning, by the kernel process, the data to particular ones or all of the second memories based on current capacity levels for each of the second memories based a system metric table that includes second processor identifiers for the second processors, second memory identifiers for the second memories, and current usage values for each of the second memories and by identifying a threshold capacity level for the local memory and each of the second memories during a boot of the first processor and the one or more second processors, wherein transitioning further includes offloading some of the data in the local memory to the one or more second memories when the one or more second processors are experiencing less processing loads than the first processor based on the current usage values from the system metric table and through inter-processor communications between the first processor and the one or more second processors on the multicore processor system that is a multicore processor machine, and writing, by the one or more second processors, that data to non-volatile storage and removing, by the one or more second processors, that data from the one or more second memories once written to the non-volatile storage.
A multi-processor implemented system, comprising:
- a multicore processor machine having multiple processors;
- and
- the multicore processor machine configured with and to execute a memory manager on each of the processors;
- each memory manager configured to execute as a kernel process within an Operating System (OS), and each memory manager configured to monitor capacity for local memory associated with each memory manager's processor through a system metric table that includes an identifier for each processor, an identifier for each local memory, and a current usage value for each local memory, wherein each memory manager is also configured to migrate data from its local memory to another processor's local memory based on policy evaluation in view of current usage values for the local memories and a threshold capacity level, wherein the local memories are volatile memories, and wherein at least one processor provides some data from that processor's local memory to a different processor when the different processor is experiencing less processing load than that at least one processor, and the different processor receives that data in the different processor's local memory, writes that data to non-volatile storage, and removes that data from the different processor's local memory through inter-processor communications between the at least one processor and the different processor on the multicore processor machine.
Dependencies are inferred from the claim text.