DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to claims filed 08/07/2026.
Claims 1-20 are pending.
Drawings
FIG 9, process 906 has a misspelled word “paterns”. Examiner recommends applicant reviews document for spelling and the like.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Barsness et al. Pub. No. US 8495627 B2 (hereafter Barsness) in view of Song et al. Pub. No. US 9804897 B2 (hereafter Song), in further view of Sherwin, JR. Pub. No. US 2024/0354140 A1 (hereafter Sherwin), and in further view of Grouzdev Pub. No. US 8918788 B2 (hereafter Grouzdev).
With regard to claim 1, Barsness teaches A computer-implemented method for hypervisor-directed usage of central processing unit (CPU) resources, the computer-implemented method comprising: (a hypervisor or partition manager typically manages the logical partitions of a logically partitioned environment col 9 lines 49-51)determining, by a computer, using a hypervisor, a logical to physical CPU relationship between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 1 also illustrates in greater detail the primary software components and resources utilized in implementing a logically partitioned computing environment on computer 10, including a plurality of logical partitions 34 managed by a partition manager or hypervisor 36. Any number of logical partitions may be supported as is well known in the art, and the number of logical partitions resident at any time in a computer may change dynamically as partitions are added or removed from the computer. Col 4 lines 64-67, Col 5 lines 1-5. Each logical partition 34 is typically statically and/or dynamically allocated a portion of the available resources in computer 10. For example, each logical partition may be allocated one or more processors 12 and/or one or more hardware threads 18, as well as a portion of the available memory space. Logical partitions can share specific hardware resources such as processors, such that a given processor is utilized by more than one logical partition. In the alternative, hardware resources can be allocated to only one logical partition at a time. Col 5 lines 36-45);and distributing, by the computer, using the hypervisor, predicted physical CPU usage information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines (Capped and uncapped partitions make use of a shared processor pool, which is a group of physical processors that provide processing capacity as a resource. This resource may be shared amongst partitions, where a partition can be assigned whole or partial “slices” of a processor. Col 2 lines 4-8. Because the hypervisor manages the physical resources for all of the logical partitions on the computer, it may be configured to communicate predicted underutilization of resources to logical partitions and reallocate the resources to those partitions during the predicted underutilization period. Col 3 lines 15-20).wherein the plurality of guest virtual machines… run workload based on the predicted physical CPU usage information distributed by the hypervisor (This underutilized resource may then be used by other partitions during the predicted period by configuring tasks or applications in the other partitions to run with the assumption made that the underutilized resource will be available when those tasks or applications ultimately run Col 3 lines 62-66.)Barsness does not teach a logical to physical CPU relationship mapping.However in analogous art, Song teaches determining, by a computer, using a hypervisor, a logical to physical CPU relationship mapping between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 3 illustrates a virtualization system according to an embodiment of the present invention. In FIG. 3, unlike the related art virtualization system shown in FIG. 1, it can be seen that virtual cores are associated with real cores through the power manager. Col 7 lines 17-21. The power manager 231 may compute the amount of usage of the real processor to support the predicted workload and reconfigure the mapping between real processors and virtual processors according to the computation result Col 4 lines 39-43).based on the logical to physical CPU relationship mapping between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, (the control unit 230 checks possibility of handling the predicted workload by use of the currently configured mapping between real processors and virtual processors. Col 9 lines 16-19)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the monitoring of physical and virtual CPU usage and mapping of Song with the hypervisor communication of predicted CPU underutilization to logical partitions of Barsness resulting in predicted processor availability to be determined with respect to virtual processors mapped to physical processors A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to prevent a conflict that may be caused by application of different power management schemes. In addition, it is possible to minimize power consumption in the overall system by predicting usage of resources in at least Song Col 3 lines 2-6. Barsness and Song do not teach selecting specific logical CPUs.However, in analogous art, Sherwin teaches on a per-logical CPU basis (processor association component 202 keeps a “soft affinity” for associating virtual efficiency cores with physical efficiency cores and for associating virtual performance cores with physical performance cores. [0030])select specific logical CPUs (Because the hypervisor exposed the first virtual processor core as an efficiency core and exposed the second virtual processor core as a performance core, a guest OS executing at the VM can make informed scheduling decisions [0016])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the physical CPU mapping and selecting of specific logical CPU characteristics of Sherwin with the distribution of predicted CPU resource information of Barsness and the relationship mapping of Song to enable CPU-specific workload scheduling decisions. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of providing enhanced user experiences, the efficient use of energy resources, a reduction in heat generation, and the avoidance of software faults. In at least Sherwin [0016]Barsness, Song, and Sherwin do not specifically teach collision avoidance or performance limitations.However, in analogous art, Grouzdev teaches without changing a configuration of actual hardware of the computer, to avoid workload scheduling collisions…on physical CPUs between the plurality of guest virtual machines (the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. Col 1 lines 27-31)and workload migration (Bl can be arbitrarily chosen in order to promote local virtual CPUs (already running on this processor), thereby moderating virtual CPUs migrations from one physical CPU to another. Preferably, Bl at least corresponds to the virtual CPU migration overhead Col 2 lines 54-60)thereby increasing performance of the computer. (It is preferred to minimize the number of vCPU migrations from one physical CPU to another because each migration introduces an overhead Col 5 lines 58-60)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the scheduling of Vms and their vCPUs on physical CPUs while moderating vCPU migration of Grouzdev with the hypervisor distribution of predicted CPU usage info, relationship mapping and association of individual virtual CPUs with physical CPUs of Barness, Song, and Sherwin to use the predicted physical CPU information and logical to physical CPU relationships to schedule workloads while avoiding collisions and improving performance. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide efficient predicted usage of logical and physical CPUs because , the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. (in at least Grouzdev Col 1 lines 27-31)
With regard to claim 2, Barsness teaches collecting, by the computer, using the hypervisor, physical CPU usage data from the plurality of guest virtual machines over a period of time (In addition to tracking system commands to predict resource underutilization, the overall historical data for a partition may be used to find patterns of common resource underutilization. FIG. 6 is a table containing exemplary times and resource availability during those times for different logical partitions. To collect this type of data, a computer and its logical partitions may be profiled to detect repeatable patterns. Traditionally this type of monitoring would be used to find spikes in resource utilization. Here, however, the system and partitions are being monitored to anticipate how much processor resource will be available for a given partition. The flowchart in FIG. 7 depicts an exemplary process for determining available resource. Performance data, such as processor utilization on a partition (similar to the graphs in FIGS. 2 and 3), is collected in block 120 col 8 lines 46-49)and performing, by the computer, using the hypervisor, an analysis of the physical CPU usage data collected from the plurality of guest virtual machines. (This performance data is analyzed in block 122 to look for common low periods of processor usage col 8 lines 35-51).
With regard to claim 3, Barsness teaches determining, by the computer, using the hypervisor, physical CPU usage patterns of the plurality of guest virtual machines over the period of time based on the analysis of the physical CPU usage data collected from the plurality of guest virtual machines; (If the analysis determines that there are common low periods of processor usage (yes branch of decision block 124), these periods are communicated to the resource manager in block 126 for later reallocation of the resource col 8 lines 51-55). and predicting, by the computer, using the hypervisor, future physical CPU usage of each of the plurality of guest virtual machines based on the physical CPU usage patterns of the plurality of guest virtual machines over the period of time. (As an example, a computer may have four partitions. One partition, a production partition, may execute a web application that consistently performs database operations. A second partition may be set up as a test partition for the production partition. The third partition may be a development partition and the fourth partition may be a second test partition for a Linux operating system development team. Assuming that each partition is allocated two processors, and under normal operating circumstances, a database optimizer executing in the production partition will be making decisions based on the availability of the two assigned processors. Through profiling and analysis of the profile data, it may be determined that between 11:00 am and 1:00 pm each week day that four of the six processors associated with the second, third and fourth partitions are available to use with the primary partition. Knowing this information, the resource manager may then allocate four additional processors to the production partition each weekday between 11:00 am and 1:00 pm. The database optimizer, running as part of the web application in the production partition may then make optimization decisions based on having the resources of six processors instead of two Col 8 lines 56-67 Col 9 lines 1-10).
With regard to claim 4, Barsness teaches identifying, by the computer, using the hypervisor, the subset of the plurality of guest virtual machines that are predicted to consume a decreased percentage of physical CPU runtime than configuration of the subset of the plurality of guest virtual machines of logical CPUs allows based on the future physical CPU usage of each of the plurality of guest virtual machines. (The flowchart in FIG. 8 is an exemplary illustration of how the additional resource is allocated to a partition. The resource manager receives an outage notification from a logical partition in block 140. Alternately, the resource manager may know based on a specific time that additional resource has become available. The additional resource may then be assigned to another partition which may trigger any jobs held that were waiting for additional resource in block 142, such a batch processing jobs, or a database query optimizer may be notified of the additional resource availability in block 144. col 9 lines 11-20).
With regard to claim 5, Barsness teaches identifying, by the computer, using the hypervisor, the at least one physical CPU of the plurality of physical CPUs that will have the additional available processing capacity based on the subset of the plurality of guest virtual machines that are predicted to consume the decreased percentage of physical CPU runtime than the configuration of the subset of the plurality of guest virtual machines of logical CPUs allows. (Certain system functions provide for a release of resources, which may cause a temporary underutilization of that resource. For example, as shown in FIG. 4, a process for determining the amount of resource may monitor a set of commands that are known to release resources when they execute. The process may monitor the execution of these commands to track and update the usage of the resources for later use in predicting underutilization. col 7 lines 46-53 An estimate of the outage time is sent to the resource manager in block 108 so that the resources may be temporarily reallocated for the estimated time. The command is then processed in block 110 and at the completion of the command, in block 112, the end time for the outage is recorded and statistics for the command are updated to provide a better time estimate the next time that the command is issued col 7 lines 63-67 and col 8 lines 1-3).
With regard to claim 6, Barsness teaches wherein the computer includes the plurality of physical CPUs, the plurality of guest virtual machines having the plurality of logical CPUs, and the hypervisor that runs the plurality of guest virtual machines. (One logical extension of parallel processing is the concept of logical partitioning, where a single physical computer is permitted to operate essentially like multiple and independent “virtual computers (referred to as logical partitions), with the various resources in the physical computer (e.g., processors, memory, input/output devices) allocated among the various logical partitions. Each logical partition executes a separate operating system, and from the perspective of users and of the Software applications executing on the logical partition, operates as a fully independent computer. With logical partitioning, a shared program, often referred to as a "hypervisor or partition manager, manages the logical partitions and facilitates the allocation of resources to different logical partitions Col 1 lines 39-52).
With regard to claim 7, Barsness teaches wherein each one of the plurality of logical CPUs can run on each one of the plurality of physical CPUs. (A virtual processor is a portion of a physical processor's capacity as presented to a partition. Thus, a virtual processor may represent from 10% to 100% of a real processor Col 2 lines 13-16).
With regard to claim 8, Barsness teaches a computer system for hypervisor-directed usage of CPU resources, the computer system comprising: a communication fabric; a set of computer-readable storage media connected to the communication fabric, wherein the set of computer-readable storage media collectively stores program instructions; and a set of processors connected to the communication fabric, wherein the set of processors executes the program instructions to: (Computer 10 generally includes one or more processors 12 coupled to a memory 14 via a bus 16 col 4 lines 31-32. FIG. 1 also illustrates in greater detail the primary software components and resources utilized in implementing a logically partitioned computing environment on computer 10, including a plurality of logical partitions 34 managed by a partition manager or hypervisor 36. Col 4 lines 64-67 and col 5 line 1) determining, by a computer, using a hypervisor, a logical to physical CPU relationship between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 1 also illustrates in greater detail the primary software components and resources utilized in implementing a logically partitioned computing environment on computer 10, including a plurality of logical partitions 34 managed by a partition manager or hypervisor 36. Any number of logical partitions may be supported as is well known in the art, and the number of logical partitions resident at any time in a computer may change dynamically as partitions are added or removed from the computer. Col 4 lines 64-67, Col 5 lines 1-5. Each logical partition 34 is typically statically and/or dynamically allocated a portion of the available resources in computer 10. For example, each logical partition may be allocated one or more processors 12 and/or one or more hardware threads 18, as well as a portion of the available memory space. Logical partitions can share specific hardware resources such as processors, such that a given processor is utilized by more than one logical partition. In the alternative, hardware resources can be allocated to only one logical partition at a time. Col 5 lines 36-45);and distributing, by the computer, using the hypervisor, predicted physical CPU usage information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines (Capped and uncapped partitions make use of a shared processor pool, which is a group of physical processors that provide processing capacity as a resource. This resource may be shared amongst partitions, where a partition can be assigned whole or partial “slices” of a processor. Col 2 lines 4-8. Because the hypervisor manages the physical resources for all of the logical partitions on the computer, it may be configured to communicate predicted underutilization of resources to logical partitions and reallocate the resources to those partitions during the predicted underutilization period. Col 3 lines 15-20).wherein the plurality of guest virtual machines… run workload based on the predicted physical CPU usage information distributed by the hypervisor (This underutilized resource may then be used by other partitions during the predicted period by configuring tasks or applications in the other partitions to run with the assumption made that the underutilized resource will be available when those tasks or applications ultimately run Col 3 lines 62-66.)Barsness does not teach a logical to physical CPU relationship mapping.However in analogous art, Song teaches determining, by a computer, using a hypervisor, a logical to physical CPU relationship mapping between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 3 illustrates a virtualization system according to an embodiment of the present invention. In FIG. 3, unlike the related art virtualization system shown in FIG. 1, it can be seen that virtual cores are associated with real cores through the power manager. Col 7 lines 17-21. The power manager 231 may compute the amount of usage of the real processor to support the predicted workload and reconfigure the mapping between real processors and virtual processors according to the computation result Col 4 lines 39-43).based on the logical to physical CPU relationship mapping between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, (the control unit 230 checks possibility of handling the predicted workload by use of the currently configured mapping between real processors and virtual processors. Col 9 lines 16-19)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the monitoring of physical and virtual CPU usage and mapping of Song with the hypervisor communication of predicted CPU underutilization to logical partitions of Barsness resulting in predicted processor availability to be determined with respect to virtual processors mapped to physical processors A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to prevent a conflict that may be caused by application of different power management schemes. In addition, it is possible to minimize power consumption in the overall system by predicting usage of resources in at least Song Col 3 lines 2-6. Barsness and Song do not teach selecting specific logical CPUs.However, in analogous art, Sherwin teaches on a per-logical CPU basis (processor association component 202 keeps a “soft affinity” for associating virtual efficiency cores with physical efficiency cores and for associating virtual performance cores with physical performance cores. [0030])select specific logical CPUs (Because the hypervisor exposed the first virtual processor core as an efficiency core and exposed the second virtual processor core as a performance core, a guest OS executing at the VM can make informed scheduling decisions [0016])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the physical CPU mapping and selecting of specific logical CPU characteristics of Sherwin with the distribution of predicted CPU resource information of Barsness and the relationship mapping of Song to enable CPU-specific workload scheduling decisions. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of providing enhanced user experiences, the efficient use of energy resources, a reduction in heat generation, and the avoidance of software faults. In at least Sherwin [0016]Barsness, Song, and Sherwin do not specifically teach collision avoidance or performance limitations.However, in analogous art, Grouzdev teaches without changing a configuration of actual hardware of the computer, to avoid workload scheduling collisions…on physical CPUs between the plurality of guest virtual machines (the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. Col 1 lines 27-31)and workload migration (Bl can be arbitrarily chosen in order to promote local virtual CPUs (already running on this processor), thereby moderating virtual CPUs migrations from one physical CPU to another. Preferably, Bl at least corresponds to the virtual CPU migration overhead Col 2 lines 54-60)thereby increasing performance of the computer. (It is preferred to minimize the number of vCPU migrations from one physical CPU to another because each migration introduces an overhead Col 5 lines 58-60)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the scheduling of Vms and their vCPUs on physical CPUs while moderating vCPU migration of Grouzdev with the hypervisor distribution of predicted CPU usage info, relationship mapping and association of individual virtual CPUs with physical CPUs of Barness, Song, and Sherwin to use the predicted physical CPU information and logical to physical CPU relationships to schedule workloads while avoiding collisions and improving performance. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide efficient predicted usage of logical and physical CPUs because , the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. (in at least Grouzdev Col 1 lines 27-31)
With regard to claim 9, Barsness teaches wherein the set of processors further executes the program instructions to: collect, using the hypervisor, physical CPU usage data from the plurality of guest virtual machines over a period of time; (In addition to tracking system commands to predict resource underutilization, the overall historical data for a partition may be used to find patterns of common resource underutilization. FIG. 6 is a table containing exemplary times and resource availability during those times for different logical partitions. To collect this type of data, a computer and its logical partitions may be profiled to detect repeatable patterns. Traditionally this type of monitoring would be used to find spikes in resource utilization. Here, however, the system and partitions are being monitored to anticipate how much processor resource will be available for a given partition. The flowchart in FIG. 7 depicts an exemplary process for determining available resource. Performance data, such as processor utilization on a partition (similar to the graphs in FIGS. 2 and 3), is collected in block 120 col 8 lines 46-49) and perform, using the hypervisor, an analysis of the physical CPU usage data collected from the plurality of guest virtual machines. (This performance data is analyzed in block 122 to look for common low periods of processor usage col 8 lines 35-51).
With regard to claim 10, Barsness teaches wherein the set of processors further executes the program instructions to: determine, using the hypervisor, physical CPU usage patterns of the plurality of guest virtual machines over the period of time based on the analysis of the physical CPU usage data collected from the plurality of guest virtual machines; (If the analysis determines that there are common low periods of processor usage (yes branch of decision block 124), these periods are communicated to the resource manager in block 126 for later reallocation of the resource col 8 lines 51-55). and predict, using the hypervisor, future physical CPU usage of each of the plurality of guest virtual machines based on the physical CPU usage patterns of the plurality of guest virtual machines over the period of time. (As an example, a computer may have four partitions. One partition, a production partition, may execute a web application that consistently performs database operations. A second partition may be set up as a test partition for the production partition. The third partition may be a development partition and the fourth partition may be a second test partition for a Linux operating system development team. Assuming that each partition is allocated two processors, and under normal operating circumstances, a database optimizer executing in the production partition will be making decisions based on the availability of the two assigned processors. Through profiling and analysis of the profile data, it may be determined that between 11:00 am and 1:00 pm each week day that four of the six processors associated with the second, third and fourth partitions are available to use with the primary partition. Knowing this information, the resource manager may then allocate four additional processors to the production partition each weekday between 11:00 am and 1:00 pm. The database optimizer, running as part of the web application in the production partition may then make optimization decisions based on having the resources of six processors instead of two Col 8 lines 56-67 Col 9 lines 1-10).
With regard to claim 11, Barsness teaches wherein the set of processors further executes the program instructions to: identify, using the hypervisor, the subset of the plurality of guest virtual machines that are predicted to consume a decreased percentage of physical CPU runtime than configuration of the subset of the plurality of guest virtual machines of logical CPUs allows based on the future physical CPU usage of each of the plurality of guest virtual machines. (The flowchart in FIG. 8 is an exemplary illustration of how the additional resource is allocated to a partition. The resource manager receives an outage notification from a logical partition in block 140. Alternately, the resource manager may know based on a specific time that additional resource has become available. The additional resource may then be assigned to another partition which may trigger any jobs held that were waiting for additional resource in block 142, such a batch processing jobs, or a database query optimizer may be notified of the additional resource availability in block 144. col 9 lines 11-20).
With regard to claim 12, Barsness teaches wherein the set of processors further executes the program instructions to: identify, using the hypervisor, the at least one physical CPU of the plurality of physical CPUs that will have the additional available processing capacity based on the subset of the plurality of guest virtual machines that are predicted to consume the decreased percentage of physical CPU runtime than the configuration of the subset of the plurality of guest virtual machines of logical CPUs allows. (Certain system functions provide for a release of resources, which may cause a temporary underutilization of that resource. For example, as shown in FIG. 4, a process for determining the amount of resource may monitor a set of commands that are known to release resources when they execute. The process may monitor the execution of these commands to track and update the usage of the resources for later use in predicting underutilization. col 7 lines 46-53 An estimate of the outage time is sent to the resource manager in block 108 so that the resources may be temporarily reallocated for the estimated time. The command is then processed in block 110 and at the completion of the command, in block 112, the end time for the outage is recorded and statistics for the command are updated to provide a better time estimate the next time that the command is issued col 7 lines 63-67 and col 8 lines 1-3).
With regard to claim 13, Barsness teaches wherein the computer system includes the plurality of physical CPUs, the plurality of guest virtual machines having the plurality of logical CPUs, and the hypervisor that runs the plurality of guest virtual machines. (One logical extension of parallel processing is the concept of logical partitioning, where a single physical computer is permitted to operate essentially like multiple and independent “virtual computers (referred to as logical partitions), with the various resources in the physical computer (e.g., processors, memory, input/output devices) allocated among the various logical partitions. Each logical partition executes a separate operating system, and from the perspective of users and of the Software applications executing on the logical partition, operates as a fully independent computer. With logical partitioning, a shared program, often referred to as a "hypervisor or partition manager, manages the logical partitions and facilitates the allocation of resources to different logical partitions Col 1 lines 39-52).
With regard to claim 14, Barsness teaches a computer program product for hypervisor-directed usage of CPU resources, the computer program product comprising a set of computer-readable storage media having program instructions collectively stored therein, the program instructions executable by a computer to cause the computer to: (Program code typically comprises one or more instructions that are resident at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention. Moreover, while the invention has and hereinafter will be described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of computer readable medium used to actually carry out the distribution col 6 lines 25-38) determining, by a computer, using a hypervisor, a logical to physical CPU relationship between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 1 also illustrates in greater detail the primary software components and resources utilized in implementing a logically partitioned computing environment on computer 10, including a plurality of logical partitions 34 managed by a partition manager or hypervisor 36. Any number of logical partitions may be supported as is well known in the art, and the number of logical partitions resident at any time in a computer may change dynamically as partitions are added or removed from the computer. Col 4 lines 64-67, Col 5 lines 1-5. Each logical partition 34 is typically statically and/or dynamically allocated a portion of the available resources in computer 10. For example, each logical partition may be allocated one or more processors 12 and/or one or more hardware threads 18, as well as a portion of the available memory space. Logical partitions can share specific hardware resources such as processors, such that a given processor is utilized by more than one logical partition. In the alternative, hardware resources can be allocated to only one logical partition at a time. Col 5 lines 36-45);and distributing, by the computer, using the hypervisor, predicted physical CPU usage information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines (Capped and uncapped partitions make use of a shared processor pool, which is a group of physical processors that provide processing capacity as a resource. This resource may be shared amongst partitions, where a partition can be assigned whole or partial “slices” of a processor. Col 2 lines 4-8. Because the hypervisor manages the physical resources for all of the logical partitions on the computer, it may be configured to communicate predicted underutilization of resources to logical partitions and reallocate the resources to those partitions during the predicted underutilization period. Col 3 lines 15-20).wherein the plurality of guest virtual machines… run workload based on the predicted physical CPU usage information distributed by the hypervisor (This underutilized resource may then be used by other partitions during the predicted period by configuring tasks or applications in the other partitions to run with the assumption made that the underutilized resource will be available when those tasks or applications ultimately run Col 3 lines 62-66.)Barsness does not teach a logical to physical CPU relationship mapping.However in analogous art, Song teaches determining, by a computer, using a hypervisor, a logical to physical CPU relationship mapping between a subset of a plurality of logical CPUs and a subset of a plurality of physical CPUs using a CPU topology of the computer; (FIG. 3 illustrates a virtualization system according to an embodiment of the present invention. In FIG. 3, unlike the related art virtualization system shown in FIG. 1, it can be seen that virtual cores are associated with real cores through the power manager. Col 7 lines 17-21. The power manager 231 may compute the amount of usage of the real processor to support the predicted workload and reconfigure the mapping between real processors and virtual processors according to the computation result Col 4 lines 39-43).based on the logical to physical CPU relationship mapping between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, (the control unit 230 checks possibility of handling the predicted workload by use of the currently configured mapping between real processors and virtual processors. Col 9 lines 16-19)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the monitoring of physical and virtual CPU usage and mapping of Song with the hypervisor communication of predicted CPU underutilization to logical partitions of Barsness resulting in predicted processor availability to be determined with respect to virtual processors mapped to physical processors A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to prevent a conflict that may be caused by application of different power management schemes. In addition, it is possible to minimize power consumption in the overall system by predicting usage of resources in at least Song Col 3 lines 2-6. Barsness and Song do not teach selecting specific logical CPUs.However, in analogous art, Sherwin teaches on a per-logical CPU basis (processor association component 202 keeps a “soft affinity” for associating virtual efficiency cores with physical efficiency cores and for associating virtual performance cores with physical performance cores. [0030])select specific logical CPUs (Because the hypervisor exposed the first virtual processor core as an efficiency core and exposed the second virtual processor core as a performance core, a guest OS executing at the VM can make informed scheduling decisions [0016])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the physical CPU mapping and selecting of specific logical CPU characteristics of Sherwin with the distribution of predicted CPU resource information of Barsness and the relationship mapping of Song to enable CPU-specific workload scheduling decisions. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of providing enhanced user experiences, the efficient use of energy resources, a reduction in heat generation, and the avoidance of software faults. In at least Sherwin [0016]Barsness, Song, and Sherwin do not specifically teach collision avoidance or performance limitations.However, in analogous art, Grouzdev teaches without changing a configuration of actual hardware of the computer, to avoid workload scheduling collisions…on physical CPUs between the plurality of guest virtual machines (the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. Col 1 lines 27-31)and workload migration (Bl can be arbitrarily chosen in order to promote local virtual CPUs (already running on this processor), thereby moderating virtual CPUs migrations from one physical CPU to another. Preferably, Bl at least corresponds to the virtual CPU migration overhead Col 2 lines 54-60)thereby increasing performance of the computer. (It is preferred to minimize the number of vCPU migrations from one physical CPU to another because each migration introduces an overhead Col 5 lines 58-60)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the scheduling of Vms and their vCPUs on physical CPUs while moderating vCPU migration of Grouzdev with the hypervisor distribution of predicted CPU usage info, relationship mapping and association of individual virtual CPUs with physical CPUs of Barness, Song, and Sherwin to use the predicted physical CPU information and logical to physical CPU relationships to schedule workloads while avoiding collisions and improving performance. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide efficient predicted usage of logical and physical CPUs because , the Virtual Machines are competing to use the limited number of available physical CPUs. The scheduler's task is to find CPU time for all the Virtual Machines that are requesting it, and to do it in a balanced way in order to prevent performance losses for any of the Virtual Machines. (in at least Grouzdev Col 1 lines 27-31).
With regard to claim 15, Barsness teaches wherein the program instructions further cause the computer to: collect, using the hypervisor, physical CPU usage data from the plurality of guest virtual machines over a period of time; (In addition to tracking system commands to predict resource underutilization, the overall historical data for a partition may be used to find patterns of common resource underutilization. FIG. 6 is a table containing exemplary times and resource availability during those times for different logical partitions. To collect this type of data, a computer and its logical partitions may be profiled to detect repeatable patterns. Traditionally this type of monitoring would be used to find spikes in resource utilization. Here, however, the system and partitions are being monitored to anticipate how much processor resource will be available for a given partition. The flowchart in FIG. 7 depicts an exemplary process for determining available resource. Performance data, such as processor utilization on a partition (similar to the graphs in FIGS. 2 and 3), is collected in block 120 col 8 lines 46-49) and perform, using the hypervisor, an analysis of the physical CPU usage data collected from the plurality of guest virtual machines. (This performance data is analyzed in block 122 to look for common low periods of processor usage col 8 lines 35-51).
With regard to claim 16, Barsness teaches wherein the program instructions further cause the computer to: determine, using the hypervisor, physical CPU usage patterns of the plurality of guest virtual machines over the period of time based on the analysis of the physical CPU usage data collected from the plurality of guest virtual machines; (If the analysis determines that there are common low periods of processor usage (yes branch of decision block 124), these periods are communicated to the resource manager in block 126 for later reallocation of the resource col 8 lines 51-55). and predict, using the hypervisor, future physical CPU usage of each of the plurality of guest virtual machines based on the physical CPU usage patterns of the plurality of guest virtual machines over the period of time. (As an example, a computer may have four partitions. One partition, a production partition, may execute a web application that consistently performs database operations. A second partition may be set up as a test partition for the production partition. The third partition may be a development partition and the fourth partition may be a second test partition for a Linux operating system development team. Assuming that each partition is allocated two processors, and under normal operating circumstances, a database optimizer executing in the production partition will be making decisions based on the availability of the two assigned processors. Through profiling and analysis of the profile data, it may be determined that between 11:00 am and 1:00 pm each week day that four of the six processors associated with the second, third and fourth partitions are available to use with the primary partition. Knowing this information, the resource manager may then allocate four additional processors to the production partition each weekday between 11:00 am and 1:00 pm. The database optimizer, running as part of the web application in the production partition may then make optimization decisions based on having the resources of six processors instead of two Col 8 lines 56-67 Col 9 lines 1-10).
With regard to claim 17, Barsness teaches wherein the program instructions further cause the computer to: identify, using the hypervisor, the subset of the plurality of guest virtual machines that are predicted to consume a decreased percentage of physical CPU runtime than configuration of the subset of the plurality of guest virtual machines of logical CPUs allows based on the future physical CPU usage of each of the plurality of guest virtual machines. (The flowchart in FIG. 8 is an exemplary illustration of how the additional resource is allocated to a partition. The resource manager receives an outage notification from a logical partition in block 140. Alternately, the resource manager may know based on a specific time that additional resource has become available. The additional resource may then be assigned to another partition which may trigger any jobs held that were waiting for additional resource in block 142, such a batch processing jobs, or a database query optimizer may be notified of the additional resource availability in block 144. col 9 lines 11-20).
With regard to claim 18, Barsness teaches wherein the program instructions further cause the computer to: identify, using the hypervisor, the at least one physical CPU of the plurality of physical CPUs that will have the additional available processing capacity based on the subset of the plurality of guest virtual machines that are predicted to consume the decreased percentage of physical CPU runtime than the configuration of the subset of the plurality of guest virtual machines of logical CPUs allows. (Certain system functions provide for a release of resources, which may cause a temporary underutilization of that resource. For example, as shown in FIG. 4, a process for determining the amount of resource may monitor a set of commands that are known to release resources when they execute. The process may monitor the execution of these commands to track and update the usage of the resources for later use in predicting underutilization. col 7 lines 46-53 An estimate of the outage time is sent to the resource manager in block 108 so that the resources may be temporarily reallocated for the estimated time. The command is then processed in block 110 and at the completion of the command, in block 112, the end time for the outage is recorded and statistics for the command are updated to provide a better time estimate the next time that the command is issued col 7 lines 63-67 and col 8 lines 1-3).
With regard to claim 19, Barsness teaches wherein the computer includes the plurality of physical CPUs, the plurality of guest virtual machines having the plurality of logical CPUs, and the hypervisor that runs the plurality of guest virtual machines. (One logical extension of parallel processing is the concept of logical partitioning, where a single physical computer is permitted to operate essentially like multiple and independent “virtual computers (referred to as logical partitions), with the various resources in the physical computer (e.g., processors, memory, input/output devices) allocated among the various logical partitions. Each logical partition executes a separate operating system, and from the perspective of users and of the Software applications executing on the logical partition, operates as a fully independent computer. With logical partitioning, a shared program, often referred to as a "hypervisor or partition manager, manages the logical partitions and facilitates the allocation of resources to different logical partitions Col 1 lines 39-52).
With regard to claim 20, Barsness teaches wherein each one of the plurality of logical CPUs can run on each one of the plurality of physical CPUs. (A virtual processor is a portion of a physical processor's capacity as presented to a partition. Thus, a virtual processor may represent from 10% to 100% of a real processor Col 2 lines 13-16).
Response to Arguments
Applicant asserts that they provided a replacement drawing (FIG 9), but no replacement was received.
Applicant’s arguments filed 08/07/2026, directed to the 101 rejection with respect to claims 1, 8, and 14 have been fully considered and are persuasive. The 101 rejection of 03/25/2024 has been withdrawn.
Applicants’ arguments filed 08/07/2026 have been fully considered but they are not persuasive. Applicant argues in substance:
Applicant respectfully submits that “Barsness, column 9, lines 55-64 does not teach or suggest the above-recited feature of amended claim 1…Barsness, column 9, lines 55-64 nor any other section of Barsness makes reference to logical partitions selecting specific logical CPUs and running workload based on predicted physical CPU usage information distributed by the hypervisor without changing a configuration of actual hardware of the computer to avoid workload scheduling collisions and workload migration on physical CPUs between the logical partitions. In contradistinction, amended claim 1 recites "wherein the plurality of guest virtual machines select specific logical CPUs and run workload based on the predicted physical CPU usage information distributed by the hypervisor without changing a configuration of actual hardware of the computer to avoid workload scheduling collisions and workload migration on physical CPUs between the plurality of guest virtual machines thereby increasing performance of the computer." Therefore, the Barsness reference does not teach or suggest this feature recited in amended claim”. In view of the arguments above, amended independent claims 1, 8, and 14 are believed to be in condition for allowance.
With regard to point (a), Examiner respectfully disagrees with Applicant. Applicant’s arguments with respect to claim(s) 1, 8, and 14 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Examiner relies upon Sherwin and Grouzdev to teach the newly added limitation in the instant rejection. Argument has not been found to be persuasive.
Applicant, also, submits “Claims 2-7, 9-13, and 15-20 are dependent claims depending on amended independent claims 1, 8, and 14, respectively. Consequently, dependent claims 2-7, 9-13, and 15-20 are also believed to be allowable, at least by virtue of their dependence on amended independent claims 1, 8, and 14.”
With regard to point (b), Examiner respectfully disagrees with Applicant. Applicant’s arguments with respect to claim(s) 2-7, 9-13, and 15-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Argument has not been found to be persuasive.
Conclusion
Applicants’ amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Todd Jeffrey Johnson whose telephone number is (571)270-0929. The examiner can normally be reached M-F, 7:30am to 5pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at (571) 272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/T.J.J./Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197