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 03/25/2024.
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 § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below. Step 1: Claim 1-7 are directed to methods and fall within the statutory category of process; claims 8-13 are directed to a system and falls within the statutory category of machines; and claims 14-20 are directed to a computer readable storage media and falls within the statutory category of manufacture. Therefore, “Are the claims to a process, machine, manufacture, or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.Step 2A Prong 1:
Claim 1, 8, and 14: The limitations of “determining […] a logical to physical CPU relationship mapping, distributing […] information regarding additional available processing capacity […], and enabling […] workload distribution based on predicted processing capacities of corresponding logical CPUs”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation of the mind. For example, a person can think and observe, judge and evaluate mapping relationships and determine how to distribute information regarding those relationships. Furthermore, “enabling workload distribution” is merely intended use and does not prove that the invention or method has been done. Therefore, yes, claim 1 recites judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.Step 2A Prong 2:Claim 1, 8, and 14: The judicial exception is not integrated into a practical application. In particular, the claim recites the following additional elements – “computer-implemented”, “by a computer, using a hypervisor”, “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”, “of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis”, “the plurality of guest virtual machines”, “A system, comprising: a communication fabric; a set of computer readable storage media and a set of processors: and logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to”, and “A computer program product for implementing workloads, the computer program product comprising a computer readable storage media having program instructions embodied therewith, wherein the computer readable storage media is not a transitory signal per se, the program instructions executable by a processor to cause the computer to” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, claims 1, 8, and 14 recite the following additional elements – “determining, a logical to physical CPU relationship mapping, distributing information regarding additional available processing capacity, and enabling the plurality of guest virtual machines to distribute workload” which are merely adding insignificant extra-solution activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into a practical application .
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the claim 1 not only recites a judicial exception but that the claim is directed to the judicial exception as the judicial exception has not been integrated into practical application.Step 2B:
Claim 1, 8, and 14: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components and field of use/technological environment which do not amount to significantly more than the abstract idea.
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, claims 1, 8, and 14 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 2, 9, 15, they recite additional abstract idea recitations of “collecting, by the computer, using a hypervisor, physical CPU usage data and performing an analysis of the physical CPU usage data collected” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate collecting and analyzing physical CPU usage data. Further, claims 2, 9, and 15, recite “collecting/performing an analysis, by a computer, using a hypervisor” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP 2106.05(f)) as well as mere data gathering and analysis (See MPEP 2106.05(g)). For the same reasons above with regard to integration into practical application and whether additional elements amount to significantly more, claims 2, 9, and 15 also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 2, 9 and 15 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 3, 10, 16, they recite additional abstract idea recitations of “determining, by the computer, using a hypervisor, physical CPU usage patterns and predicting future physical CPU usage based on said patterns” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate determining patterns based off of an analysis of collected data as well as predict future usage based off of said patterns. Further, claims 3, 10, and 16 do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 4 also fails both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 3, 10, and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 4, 11, 17, they recite additional abstract idea recitations of “identifying, by the computer, using a hypervisor, the subset of guest virtual machines that are predicted to consume a decreased percentage of physical CPU runtime” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate identifying a predicted percentage. Further, claims 4, 11, and 17 recite “identifying, by a computer, using a hypervisor” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP 2106.05(f)) as well as mere data gathering and analysis (See MPEP 2106.05(g)). For the same reasons above with regard to integration into practical application and whether additional elements amount to significantly more, claims 4, 11, and 17 also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 4, 11, and 17 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 5, 12, 18, they recite additional abstract idea recitations of “identifying, by the computer, using a hypervisor, at least one physical CPU that will have the additional processing capacity” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate identifying additional processing capacity based off a predicted decreased percentage. Further, claims 5, 12, and 18 recite “identifying, by a computer, using a hypervisor” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP 2106.05(f)) as well as mere data gathering and analysis (See MPEP 2106.05(g)). For the same reasons above with regard to integration into practical application and whether additional elements amount to significantly more, claims 5, 12, and 18 also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 5, 12, and 18 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 6, 13, 19, they recite additional abstract idea recitations of “wherein the computer includes the plurality of physical CPUs, guest virtual machines having the plurality of logical CPUs, and the hypervisor” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate computer hardware and software components. Further, claims 6, 13, and 19 merely recite generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP 2106.05(f)). For the same reasons above with regard to integration into practical application and whether additional elements amount to significantly more, claims 6, 13, and 19 also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 6, 13, and 19 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 7 and 20, they recite additional abstract idea recitations of “wherein each one of the plurality of logical CPUs can run on each one of the plurality of physical CPUs” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate the relationship between logical and physical CPUs. Further, claims 7 and 20 merely recite generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP 2106.05(f)). For the same reasons above with regard to integration into practical application and whether additional elements amount to significantly more, claims 7 and 20 also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more Therefore, claims 7 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101.Therefore, claims 1-20 do not recite patent eligible subject matter under 35 U.S.C. § 101.
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. Pat. No. US 8495627 B2 (hereafter Barsness) in view of Song et al. Pt. No. US 9804897 B2 (hereafter Song).
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, information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs. (The regular monitoring of overall system performance combined with the monitoring of system commands allows for the anticipation of the extra resource available to partitions on a system for a given time period. Col 9 lines 42-46. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions. Col 9 lines 58-62).enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs. (Some conventional hypervisors have the ability to set "weights" for different logical partitions to be used to divide up and allocate any excess capacity to those logical partitions. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions and then reallocate the underutilized resource to any of the other logical partitions that need or want the resource, based on weighted values Col 9 lines 55-64).Although Barsness teaches hypervisor-directed usage of CPU resources, comprising determining a logical to physical CPU relationship, distributing information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, and enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs, he does not specifically teach 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).It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the system and methods of Barsness with the teachings of Song, allowing Barsness to determine, by a computer, using a hypervisor, a logical to physical relationship and the rest of Song determining a relationship mapping. A person of ordinary skill in the art would have been 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.
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) determine, 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 system; (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 distribute, using the hypervisor, information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs (The regular monitoring of overall system performance combined with the monitoring of system commands allows for the anticipation of the extra resource available to partitions on a system for a given time period. Col 9 lines 42-46. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions. Col 9 lines 58-62). enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs. (Some conventional hypervisors have the ability to set "weights" for different logical partitions to be used to divide up and allocate any excess capacity to those logical partitions. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions and then reallocate the underutilized resource to any of the other logical partitions that need or want the resource, based on weighted values Col 9 lines 55-64).Although Barsness teaches hypervisor-directed usage of CPU resources, comprising determining a logical to physical CPU relationship, distributing information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, and enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs, he does not specifically teach 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).It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the system and methods of Barsness with the teachings of Song, allowing Barsness to determine, by a computer, using a hypervisor, a logical to physical relationship and the rest of Song determining a relationship mapping. A person of ordinary skill in the art would have been 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.
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) determine, 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 distribute, using the hypervisor, information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs (The regular monitoring of overall system performance combined with the monitoring of system commands allows for the anticipation of the extra resource available to partitions on a system for a given time period. Col 9 lines 42-46. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions. Col 9 lines 58-62).enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs. (Some conventional hypervisors have the ability to set "weights" for different logical partitions to be used to divide up and allocate any excess capacity to those logical partitions. By incorporating the monitoring and reallocation functions within the hypervisor, the hypervisor would be able to additionally communicate the predicted underutilization of resource from any logical partition to any other logical partitions and then reallocate the underutilized resource to any of the other logical partitions that need or want the resource, based on weighted values Col 9 lines 55-64).Although Barsness teaches hypervisor-directed usage of CPU resources, comprising determining a logical to physical CPU relationship, distributing information regarding additional available processing capacity of at least one physical CPU to a plurality of guest virtual machines on a per-logical CPU basis based on the logical to physical CPU relationship between the subset of the plurality of logical CPUs and the subset of the plurality of physical CPUs, and enabling the plurality of guest virtual machines to distribute workload based on predicted processing capacities of corresponding logical CPUs, he does not specifically teach logical to physical CPU relationship mapping.However, in analogous art, Song teaches determine, 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).It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the system and methods of Barsness with the teachings of Song, allowing Barsness to determine, by a computer, using a hypervisor, a logical to physical relationship and the rest of Song determining a relationship mapping. A person of ordinary skill in the art would have been 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.
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).
Conclusion
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