DETAILED ACTION
Claims 1-24 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Objections
Claim 21 is objected to because of the following informalities: the claim recites “The computer system of claim 19 wherein the hypervisor schedules the computational unit for execution on one of the plurality of heterogeneous processing cores based on the tag,” and there is insufficient antecedent basis for these limitations in the claim, as it is unclear what the “the computational unit” or “the tag” are referring to. The issue is probably caused by a typographical error. The Examiner suggests amending the claim to depend on Claim 20 instead of Claim 19. Appropriate correction is required.
For the purposes of art rejection, the Examiner is treating Claim 21 as depending on Claim 20.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 4-5, 12-13, and 20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 4 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, for reciting the limitation “an agent running within the workload.”
The most relevant disclosure of the specification is para 33:
[0033] At steps 410 and 412,hypervisor 108 of host system 106 can power-on the VM and determine that the VM should dynamically scheduled, per the presence of the dynamic tag in the VM's configuration file. In response, hypervisor 108 can inject and initiate execution of a paravirtual guest agent within the VM that maintains a copy of the process list (step 414).
[0020] Once the VM is started on a host system 106,hypervisor 108 can identify the presence of the VM's dynamic tag and, in response, can inject a paravirtual guest agent into the VM that maintains a copy of the VM's process list.
Here, in light of the specification, the “agent” is interpreted as a software agent. The specification is reasonable clear, because a software agent can run/reside within a VM.
However, the plain meaning of a “workload” is “the amount of work or of working time expected or assigned” according to Webster dictionary. It does not make sense for a software agent to run within an “amount of work” or within “working time.” Therefore, the claim language is indefinite. For the purposes of compact prosecution, the examiner is treating the limitation “an agent running within the workload” as follows:
“an agent running within a VM”
Claims 12 and 20 are rejected, because they recite a similar limitation as Claim 4 and have the same deficiency. Claims 5 and 13 are rejected, because they depend on Claims 4 or 12. They inherit the deficiency from their parent and fail to remedy the deficiency. Therefore, Claims 4 and 12 are also rejected.
Claim 21 currently depends on Claim 19. Claim 21 has been objected to, because the Examiner believe Claim 21 should have depended on Claim 20. The confusion is caused by a typographical error. If Claim 21 were to depend on Claim 20, it would have been rejected as well, because it would inherit the deficiency from Claim 20 and would fail to remedy the deficiency.
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-3, 7, 9-11, 15, 17-19, and 23 are rejected under 35 U.S.C. 103 as being unpatentable over Anand (US 20150169350 A1) in view of Zeng (US 10121001 B1).
Regarding Claim 1, Anand teaches a method comprising:
receiving, by a hypervisor of a host system, hint metadata for a workload (
Anand discloses, “if the demands for computing system resources are lighter across the virtual machines of the computing system, meaning many of the virtual machines of a computing system are at a low load situation and thus, need lower physical processor capacity, then the hypervisor can pass ‘hints’ or information about the excess resource availability to the guest operating systems of the virtual machines that are configured with a lower priority business policy, i.e. execute lower priority workloads. These guest operating systems executing lower priority workloads may then change their scheduler behavior to get additional processor capacity,” ¶ 0018, “…assume that a virtual machine A 110 is running business critical database workloads 112 with high priority policy sets 114, i.e. business policies specifying the workloads 112 to be relatively higher priority that non-critical workloads, and is configured with 32 virtual processors 116 with an entitlement or guarantee of 24 physical processor cores of the computing system (even if the computing system is fully utilized, the workloads 112 are guaranteed 24 physical processor cores,” ¶ 0019, “For example, the processing unit 206 may implement the hypervisor 150 of FIG. 1, for example, which comprises logic for providing hints to guest operating systems of the resource availability and resource utilization of other virtual machines of the same or different logical partitions so that the guest operating systems may utilize this information to adjust the thread scheduling performed by these guest operating systems,” ¶ 0053, and “As described previously, the hypervisor may monitor the resource utilization of the various virtual machines (VMs) executing on the data processing system 200 and may communicate such information to the guest operating systems of each of the logical partitions (LPARs) or VMs,” ¶ 0054.
The claimed “hint metadata” is mapped to data related to the resource utilization that the hypervisor monitors in order to provide hints to the guest operating systems, in order to facilitate improved thread scheduling. This is in light of paragraph 9 of the present application’s specification, which states that “This hint metadata may be provided statically prior to VM power-on and/or dynamically during VM runtime. The hypervisor can then schedule the workload on one or more of a plurality of heterogenous processing cores based on the hint metadata.”
The hints that the hypervisor provides to the guest operating systems indicate a computational need for the workloads, such as the priority level for each workload. This is analogous to the claimed hint metadata indicating high or low priority, according to paragraph 17 of the present application’s specification, which states “VIM server 102 can assign, via VM tagging logic 202, a tag to a VM created/provisioned within host cluster 104 that includes static hint metadata indicating the computational nature, preferences, and/or requirements of the VM as a whole. For instance, the tag may indicate that the VM is high priority/compute-intensive, low priority/not compute-intensive, hybrid priority, an AI workload, etc.”);
and scheduling, by the hypervisor, the workload on one or more of the plurality of (
Anand discloses, “Then the hypervisor can pass ‘hints’ or information about the excess resource availability to the guest operating systems of the virtual machines that are configured with a lower priority business policy, i.e. execute lower priority workloads. These guest operating systems executing lower priority workloads may then change their scheduler behavior to get additional processor capacity,” ¶ 0018.).
Anand does not teach wherein the processing cores are heterogeneous, nor does it teach that the workload is running on the hypervisor.
However, Zeng teaches wherein the processing cores are heterogeneous (
Zeng discloses, “FIG. 1 is a functional block diagram of an exemplary, non-limiting aspect of a portable computing device (“PCD”) 100 in the form of a wireless telephone for implementing methods and systems for monolithic scheduling using a hypervisor. The hardware comprised within and without of SoC 102 may be leveraged by a hypervisor working with a monolithic scheduler in EL1 to support the workloads of guest VMs and/or a secure VM… Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 29-48.),
And that the workload is running on the hypervisor (
PNG
media_image1.png
573
434
media_image1.png
Greyscale
Zeng discloses, “FIG. 2 illustrates a general arrangement of a hypervisor based structure for virtualized processing of workloads. Although the arrangement depicted in the FIG. 2 illustration is generally recognized as a hosted hypervisor, a hypervisor deployed as a bare-metal installation (an arrangement wherein the hypervisor communicates directly with the underlying physical hardware) may also be understood. As depicted, a host operating system 24 provides access to the various hardware resources. The hypervisor 25A, working in conjunction with the host operating system 24, coordinates through a set of paravirtualization drivers and tools 29 for the various virtual machines to share the hardware resources. In this way, the virtual machines each ‘think’ that they have exclusive access to and use of the hardware resources when, in reality, the hardware resources are shared. In prior art arrangements, the nature of how the hardware resources are shared is determined through an inter-VM scheduler in the hypervisor 25A and an intra-VM scheduler in guest VMs,” Col 7, Lines 8-26.
As seen in FIG. 2, each of the virtual machines runs on the host operating system, and the hypervisor. Thus, the workloads of the virtual machines run on the hypervisor.)
Anand and Zeng are both considered to be analogous to the claimed invention because they are in the same field of computer scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand to incorporate the teachings of Zeng and provide wherein the processing cores are heterogeneous, and that the workload is running on the hypervisor. Doing so would allow for increased flexibility in choosing different processing cores for the same system (Zeng discloses, “Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 44-48.).
Claims 9 and 17 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 1. Therefore, Claims 9 and 17 are rejected for the same reason set forth in the rejection of Claim 1.
Regarding Claim 2, Anand in view of Zeng teaches the method of claim 1 wherein the hint metadata was statically assigned to the workload prior to initiation of the workload (
Anand discloses, “In this example, based on the high priority policy set of virtual machine A 110, the guest operating system 118 of the virtual machine A 110 will dispatch jobs to the primary threads of all of the 32 virtual processors 116 using all 32 physical processor cores when the virtual machines B 120 and C 130 are idle,” ¶ 0021, “It should be appreciated that the priority policy sets 114 may be static or dynamic. A static policy is one where a hypervisor, or other virtual machine manager, owns the static policy and notifies the virtual machines when their resource usage does not match the virtual machines’ assigned priority for a given situation, so that adjustments may be made. This policy only prioritizes workloads at the virtual machine level and does not consider the specifics of the workload in the virtual machine,” ¶ 0029.
This means that the policy set will be applied prior to the workloads being initialized and dispatched to be run.).
Claims 10 and 18 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 2. Therefore, Claims 10 and 18 are rejected for the same reason set forth in the rejection of Claim 2.
Regarding Claim 3, Anand in view of Zeng teaches the method of claim 1 wherein the hint metadata is dynamically determined while the workload is running (
Anand discloses, “It should be appreciated that the priority policy sets 114 may be static or dynamic… The dynamic policy, on the other hand, are owned by the individual virtual machines and represent the priorities of the workloads actually running in the virtual machine. The dynamic policy conveys the priorities of the workloads to the hypervisor based on which workloads are current executing in the virtual machine. The hypervisor may then grant or deny more resources, depending on the current relative priority of the other virtual machines,” ¶ 0029, and “As described previously, the hypervisor may monitor the resource utilization of the various virtual machines (VMs) executing on the data processing system 200 and may communicate such information to the guest operating systems of each of the logical partitions (LPARs) or VMs. The guest operating systems may comprise logic for ingesting such hint information from the hypervisor and adjusting their own thread scheduling operations to account for the availability, or lack of availability, of data processing system resources,” ¶ 0054.
This means that the hypervisor will communicate with the guest virtual machines to schedule workloads while the workloads are still being run, in contrast to the static approach.).
Claims 11 and 19 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 3. Therefore, Claims 11 and 19 are rejected for the same reason set forth in the rejection of Claim 3.
Regarding Claim 7, Anand in view of Zeng teaches the method of claim 1 wherein the plurality of heterogeneous processing cores includes specialized processing cores designed to perform a particular task, wherein the hint metadata indicates that the workload is directed to the particular task, and wherein the workload is scheduled on one or more of the specialized processing cores (
Anand discloses, “if the demands for computing system resources are lighter across the virtual machines of the computing system, meaning many of the virtual machines of a computing system are at a low load situation and thus, need lower physical processor capacity, then the hypervisor can pass ‘hints’ or information about the excess resource availability to the guest operating systems of the virtual machines that are configured with a lower priority business policy, i.e. execute lower priority workloads. These guest operating systems executing lower priority workloads may then change their scheduler behavior to get additional processor capacity,” ¶ 0018.
In addition, Zeng teaches “usage state data” that is analogous to hint metadata, disclosing “Usage state data from the stage 2 MMU is also published to the monolithic scheduler 411. At block 530, the guest VM 416 makes available to the monolithic scheduler 411 its usage state. Next, with the context switch data having been made available to it, at block 535 the monolithic scheduler 411 may make inter-VM and intra-VM allocation of workloads among and within the guest VMs 416 and the secure VM 415,” Col 8, Lines 42-49.
Zeng also discloses, “Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments. A secure timer 187 is accessible and available on the chip 102,” Col 5, Lines 44-49.
After the combination of Anand with Zeng, the hints from Anand are used to indicate that a workload should be scheduled on a particular core as indicated by Zeng.).
Anand and Zeng are both considered to be analogous to the claimed invention because they are in the same field of computer scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand to incorporate the teachings of Zeng and provide wherein the plurality of heterogeneous processing cores includes specialized processing cores designed to perform a particular task, wherein the hint metadata indicates that the workload is directed to the particular task, and wherein the workload is scheduled on one or more of the specialized processing cores. Doing so would allow for increased flexibility in choosing different processing cores for the same system (Zeng discloses, “Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 44-48.).
Claims 15 and 23 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 7. Therefore, Claims 15 and 23 are rejected for the same reason set forth in the rejection of Claim 7.
Claims 4-5, 12-13, and 20-21 are rejected under 35 U.S.C. 103 as being unpatentable over Anand (US 20150169350 A1) in view of Zeng (US 10121001 B1), Feroz (US 20160162685 A1), and Da Silva (US 20140047440 A1).
Regarding Claim 4, Anand in view of Zeng teaches the method of claim 3. Anand in view of Zeng does not teach wherein the hint metadata is dynamically determined by an agent running within the workload that: detects a launch of a workload process; matches the workload process to an entry in a process list; retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor.
However, Feroz teaches wherein the hint metadata is dynamically determined by an agent running within the workload that:
detects a launch of a workload process (
However, Feroz teaches wherein the hint metadata is dynamically determined by an agent running within the workload that:
detects a launch of a workload process (
Feroz discloses, “When an application is selected to be run in one of VMs 110, the file event associated therewith is detected by a thin agent 112 of the corresponding VM. Thin agent 112 is implemented as a file system filter driver in the guest operating system of the VM, that intercepts file events and passes them to SVM 115 via an inter-process communication channel depicted in FIG. 1 as multiplexer 122,” ¶ 0011, and “The method begins at step 302, when thin agent 112 detects a file event associated with launching of an application. Thin agent 112 pauses execution of this application at step 304 and transmits the file event to SVM 115 through multiplexer 122 at step 306. Thin agent 112 then waits for an allow or deny action before proceeding further with the application launch,” ¶ 0017.
This aligns with paragraph 20 of the present application’s specification, which states that “hypervisor 108 can identify the presence of the VM's dynamic tag and, in response, can inject a paravirtual guest agent into the VM that maintains a copy of the VM's process list.”);
matches the workload process to an entry in a process list (
Feroz discloses, “At step 402, SVM 115 detects the file event as a result of the notification from thin agent 112 and generates a file signature of the application. At step 404, whitelist manager 155 compares the file signature to those stored in whitelist 156. If there is a match, whitelist manager 155 at step 420 generates an allow action and SVM 115 at step 422 communicates the allow action to thin agent 112 of VM 110 through multiplexer 122,” ¶ 0018.
The claimed “process list” is mapped to the disclosed “whitelist 156” that stores whitelisted processes for matching.).
Anand in view of Zeng, and Feroz are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Feroz and provide wherein the hint metadata is dynamically determined by an agent running within the workload that: detects a launch of a workload process; matches the workload process to an entry in a process list. Doing so would allow for increased integrity from verifying the processes (Feroz discloses, “An alternative approach known as whitelisting, where only well-known applications are given execution privileges, has been gaining momentum. The main challenge with adopting a whitelisting strategy is that as new applications emerge, many of their runtime behavior remain unknown. Before such unknown applications, which are referred to as ‘gray’ applications, can be added to the whitelist, their runtime behavior needs to be first examined and classified as being safe by the system administrator,” ¶ 0002.).
Anand in view of Zeng and Feroz does not teach wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor.
However, Da Silva teaches wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process (
Da Silva discloses, “The application, via an (Guest) Operating System Kernel call 51, communicates application performance metric or status information 60 to a kernel level process 42 that receives the performance information/status and relays it to the hypervisor of that host system… Example system calls 51 to the kernel layer include status information such as: call(Throughput, too low) or call(Latency, TOO_HIGH) referring to application process metrics 60 of the application run in the guest VM,” ¶ 0029.
The claimed “tag” is mapped to the disclosed “application process metrics 60” that describe the computational characteristics of the process, such as whether the throughput is too low or the latency is too high. This is consistent with the specification, which states in paragraph 17 that “For instance, the tag may indicate that the VM is high priority/compute-intensive, low priority/not compute-intensive, hybrid priority, an AI workload, etc.”.);
determines a computational unit of the workload to which the workload process is mapped (
Da Silva discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50). In one embodiment, the hypervisor process 35 may include a Device Emulation process (a standard virtualization component which is responsible for routing I/O requests in a hypervsor to the actual device that the I/O is destined for). One example and non-limiting format of the hypercall 50 is: call(Resource_name or status, value). Example hypercalls to the hypervisor process include: call(Source VM identifier, resource name or status, value),” ¶ 0030.
The claimed “computational unit” is mapped to the disclosed VM that is identified by the disclosed “VM identifier”. The application process 60 is associated with a VM that it runs on via this identifier.);
and sends the tag and an identifier of the computational unit to the hypervisor (
Da Silva discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50),” ¶ 0030.
The application process 60 includes the disclosed “application process metrics 60” that describe the computational characteristics of the process. Both of the application process 60 and O/S system performance/status data 61, mapped to tag, include the “VM identifier”, and both are sent to the hypervisor via the hypercall.).
Anand in view of Zeng and Feroz, and Da Silva are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng and Feroz to incorporate the teachings of Da Silva and provide wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor. Doing so would allow for providing more information to the hypervisor to make informed decisions (Da Silva discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50),” ¶ 0030.).
Claim 12 is a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) corresponding to the method Claim 4. Therefore, Claim 12 is rejected for the same reason set forth in the rejection of Claim 4.
Regarding Claim 5, Anand in view of Zeng, Feroz, and Da Silva teaches the method of claim 4 wherein the hypervisor schedules the computational unit for execution on one of the plurality of heterogeneous processing cores based on the tag (
Zeng discloses, “The hardware comprised within and without of SoC 102 may be leveraged by a hypervisor working with a monolithic scheduler in EL1 to support the workloads of guest VMs and/or a secure VM. … Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 33-48.
In addition, Da Silva also discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50). In one embodiment, the hypervisor process 35 may include a Device Emulation process (a standard virtualization component which is responsible for routing I/O requests in a hypervsor to the actual device that the I/O is destined for). One example and non-limiting format of the hypercall 50 is: call(Resource_name or status, value). Example hypercalls to the hypervisor process include: call(Source VM identifier, resource name or status, value),” ¶ 0030.
After the combination of Anand with Zeng, the hypervisor’s scheduling of threads/workloads are done on heterogenous processing cores from Zeng. After the combination of Anand in view of Zeng with Feroz and Da Silva, the hypervisor’s scheduling is based on information stored in the tag that is retrieved from Feroz and utilized in Da Silva.).
Anand and Zeng are both considered to be analogous to the claimed invention because they are in the same field of computer scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand to incorporate the teachings of Zeng and provide wherein the hypervisor schedules the computational unit for execution on one of the plurality of heterogeneous processing cores. Doing so would allow for increased flexibility in choosing different processing cores for the same system (Zeng discloses, “Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 44-48.).
Anand in view of Zeng, and Feroz and Da Silva are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Feroz Da Silva and provide wherein the computational unit is scheduled based on the tag. Doing so would allow for improvement in resource management (Da Silva discloses, “…the kernel level process responsively generating a further hypercall relaying the application performance metric data to the host machine hypervisor; and, the host machine hypervisor delivering the application performance metric data and the system level performance data regarding the running virtual machine to a cloud controller for managing resources of the cloud computing environment,” ¶ 0014.).
Claim 13 is a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) corresponding to the method Claim 5. Therefore, Claim 13 is rejected for the same reason set forth in the rejection of Claim 5.
Regarding Claim 20, Anand in view of Zeng teaches the computer system of claim 18. Anand in view of Zeng does not teach wherein the hint metadata is dynamically determined by an agent running within the workload that: detects a launch of a workload process; matches the workload process to an entry in a process list; retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor.
However, Feroz teaches wherein the hint metadata is dynamically determined by an agent running within the workload that:
detects a launch of a workload process (
Feroz discloses, “When an application is selected to be run in one of VMs 110, the file event associated therewith is detected by a thin agent 112 of the corresponding VM. Thin agent 112 is implemented as a file system filter driver in the guest operating system of the VM, that intercepts file events and passes them to SVM 115 via an inter-process communication channel depicted in FIG. 1 as multiplexer 122,” ¶ 0011, and “The method begins at step 302, when thin agent 112 detects a file event associated with launching of an application. Thin agent 112 pauses execution of this application at step 304 and transmits the file event to SVM 115 through multiplexer 122 at step 306. Thin agent 112 then waits for an allow or deny action before proceeding further with the application launch,” ¶ 0017.
This aligns with paragraph 20 of the present application’s specification, which states that “hypervisor 108 can identify the presence of the VM's dynamic tag and, in response, can inject a paravirtual guest agent into the VM that maintains a copy of the VM's process list.”);
matches the workload process to an entry in a process list (
Feroz discloses, “At step 402, SVM 115 detects the file event as a result of the notification from thin agent 112 and generates a file signature of the application. At step 404, whitelist manager 155 compares the file signature to those stored in whitelist 156. If there is a match, whitelist manager 155 at step 420 generates an allow action and SVM 115 at step 422 communicates the allow action to thin agent 112 of VM 110 through multiplexer 122,” ¶ 0018.
The claimed “process list” is mapped to the disclosed “whitelist 156” that stores whitelisted processes for matching.).
Anand in view of Zeng, and Feroz are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Feroz and provide wherein the hint metadata is dynamically determined by an agent running within the workload that: detects a launch of a workload process; matches the workload process to an entry in a process list. Doing so would allow for increased integrity from verifying the processes (Feroz discloses, “An alternative approach known as whitelisting, where only well-known applications are given execution privileges, has been gaining momentum. The main challenge with adopting a whitelisting strategy is that as new applications emerge, many of their runtime behavior remain unknown. Before such unknown applications, which are referred to as ‘gray’ applications, can be added to the whitelist, their runtime behavior needs to be first examined and classified as being safe by the system administrator,” ¶ 0002.).
Anand in view of Zeng and Feroz does not teach wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor.
However, Da Silva teaches wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process (
Da Silva discloses, “The application, via an (Guest) Operating System Kernel call 51, communicates application performance metric or status information 60 to a kernel level process 42 that receives the performance information/status and relays it to the hypervisor of that host system… Example system calls 51 to the kernel layer include status information such as: call(Throughput, too low) or call(Latency, TOO_HIGH) referring to application process metrics 60 of the application run in the guest VM,” ¶ 0029.
The claimed “tag” is mapped to the disclosed “application process metrics 60” that describe the computational characteristics of the process, such as whether the throughput is too low or the latency is too high. This is consistent with the specification, which states in paragraph 17 that “For instance, the tag may indicate that the VM is high priority/compute-intensive, low priority/not compute-intensive, hybrid priority, an AI workload, etc.”.
According to the Oxford Dictionary, a tag is defined as “a label attached to someone or something for the purpose of identification or to give other information.”.);
determines a computational unit of the workload to which the workload process is mapped (
Da Silva discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50). In one embodiment, the hypervisor process 35 may include a Device Emulation process (a standard virtualization component which is responsible for routing I/O requests in a hypervsor to the actual device that the I/O is destined for). One example and non-limiting format of the hypercall 50 is: call(Resource_name or status, value). Example hypercalls to the hypervisor process include: call(Source VM identifier, resource name or status, value),” ¶ 0030.
The claimed “computational unit” is mapped to the disclosed VM that is identified by the disclosed “VM identifier”. The application process 60 is associated with a VM that it runs on via this identifier.);
and sends the tag and an identifier of the computational unit to the hypervisor (
Da Silva discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50),” ¶ 0030.
The application process 60 includes the disclosed “application process metrics 60” that describe the computational characteristics of the process. Both of the application process 60 and O/S system performance/status data 61, mapped to tag, include the “VM identifier”, and both are sent to the hypervisor via the hypercall.).
Anand in view of Zeng and Feroz, and Da Silva are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng and Feroz to incorporate the teachings of Da Silva and provide wherein the agent retrieves a tag for the workload process from the matched entry, wherein the tag indicates a computational nature, need, and/or preference of the workload process; determines a computational unit of the workload to which the workload process is mapped; and sends the tag and an identifier of the computational unit to the hypervisor. Doing so would allow for improvement in resource management (Da Silva discloses, “…the kernel level process responsively generating a further hypercall relaying the application performance metric data to the host machine hypervisor; and, the host machine hypervisor delivering the application performance metric data and the system level performance data regarding the running virtual machine to a cloud controller for managing resources of the cloud computing environment,” ¶ 0014.).
Claim 21 has been objected to due to a typographical error. For the purposes of art rejection, the Examiner is treating Claim 21 as depending on Claim 20.
Regarding Claim 21, Anand in view of Zeng, Feroz, and Da Silva teaches the computer system of claim 20 wherein the hypervisor schedules the computational unit for execution on one of the plurality of heterogeneous processing cores based on the tag (
Zeng discloses, “The hardware comprised within and without of SoC 102 may be leveraged by a hypervisor working with a monolithic scheduler in EL1 to support the workloads of guest VMs and/or a secure VM. … Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 33-48.
In addition, Da Silva also discloses, “The application process 60 and O/S system performance/status data 61 are communicated to hypervisor process 35 via a system call into the Hypervisor process (‘hypercall’ 50). In one embodiment, the hypervisor process 35 may include a Device Emulation process (a standard virtualization component which is responsible for routing I/O requests in a hypervsor to the actual device that the I/O is destined for). One example and non-limiting format of the hypercall 50 is: call(Resource_name or status, value). Example hypercalls to the hypervisor process include: call(Source VM identifier, resource name or status, value),” ¶ 0030.
After the combination of Anand with Zeng, the scheduling of threads/workloads are done on heterogenous processing cores from Zeng. After the combination of Anand in view of Zeng with Feroz and Da Silva, this scheduling is based on information stored in the tag that is retrieved from Feroz and utilized in Da Silva.).
Anand and Zeng are both considered to be analogous to the claimed invention because they are in the same field of computer scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand to incorporate the teachings of Zeng and provide wherein the hypervisor schedules the computational unit for execution on one of the plurality of heterogeneous processing cores. Doing so would allow for increased flexibility in choosing different processing cores for the same system (Zeng discloses, “Moreover, as is understood in the art of heterogeneous multi-core processors, each of the cores 222, 224, 230 may process different workloads associated with differing applications or functionality of the PCD 100 running in various execution environments,” Col 5, Lines 44-48.).
Anand in view of Zeng, and Feroz and Da Silva are both considered to be analogous to the claimed invention because they are in the same field of computer processes. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Feroz Da Silva and provide wherein the computational unit is scheduled based on the tag. Doing so would allow for improvement in resource management (Da Silva discloses, “…the kernel level process responsively generating a further hypercall relaying the application performance metric data to the host machine hypervisor; and, the host machine hypervisor delivering the application performance metric data and the system level performance data regarding the running virtual machine to a cloud controller for managing resources of the cloud computing environment,” ¶ 0014.).
Claims 6, 14, and 22 are rejected under 35 U.S.C. 103 as being unpatentable over Anand (US 20150169350 A1) in view of Zeng (US 10121001 B1) and Varma (US 20210303357 A1).
Regarding Claim 6, Anand in view of Zeng teaches the method of claim 1 (
Anand discloses, “Then the hypervisor can pass ‘hints’ or information about the excess resource availability to the guest operating systems of the virtual machines that are configured with a lower priority business policy, i.e. execute lower priority workloads. These guest operating systems executing lower priority workloads may then change their scheduler behavior to get additional processor capacity,” ¶ 0018, “assume that a virtual machine A 110 is running business critical database workloads 112 with high priority policy sets 114, i.e. business policies specifying the workloads 112 to be relatively higher priority that non-critical workloads, and is configured with 32 virtual processors 116 with an entitlement or guarantee of 24 physical processor cores of the computing system,” ¶ 0019, and “Assume also that virtual machine B 120 is running development workloads 122 associated with a lower priority policy set 124 and which is configured with 20 virtual processors 126 and an entitlement of 2 physical processor cores. In addition, in this example, assume that a virtual machine C 130 runs test workloads 132 with a priority policy set 134 that is higher than the low priority policy set of virtual machine B, but less than the high priority policy set 114 of virtual machine A 110. Virtual machine C is configured with 20 virtual processors 136 and an entitlement of 4 physical processor cores. The system in this example has 32 physical processor cores 140 which are shared among the three virtual machines 110, 120, and 130,” ¶ 0020.
The priority policy set associated with each virtual machine indicates a priority level that influences how workloads are scheduled on the processor cores used by the virtual machine.).
Anand in view of Zeng does not teach wherein the plurality of heterogeneous processing cores includes performance cores and efficiency cores.
However, Varma teaches wherein the plurality of heterogeneous processing cores includes performance cores and efficiency cores (
Varma discloses, “For the purpose of illustration, two types of cores are shown in FIG. 17: performance cores 1751 (sometimes referred to as ‘big’ cores) and efficiency cores 1752 (sometimes referred to as ‘little’ cores). Note, however, that various additional cores and alternate combinations of big/little cores may be used,” ¶ 0181.).
Anand in view of Zeng, and Varma are both considered to be analogous to the claimed invention because they are in the same field of computer scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Varma and provide wherein the plurality of heterogeneous processing cores includes performance cores and efficiency cores. Doing so would allow for increased flexibility in choosing different processing cores for the same system (Varma discloses, “For the purpose of illustration, two types of cores are shown in FIG. 17: performance cores 1751 (sometimes referred to as ‘big’ cores) and efficiency cores 1752 (sometimes referred to as ‘little’ cores). Note, however, that various additional cores and alternate combinations of big/little cores may be used,” ¶ 0181.).
Claims 14 and 22 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 6. Therefore, Claims 14 and 22 are rejected for the same reason set forth in the rejection of Claim 6.
Claims 8, 16, and 24 are rejected under 35 U.S.C. 103 as being unpatentable over Anand (US 20150169350 A1) in view of Zeng (US 10121001 B1) and Agarwal (US 20210224077 A1).
Regarding Claim 8, Anand in view of Zeng teaches the method of claim 1. Anand in view of Zeng does not teach wherein the scheduling fails due to a lack of availability of appropriate processing cores on the host system, and wherein in response to this failure a virtual infrastructure management server migrates the VM to another host system that can accommodate the workload in accordance with the hint metadata.
However, Agarwal teaches wherein the scheduling fails due to a lack of availability of appropriate processing cores on the host system, and wherein in response to this failure a virtual infrastructure management server migrates the VM to another host system that can accommodate the workload in accordance with the hint metadata (
Agarwal discloses, “If a host has experienced a failure, as reported by a HA agent 121 running in that host (e.g., or by the HA agent not being able to send a heartbeat signal to HA master 133 at a prescribed time, thereby indicating a problem with a host on which that HA agent is installed), in step 307 a determination is made by virtualization manage 130 as to whether there are sufficient available resources within cluster 127 to spin up the VMs that are running in the failed host in another host within cluster 127. If there are sufficient available resources (‘Yes’ decision in step 307), then in step 310 the VMs of the failed host are migrated to another host in cluster 127 that can accommodate those VMs, and the process ends,” ¶ 0019.
After the combination of Anand in view of Zeng with Agarwal, the migration of the VM to another host, from Agarwal, is determined based on the hint metadata from Anand in view of Zeng.).
Anand in view of Zeng, and Agarwal are both considered to be analogous to the claimed invention because they are in the same field of computer architecture. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Anand in view of Zeng to incorporate the teachings of Agarwal and provide wherein the scheduling fails due to a lack of availability of appropriate processing cores on the host system, and wherein in response to this failure a virtual infrastructure management server migrates the VM to another host system that can accommodate the workload in accordance with the hint metadata. Doing so would allow the process to continue without the drawbacks of the original host failing. (Agarwal discloses, “a determination is made by virtualization manage 130 as to whether there are sufficient available resources within cluster 127 to spin up the VMs that are running in the failed host in another host within cluster 127. If there are sufficient available resources (‘Yes’ decision in step 307), then in step 310 the VMs of the failed host are migrated to another host in cluster 127 that can accommodate those VMs, and the process ends,” ¶ 0019.).
Claims 16 and 24 are a non-transitory computer readable storage medium claim (¶ 0033 of Anand.) and computer system claim (¶ 0032 of Anand.), respectively, corresponding to the method Claim 8. Therefore, Claims 16 and 24 are rejected for the same reason set forth in the rejection of Claim 8.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Feng (US 20180165111 A1): Predictive Virtual Server Scheduling and Optimization of Dynamic Consumable Resources to Achieve Priority-based Workload Performance Objectives
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANDREW SUN whose telephone number is (571)272-6735. The examiner can normally be reached Monday-Friday 8:00-5:00.
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, Aimee Li can be reached at (571) 272-4169. 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.
/ANDREW NMN SUN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195