Patent application number | Description | Published |
20080263288 | System and Method for Probing Hypervisor Tasks in an Asynchronous Environment - A system, method, and computer-usable medium for probing hypervisor tasks in an asynchronous environment. According to an embodiment of the invention, the partition firmware sends a request for data to the hypervisor. When the hypervisor receives the request for data, the hypervisor returns a taskID that identifies the task allocated to handle the request. Partition firmware records the taskID and a timestamp, which indicates the time in which the hypervisor received the request. A timer is set to measure the amount of time elapsed since the task ID was received by a requesting partition firmware. If the hypervisor has not provided the partition firmware with the requested data after a predetermined time period measured by the timer has elapsed, the partition firmware inquires about the status of the task associated with the taskID. If the task is still running, the partition firmware returns control of the partition to the operating system. | 10-23-2008 |
20090307436 | Hypervisor Page Fault Processing in a Shared Memory Partition Data Processing System - Hypervisor page fault processing logic is provided for a shared memory partition data processing system. The logic, responsive to an executing virtual processor of the shared memory partition data processing system encountering a hypervisor page fault, allocates an input/output (I/O) paging request to the virtual processor from an I/O paging request pool and increments an outstanding I/O paging request count for the virtual processor. A determination is then made whether the outstanding I/O paging request count for the virtual processor is at a predefined threshold, and if not, the logic places the virtual processor in a wait state with interrupt wake-up reasons enabled based on the virtual processor's state, otherwise, it places the virtual processor in a wait state with interrupt wake-up reasons disabled. | 12-10-2009 |
20090307439 | Dynamic Control of Partition Memory Affinity in a Shared Memory Partition Data Processing System - Dynamic control of memory affinity is provided for a shared memory logical partition within a shared memory partition data processing system having a plurality of nodes. The memory affinity control approach includes: determining one or more home node assignments for the shared memory logical partition, with each assigned home node being one node of the plurality of nodes of the system; determining a desired physical page level per node for the shared memory logical partition; and allowing the shared memory partition to run and using the home node assignment(s) and its desired physical page level(s) in the dispatching of tasks to physical processors in the nodes and in hypervisor page memory management to dynamically control memory affinity of the shared memory logical partition in the data processing system. | 12-10-2009 |
20090307440 | Transparent Hypervisor Pinning of Critical Memory Areas in a Shared Memory Partition Data Processing System - Transparent hypervisor pinning of critical memory areas is provided for a shared memory partition data processing system. The transparent hypervisor pinning includes receiving at a hypervisor a hypervisor call initiated by a logical partition to register a logical memory area of the logical partition with the hypervisor. Responsive to this hypervisor call, the hypervisor transparently determines whether the logical memory is a critical memory area for access by the hypervisor. If the logical memory area is a critical memory area, then the hypervisor automatically pins the logical memory area to physical memory of the shared memory partition data processing system, thereby ensuring that the memory area will not be paged-out from physical memory to external storage, and thus ensuring availability of the logic memory area to the hypervisor. | 12-10-2009 |
20090307445 | Shared Memory Partition Data Processing System With Hypervisor Managed Paging - Hypervisor managed memory paging is provided in a data processing system having multiple logical partitions. The data processing system includes a shared memory pool defined within physical memory. The shared memory pool includes a volume of physical memory with dynamically adjustable sub-volumes or sets of physical pages associated with the multiple logical partitions. Each sub-volume or set is associated with a particular logical partition and includes mapped logical memory pages for that logical partition. A hypervisor memory manager interfaces the multiple logical partitions and the shared memory pool, and manages access to logical memory pages within the shared memory pool. The hypervisor memory manager further manages page-out and page-in of logical memory pages from the shared memory pool to one or more external paging devices. This page-out and page-in managing by the hypervisor memory manager is transparent to the multiple logical partitions. | 12-10-2009 |
20090307447 | Managing Migration of a Shared Memory Logical Partition from a Source System to a Target System - Migration management is provided for a shared memory logical partition migrating from a source system to a target system. The management approach includes managing migration of the logical partition from the source system to the target system by: transferring a portion of logical partition state information for the migrating logical partition from the source system to the target system by copying at the source system contents of a logical page of the migrating logical partition into a state record buffer for forwarding to the target system; forwarding the state record buffer to the target system; and determining whether the migrating logical partition is suspended at the source system, and if not, copying at the target system contents of the state record buffer to paging storage of the target system, the paging storage being external to physical memory managed by a hypervisor of the target system. | 12-10-2009 |
20090307538 | Managing Paging I/O Errors During Hypervisor Page Fault Processing - In response to a hypervisor page fault for memory that is not resident in a shared memory pool, an I/O paging request is sent to an external storage paging space. In response to a paging service partition encountering an I/O paging error, a paging failure indication is sent to the hypervisor. A simulated machine check interrupt instruction is sent from the hypervisor to the shared memory partition and a machine check handler obtains control. The machine check handler performs data analysis utilizing an error log in an attempt to isolate the I/O paging error to a process or a set of processes in the shared memory partition. The process or set of processes associated with the I/O paging error, or the shared memory partition itself, may be terminated. Finally, the shared memory partition may clear or initialize the page associated with the I/O paging error. | 12-10-2009 |
20110173370 | Relocating Page Tables And Data Amongst Memory Modules In A Virtualized Environment - Relocating data in a virtualized environment maintained by a hypervisor administering access to memory with a Cache Page Table (‘CPT’) and a Physical Page Table (‘PPT’), the CPT and PPT including virtual to physical mappings. Relocating data includes converting the virtual to physical mappings of the CPT to virtual to logical mappings; establishing a Logical Memory Block (‘LMB’) relocation tracker that includes logical addresses of an LMB, source physical addresses of the LMB, target physical addresses of the LMB, a translation block indicator for each relocation granule, and a pin count associated with each relocation granule; establishing a PPT entry tracker including PPT entries corresponding to the LMB to be relocated; relocating the LMB in a number of relocation granules including blocking translations to the relocation granules during relocation; and removing the logical addresses from the LMB relocation tracker. | 07-14-2011 |
20120110273 | TRANSPARENT HYPERVISOR PINNING OF CRITICAL MEMORY AREAS IN A SHARED MEMORY PARTITION DATA PROCESSING SYSTEM - Transparent hypervisor pinning of critical memory areas is provided for a shared memory partition data processing system. The transparent hypervisor pinning includes receiving at a hypervisor a hypervisor call initiated by a logical partition to register a logical memory area of the logical partition with the hypervisor. Responsive to this hypervisor call, the hypervisor transparently determines whether the logical memory is a critical memory area for access by the hypervisor. If the logical memory area is a critical memory area, then the hypervisor automatically pins the logical memory area to physical memory of the shared memory partition data processing system, thereby ensuring that the memory area will not be paged-out from physical memory to external storage, and thus ensuring availability of the logic memory area to the hypervisor. | 05-03-2012 |
20120110276 | MANAGING MIGRATION OF A SHARED MEMORY LOGICAL PARTITION FROM A SOURCE SYSTEM TO A TARGET SYSTEM - Migration management is provided for a shared memory logical partition migrating from a source system to a target system. The management approach includes managing migration of the logical partition from the source system to the target system by: transferring a portion of logical partition state information for the migrating logical partition from the source system to the target system by copying at the source system contents of a logical page of the migrating logical partition into a state record buffer for forwarding to the target system; forwarding the state record buffer to the target system; and determining whether the migrating logical partition is suspended at the source system, and if not, copying at the target system contents of the state record buffer to paging storage of the target system, the paging storage being external to physical memory managed by a hypervisor of the target system. | 05-03-2012 |
20120131260 | HYPERVISOR PAGE FAULT PROCESSING IN A SHARED MEMORY PARTITION DATA PROCESSING SYSTEM - Hypervisor page fault processing logic is provided for a shared memory partition data processing system. The logic, responsive to an executing virtual processor of the shared memory partition data processing system encountering a hypervisor page fault, allocates an input/output (I/O) paging request to the virtual processor from an I/O paging request pool and increments an outstanding I/O paging request count for the virtual processor. A determination is then made whether the outstanding I/O paging request count for the virtual processor is at a predefined threshold, and if not, the logic places the virtual processor in a wait state with interrupt wake-up reasons enabled based on the virtual processor's state, otherwise, it places the virtual processor in a wait state with interrupt wake-up reasons disabled. | 05-24-2012 |
20120180046 | ADJUNCT PARTITION WORK SCHEDULING WITH QUALITY OF SERVICE ATTRIBUTES - Operating system-directed workload scheduling of an adjunct partition in a logically partitioned computer is selectively overridden to handle platform work requiring a Quality of Service (QoS) guarantee. Firmware may track outstanding requests for platform work for an adjunct partition, and in response to a request for platform work that requires a QoS guarantee, the firmware may assume or take over scheduling decisions for the adjunct partition from the operating system of an associated logical partition and schedule execution of the adjunct partition to ensure that the adjunct partition will be allocated sufficient execution resources to perform the platform work independent of the scheduling desires of the operating system. As a result, any platform work that potentially impacts the platform work of other adjunct partitions will not be held up as a result of an unwillingness or inability of the operating system to schedule execution of the adjunct partition. | 07-12-2012 |
20120311274 | DYNAMIC CONTROL OF PARTITION MEMORY AFFINITY IN A SHARED MEMORY PARTITION DATA PROCESSING SYSTEM - Dynamic control of memory affinity is provided for a shared memory logical partition within a shared memory partition data processing system having a plurality of nodes. The memory affinity control approach includes: determining one or more home node assignments for the shared memory logical partition, with each assigned home node being one node of the plurality of nodes of the system; determining a desired physical page level per node for the shared memory logical partition; and allowing the shared memory partition to run and using the home node assignment(s) and its desired physical page level(s) in the dispatching of tasks to physical processors in the nodes and in hypervisor page memory management to dynamically control memory affinity of the shared memory logical partition in the data processing system. | 12-06-2012 |
20120324144 | Relocating Page Tables And Data Amongst Memory Modules In A Virtualized Environment - Relocating data in a virtualized environment maintained by a hypervisor administering access to memory with a Cache Page Table (‘CPT’) and a Physical Page Table (‘PPT’), the CPT and PPT including virtual to physical mappings. Relocating data includes converting the virtual to physical mappings of the CPT to virtual to logical mappings; establishing a Logical Memory Block (‘LMB’) relocation tracker that includes logical addresses of an LMB, source physical addresses of the LMB, target physical addresses of the LMB, a translation block indicator for each relocation granule, and a pin count associated with each relocation granule; establishing a PPT entry tracker including PPT entries corresponding to the LMB to be relocated; relocating the LMB in a number of relocation granules including blocking translations to the relocation granules during relocation; and removing the logical addresses from the LMB relocation tracker. | 12-20-2012 |
20140115213 | TIERED LOCKING OF RESOURCES - In an embodiment, a lock command is received from a thread that specifies a resource. If tier status in a nodal lock indicates the nodal lock is currently owned, an identifier of the thread is added to a nodal waiters list, and if the thread's lock wait indicator indicates that the thread owns the nodal lock, then a successful completion status is returned for the lock command to the thread after waiting until a next tier wait indicator in the nodal lock indicates that any thread owns a global lock on the resource. If the tier status indicates no thread holds the nodal lock, the tier status is changed to indicate the nodal lock is owned, and if a global waiters and holder list is empty, an identifier of a node at which the thread executes is added to the global waiters and holder list. | 04-24-2014 |
20140115214 | BITMAP LOCKING USING A NODAL LOCK - In an embodiment, in response to a request from a producer thread to set a bit in a global bitmap, a nodal lock is obtained on a nodal bitmap at a node at which the producer thread executes. A determination is made whether a corresponding bit in a pending clear bitmap in the nodal bitmap indicates that a clear of the bit in the global bitmap is pending. If the corresponding bit in the pending clear bitmap in the nodal bitmap indicates that a clear of the bit in the global bitmap is pending, the corresponding bit in the pending clear bitmap is cleared. If the corresponding bit in the pending clear bitmap in the nodal bitmap indicates that the clear of the bit in the global bitmap is not pending, a corresponding bit in a pending set bitmap in the nodal bitmap is set. | 04-24-2014 |
20140115215 | TIERED LOCKING OF RESOURCES - In an embodiment, a lock command is received from a thread that specifies a resource. If tier status in a nodal lock indicates the nodal lock is currently owned, an identifier of the thread is added to a nodal waiters list, and if the thread's lock wait indicator indicates that the thread owns the nodal lock, then a successful completion status is returned for the lock command to the thread after waiting until a next tier wait indicator in the nodal lock indicates that any thread owns a global lock on the resource. If the tier status indicates no thread holds the nodal lock, the tier status is changed to indicate the nodal lock is owned, and if a global waiters and holder list is empty, an identifier of a node at which the thread executes is added to the global waiters and holder list. | 04-24-2014 |
20140115216 | BITMAP LOCKING USING A NODAL LOCK - In an embodiment, in response to a request from a producer thread to set a bit in a global bitmap, a nodal lock is obtained on a nodal bitmap at a node at which the producer thread executes. A determination is made whether a corresponding bit in a pending clear bitmap in the nodal bitmap indicates that a clear of the bit in the global bitmap is pending. If the corresponding bit in the pending clear bitmap in the nodal bitmap indicates that a clear of the bit in the global bitmap is pending, the corresponding bit in the pending clear bitmap is cleared. If the corresponding bit in the pending clear bitmap in the nodal bitmap indicates that the clear of the bit in the global bitmap is not pending, a corresponding bit in a pending set bitmap in the nodal bitmap is set. | 04-24-2014 |
20140115581 | AFFINITY OF VIRTUAL PROCESSOR DISPATCHING - In an embodiment, a request is received for a first partition to execute on a first virtual processor. If the first physical processor is available at a first node, the first virtual processor is dispatched to execute at the first physical processor at the first node that is the home node of the first virtual processor. If the first physical processor is not available, a determination is made whether the first physical processor is assigned to a second virtual processor and a home node of the second virtual processor is not the first node. If the first physical processor is assigned to a second virtual processor and the home node of the second virtual processor is not the first node, execution of the second virtual processor is stopped on the first physical processor and the first virtual processor is dispatched to the first physical processor. | 04-24-2014 |
20140115593 | AFFINITY OF VIRTUAL PROCESSOR DISPATCHING - In an embodiment, a request is received for a first partition to execute on a first virtual processor. If the first physical processor is available at a first node, the first virtual processor is dispatched to execute at the first physical processor at the first node that is the home node of the first virtual processor. If the first physical processor is not available, a determination is made whether the first physical processor is assigned to a second virtual processor and a home node of the second virtual processor is not the first node. If the first physical processor is assigned to a second virtual processor and the home node of the second virtual processor is not the first node, execution of the second virtual processor is stopped on the first physical processor and the first virtual processor is dispatched to the first physical processor. | 04-24-2014 |
20140115599 | SUBMITTING OPERATIONS TO A SHARED RESOURCE BASED ON BUSY-TO-SUCCESS RATIOS - In an embodiment, an average busy-to-success ratio is calculated for partitions that submitted operations to a shared resource during a first time period. A first busy-to-success ratio for a first partition during the first time period is calculated. If the first busy-to-success ratio is greater than the average busy-to-success ratio and a difference between the first busy-to-success ratio and the average busy-to-success ratio is greater than a threshold amount, a throttle amount for the first partition is increased. A first operation from the first partition during a first time subdivision of a second time period is received. If a number of operations received from the first partition during the first time subdivision of the second time period is greater than the throttle amount for the first partition, a busy indication is returned to the first partition and the first operation is not submitted to the shared resource. | 04-24-2014 |
20140115600 | SUBMITTING OPERATIONS TO A SHARED RESOURCE BASED ON BUSY-TO-SUCCESS RATIOS - In an embodiment, an average busy-to-success ratio is calculated for partitions that submitted operations to a shared resource during a first time period. A first busy-to-success ratio for a first partition during the first time period is calculated. If the first busy-to-success ratio is greater than the average busy-to-success ratio and a difference between the first busy-to-success ratio and the average busy-to-success ratio is greater than a threshold amount, a throttle amount for the first partition is increased. A first operation from the first partition during a first time subdivision of a second time period is received. If a number of operations received from the first partition during the first time subdivision of the second time period is greater than the throttle amount for the first partition, a busy indication is returned to the first partition and the first operation is not submitted to the shared resource. | 04-24-2014 |
20140223225 | MULTI-CORE RE-INITIALIZATION FAILURE CONTROL SYSTEM - A method of a computer system recovering from a core re-initialization failure is described. The method may include automatically detect a core re-initialization failure during a core re-initialization process by a hypervisor. The hypervisor automatically determines whether the core re-initialization failure is a permanent failure. If the core re-initialization failure is a permanent failure, then automatically determine, by the hypervisor, which cores are re-initialized and which cores are indeterminate. Automatically allocate the re-initialized cores between one or more virtual machines by the hypervisor. | 08-07-2014 |
20140223233 | MULTI-CORE RE-INITIALIZATION FAILURE CONTROL SYSTEM - A method of a computer system recovering from a core re-initialization failure is described. The method may include automatically detect a core re-initialization failure during a core re-initialization process by a hypervisor. The hypervisor automatically determines whether the core re-initialization failure is a permanent failure. If the core re-initialization failure is a permanent failure, then automatically determine, by the hypervisor, which cores are re-initialized and which cores are indeterminate. Automatically allocate the re-initialized cores between one or more virtual machines by the hypervisor. | 08-07-2014 |
20140237149 | SENDING A NEXT REQUEST TO A RESOURCE BEFORE A COMPLETION INTERRUPT FOR A PREVIOUS REQUEST - In an embodiment, in response to receiving a completion interrupt for a first request from a resource, a determination is made whether relocation of memory contents accessed by performance of the first request is in progress. If the relocation of the memory contents accessed by performance of the first request is in progress, a second request is sent to the resource before the memory relocation completes. If the relocation of the memory contents accessed by the performance of the first request is not in progress, the completion interrupt for the first request is sent to the virtual machine that initiated the first request. | 08-21-2014 |
20140237151 | DETERMINING A VIRTUAL INTERRUPT SOURCE NUMBER FROM A PHYSICAL INTERRUPT SOURCE NUMBER - In an embodiment, a request is received from a virtual machine that specifies a virtual ISN and a hardware resource. A physical ISN is selected that is assigned to the hardware resource. The physical ISN is assigned to the virtual ISN as an assigned pair. The request and the physical ISN are sent to the hardware resource. A physical interrupt is received from the hardware resource that specifies the physical ISN. In response to the receipt of the physical interrupt that specifies the physical ISN, the virtual machine and the virtual ISN that is assigned to the first physical ISN are determined from the physical interrupt and the assigned pair from among a plurality of virtual machines. In response to determining the virtual machine and first virtual ISN that is assigned to the physical ISN, a virtual interrupt that comprises that virtual ISN is sent to the virtual machine. | 08-21-2014 |
20140244940 | AFFINITY GROUP ACCESS TO GLOBAL DATA - A method, system, and computer readable medium to share data on a global basis within a symmetric multiprocessor (SMP) computer system are disclosed. The method may include grouping a plurality of processor cores into a plurality of affinity groups. Global data may be copied into a plurality of group data structures. Each group data structure may correspond to an affinity group. The method may read a first group data structure by a thread executing on a processor core associated with a first affinity group. | 08-28-2014 |
20140244941 | AFFINITY GROUP ACCESS TO GLOBAL DATA - A method, system, and computer readable medium to share data on a global basis within a symmetric multiprocessor (SMP) computer system are disclosed. The method may include grouping a plurality of processor cores into a plurality of affinity groups. The method may include creating hints about the global data in the plurality of group data structures. Each group data structure may correspond to an affinity group. The method may read a first group data structure by a thread executing on a processor core associated with a first affinity group. | 08-28-2014 |
20140244942 | AFFINITY GROUP ACCESS TO GLOBAL DATA - A method, system, and computer readable medium to share data on a global basis within a symmetric multiprocessor (SMP) computer system are disclosed. The method may include grouping a plurality of processor cores into a plurality of affinity groups. Global data may be copied into a plurality of group data structures. Each group data structure may correspond to an affinity group. The method may read a first group data structure by a thread executing on a processor core associated with a first affinity group. | 08-28-2014 |
20140244943 | AFFINITY GROUP ACCESS TO GLOBAL DATA - A method, system, and computer readable medium to share data on a global basis within a symmetric multiprocessor (SMP) computer system are disclosed. The method may include grouping a plurality of processor cores into a plurality of affinity groups. The method may include creating hints about the global data in the plurality of group data structures. Each group data structure may correspond to an affinity group. The method may read a first group data structure by a thread executing on a processor core associated with a first affinity group. | 08-28-2014 |
20150026508 | MOVING OBJECTS IN A PRIMARY COMPUTER BASED ON MEMORY ERRORS IN A SECONDARY COMPUTER - In an embodiment, a partition is executed at a primary server, wherein the partition accesses a first memory location at a first memory block address at the primary server. If a first corresponding memory location at a secondary server has an error, wherein the first corresponding memory location at the secondary server corresponds to the first memory location at the primary server, then an object is moved from the first memory location at the primary server to a second memory location at the primary server. | 01-22-2015 |
20150081632 | CHECKPOINT CAPTURE AND TRACKING IN A HIGH AVAILABILITY SYSTEM - The present disclosure includes a method for transferring checkpoint information of a primary virtual machine from a primary host to a secondary host that includes, by the primary host, capturing checkpoint information from the primary virtual machine to a primary holding buffer on the primary host, generating a first number of partition state records from the checkpoint information, transmitting the first number of partition state records to the secondary host, receiving acknowledgements from the secondary host for a second number of partition state records, and tracking the second number of partition state records acknowledged by the secondary host. | 03-19-2015 |
20150081943 | VIRTUAL MACHINE SUSPENSION IN CHECKPOINT SYSTEM - Performing a checkpoint includes determining a checkpoint boundary of the checkpoint for a virtual machine, wherein the virtual machine has a first virtual processor, determining a scheduled hypervisor interrupt for the first virtual processor, and adjusting, by operation of one or more computer processors, the scheduled hypervisor interrupt to before or substantially at the checkpoint boundary. | 03-19-2015 |
20150082087 | CHECKPOINT CAPTURE AND TRACKING IN A HIGH AVAILABILITY SYSTEM - The present disclosure includes a method for transferring checkpoint information of a primary virtual machine from a primary host to a secondary host that includes, by the primary host, capturing checkpoint information from the primary virtual machine to a primary holding buffer on the primary host, generating a first number of partition state records from the checkpoint information, transmitting the first number of partition state records to the secondary host, receiving acknowledgements from the secondary host for a second number of partition state records, and tracking the second number of partition state records acknowledged by the secondary host. | 03-19-2015 |