DETAILED ACTION
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 .
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Response to Amendment
The preliminary amendments filed September 11, 2024 have been entered. Claims 7 and 8 are cancelled and claims 11-20 newly filed, leaving claims 1-6 and 9-20 pending in this application.
Priority
Acknowledgment is made of applicant's claim for foreign priority based on application CN202210249016.0 filed in China on March 14, 2022.
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statements (IDS) submitted on September 11, 2024 and October 16, 2024 are in compliance with the provisions of 37 CFR 1.97, except for the following issues. Accordingly, the information disclosure statements are being considered by the examiner, except for the following:
The NPL document to Cao, Xin in the September 2024 IDS lacks the pages that are cited as relevant in the attached international search report,
The NPL document to Chunhong, Peng in the September 2024 IDS lacks the pages that are cited as relevant in the attached international search report.
Specification
The title of the invention is not descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed. Examiner recommends incorporating some discussion of the virtualization page fault and memory address for hypercall function types.
The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification.
Claim Interpretation
MPEP 2111.04(II) provides “The broadest reasonable interpretation of a method (or process) claim having contingent limitations requires only those steps that must be performed and does not include steps that are not required to be performed because the condition(s) precedent are not met. For example, assume a method claim requires step A if a first condition happens and step B if a second condition happens. If the claimed invention may be practiced without either the first or second condition happening, then neither step A or B is required by the broadest reasonable interpretation of the claim. If the claimed invention requires the first condition to occur, then the broadest reasonable interpretation of the claim requires step A. If the claimed invention requires both the first and second conditions to occur, then the broadest reasonable interpretation of the claim requires both steps A and B.”
Claims 1-6 are method claims and must be analyzed for contingent limitations.
Claim 1 recites the method comprising:
acquiring, in response to a virtualization page fault triggered by the kernel-mode program, a memory address where the virtualization page fault is triggered;
determining whether the memory address of the virtualization page fault is consistent with a memory address corresponding to a page fault key in a mapping table, wherein the mapping table records a mapping relationship between a key-value pair, the page fault key is a key in the mapping table determined jointly by the kernel-mode program and the virtual machine monitor, and each key in the mapping table uniquely corresponds to one memory address;
reading, from the mapping table, a page fault value mapped by the page fault key if the memory address of the virtualization page fault is consistent with the memory address corresponding to the page fault key, wherein the page fault value comprises a function type of a hypercall written by the kernel-mode program before the virtualization page fault is triggered; and
executing, based on the function type indicated by the page fault value, the hypercall of the function type.
Claim 1’s very first limitation of acquiring a memory address is explicitly provided as contingent on a virtualization page fault triggered by the kernel-mode program, but the claim does not recite this condition as being required within performance of the claim. As such, the acquiring limitation is not required within the broadest reasonable interpretation of the performance of claim 1. Consequently, with no acquisition of a memory address, the determining, reading, and executing limitations are similarly not required due to a failure to perform the acquisition.
Examiner notes that due to this claim interpretation, claim 1 effectively recites no specific limitations. In order to address this claim interpretation, examiner recommends either removing the condition of a virtualization page fault triggered by the kernel-mode program, or to recite this condition as a positively recited limitation (for example, the method comprising “triggering a virtual page fault by the kernel-mode program”, though examiner notes that the claim would need to be reconsidered as the method is recited to be performed by the virtual machine monitor).
Examiner further notes that the determining limitation only recites determining whether the memory address is consistent with a memory address corresponding to a page fault key, with no specific result required. As a consequence, the condition for the reading limitation, recited as “if the memory address of the virtualization page fault is consistent with the memory address corresponding with the page fault key”, is not required, so the reading and execution limitations are not required due to an additional condition not being met.
Similar to the earlier suggestion, to address this claim scope to require the reading and executing limitations, examiner recommends positively reciting the determining step as determining “that the memory address is consistent”, instead of “whether the memory address is consistent”, as this then narrows the scope of the determining result to require the condition, or to remove the condition from the limitation entirely.
Claim 2 recites
A virtualization page fault triggered in response to the kernel-mode program writing the function type of the hypercall into the page fault value mapped by the page fault key in the mapping table.
Claim 2’s description of the virtualization page fault is now recited to be contingent on the kernel-mode program writing the function type of the hyper call into the page fault value, which is not recited as required within the broadest reasonable performance of the claim. As such, the limitation of claim 2 is not required within the performance of the claim and consequently does not alter the determination in claim 1 that the virtualization page fault being triggered is not required.
Claim 3 recites additional method steps. Claim 3, due to the indefiniteness issue discussed below, raises an issue as to whether “the page fault key” refers to the specific page fault key in claim 1 or “different page fault keys” as recited in claim 3. As discussed in the indefiniteness rejection below, for the purpose of examination, it is assumed that “the page fault key” refers to the specific page fault key in claim 1, and as such, because claim 1’s page fault key is tied to one of the contingent limitations not required, then the limitations of claim 3 are now contingent and tied to the contingent limitations of claim 1. As claim 3 does not recite any limitation to alter the condition of the virtualization page fault triggered not being required, then the conditions are not met for claim 3’s limitations.
Claim 4 recites the method of claim 1, further comprising:
acquiring, based on identity information of a virtual machine where the virtual machine monitor is located, a mapping table maintained by an extended Berkeley packet filter in the virtual machine; and
modifying a negotiation value mapped by a negotiation key in the mapping table to a page fault key, so that the negotiation value mapped by the negotiation key maintained by the mapping table indicates the page fault key; wherein the negotiation key is a key in the mapping table determined jointly by the kernel-mode program and the virtual machine monitor.
The acquiring limitation does not draw antecedent basis from any limitation in claim 1 that has been analyzed to be contingent, and as such the acquiring limitation is required in the broadest reasonable interpretation of the claim.
The modifying limitation, due to the indefiniteness issue discussed below, raises an issue as to whether “the page fault key” refers to the specific page fault key in claim 1, or the more generic one recited in claim 4. As discussed in the indefiniteness rejection below, for the purpose of examination, it is assumed that “the page fault key” refers to the specific page fault key in claim 1, and as such, because claim 1’s page fault key is tied to one of the contingent limitations not required, then the modifying limitation of claim 4 is not required within the broadest reasonable interpretation of the claim.
Claim 5 recites
reading, in response to a hypercall instruction, a negotiation value mapped by a negotiation key in a mapping table maintained by the extended Berkeley packet filter; wherein the mapping table records a mapping relationship between a key-value pair, and the negotiation value comprises a value written in advance by a virtual machine monitor for indicating a page fault key, and the negotiation key and the page fault key are keys in the mapping table determined jointly by the kernel-mode program and the virtual machine monitor;
querying, based on the negotiation value, the page fault key mapped in the mapping table; and
writing a function type of a hypercall specified in the hypercall instruction into a page fault value mapped by the page fault key, thereby triggering a virtualization page fault, to cause the virtual machine monitor to execute, in response to the virtualization page fault, based on the function type indicated by the page fault value, the hypercall of the function type.
Claim 5’s very first limitation of reading a value is explicitly provided as contingent on a hypercall instruction, but the claim does not recite this condition as being required within performance of the claim. As such, the reading limitation is not required within the broadest reasonable interpretation of claim 5. Consequently, with no reading of the negotiation value, the querying of the page fault key and writing the function type are similarly not required.
Examiner notes that due to this claim interpretation, claim 5 effectively recites no specific limitations. In order to address this claim interpretation, examiner recommends either removing the condition of the hypercall instruction from the reading limitation, or to positively recite this condition as a positively recited limitation within the claim language.
Claim 6 recites an additional limitation of sequentially writing, in a case where the hypercall instruction further specifies at least one parameter of the hypercall”. This does not alter the determination in claim 5 that the hypercall instruction has not been required within the scope of the claim and so does not alter the performance of the limitations of claim 5 from which claim 6 depends. In addition, the sequentially writing limitation is now provided an additional condition where “the hypercall instruction further specifies at least one parameter of the hypercall”, but this is not presented as required within the broadest reasonable interpretation of the claim. Examiner notes that addressing the contingent language in claim 5 would not be sufficient to require the limitation of claim 6, as claim 6 now requires an additional condition. Examiner notes that as with claim 5, this can be addressed by either removing the condition from the sequentially writing limitation or to recite the condition positively as another limitation.
MPEP 2111.04(II) also provides “The broadest reasonable interpretation of a system (or apparatus or product) claim having structure that performs a function, which only needs to occur if a condition precedent is met, requires structure for performing the function should the condition occur. The system claim interpretation differs from a method claim interpretation because the claimed structure must be present in the system regardless of whether the condition is met and the function is actually performed.”
Claim 9 is directed to an electronic device comprising structure and where the processor is configured to perform operations identical to the method of claim 1. As stated above, while the interpretation of claim 1 analyzed these claim limitations to be contingent and not required, claim 9 requires all these limitations.
This also applies to claims 11-13 which depend on claim 9.
Claim 10 recites “a non-transitory computer-readable storage medium… the electronic device is enabled to execute the method according to claim 1”. While the broadest reasonable interpretation of claim 1 does not require the contingent limitations, the broadest reasonable interpretation of claim 10 requires these contingent limitations.
This also applies to claims 14-20, where the claims recite electronic device or non-transitory computer-readable storage medium that performs one of method claims 2-6. While claims 2-6 recite different limitations that are identified in contingent form and not required, claims 14-20 do require these limitations.
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 1-6, 12, 13, 17, and 18 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.
As discussed in the claim interpretation discussion above, independent claims 1 and 5 effectively recite no limitations, as all limitations are identified as contingent limitations with the conditions and therefore the limitations not required. However, this then raises indefiniteness issues, as it is unclear what the broadest reasonable scope of the claim is meant to be with only a preamble. Amendment to the claims to address the contingent nature of the limitations, whether removing the contingent nature or to require the underlying condition, would sufficiently address this rejection.
Claims 2-4 and 6 are rejected for dependence on one of claims 1 and 5. Examiner further notes that, based on the claim interpretation analysis above, claims 2, 3, and 6 similarly recite no limitations in the broadest reasonable interpretation of the claim and feature the same issue as claims 1 and 5, and addressing the contingent nature of the limitations, whether removing the contingent nature or to require the underlying condition, would similarly address this rejection.
Examiner notes that while claims 10 and 14-20 depend on claims 1-6, because the broadest reasonable interpretation of claims 10 and 14-20 requires all contingent limitations, then there is no vagueness about the boundary of the claim scopes. Examiner further notes that claim 14 recites structural limitations, so claims 14 and 15 have additional limitations to define the scope of the claim. As such, claims 10 and 14-20 do not inherit the indefiniteness issues of claims 1-6.
Claim 3 recites “the page fault key”, but this lacks proper antecedent basis, as it is unclear whether this draws antecedent basis from “a page fault key in a mapping table” in claim 1 associated with the memory address determination, or “different page fault keys” recited in claim 3. While no language suggestion is provided here, for the purpose of examination, it is assumed that “the page fault key” of claim 3 refers to “a page fault key in a mapping table” from claim 1.
Claim 17 is rejected for dependence on claim 3.
Claim 4 recites “the page fault key”, but this lacks proper antecedent basis, as it is unclear whether this refers to “a page fault key in a mapping table” in claim 1 associated with the memory address determination, or “mapped by a negotiation key in the mapping table to a page fault key” in claim 4. While no language suggestion is provided here, for the purpose of examination, it is assumed that “the page fault key” of claim 4 refers to “a page fault key in a mapping table” from claim 1.
Claim 18 is rejected for dependence on claim 4.
Claim 12 recites “the page fault key”, but this lacks proper antecedent basis, as it is unclear whether this draws antecedent basis from “a page fault key in a mapping table” in claim 9 associated with the memory address determination, or “different page fault keys” recited in claim 12. While no language suggestion is provided here, for the purpose of examination, it is assumed that “the page fault key” of claim 12 refers to “a page fault key in a mapping table” from claim 9.
Claim 13 recites “the page fault key”, but this lacks proper antecedent basis, as it is unclear whether this refers to “a page fault key in a mapping table” in claim 9 associated with the memory address determination, or “mapped by a negotiation key in the mapping table to a page fault key” in claim 13. While no language suggestion is provided here, for the purpose of examination, it is assumed that “the page fault key” of claim 13 refers to “a page fault key in a mapping table” from claim 9.
The following is a quotation of 35 U.S.C. 112(d):
(d) REFERENCE IN DEPENDENT FORMS.—Subject to subsection (e), a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
The following is a quotation of pre-AIA 35 U.S.C. 112, fourth paragraph:
Subject to the following paragraph [i.e., the fifth paragraph of pre-AIA 35 U.S.C. 112], a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
Claims 2, 3, and 6 are rejected under 35 U.S.C. 112(d) or pre-AIA 35 U.S.C. 112, 4th paragraph, as being of improper dependent form for failing to further limit the subject matter of the claim upon which it depends, or for failing to include all the limitations of the claim upon which it depends.
As discussed in the claim interpretation discussion above, claims 2, 3, and 6 have been interpreted to recite contingent limitations where the conditions are not required within performance of the broadest reasonable interpretation of the claim and therefore the contingent limitations are not required. As such, claims 2, 3, and 6 effectively recite no limitations to further limit the subject matter of either claim 1 or claim 5 from which they depend.
Applicant may cancel the claims, amend the claims to place the claims in proper dependent form, rewrite the claims in independent form, or present a sufficient showing that the dependent claims complies with the statutory requirements. Addressing the contingent nature of the limitations as discussed in the claim interpretation section would be sufficient to address this rejection.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-3, 5, and 6 are rejected under 35 U.S.C. 103 as being unpatentable over Tsirkin et al. (US 2023/0140827) in view of Waskiewicz et al. (WO 2019/089131).
Regarding claim 1, Tsirkin teaches a hypercall method for a kernel-mode program of a Berkeley packet filter, which is applied to a virtual machine monitor (“The hypervisor 120 may associate a hypercall parameter (e.g., identifier, index value, etc.) with the location data of a memory location 138. The hypervisor 120 may transmit a notification including the hypercall parameter to the user space process 134 to cause the user space process 134 to use the hypercall parameter when invoking a hypercall,” [0037], teaching a hypercall at a hypervisor, where “The hypervisor can execute the processing program on the processor that received the packet. Alternatively, if the guest virtual machine has specified one or more processors for the satisfied criterion, then the hypervisor can forward the packet to one of the specified processors, which can execute the processing program. If more than one processor is associated with the criterion, the hypervisor can select one of the processors using a suitable processor allocation policy. The packet processing program can be, for example, a Berkeley packet filter (BPF) and/or Express Data Path (XDP) program, which can be a sequence of bytecode operations,” [0015] teaches the use of a Berkeley packet filter, and “At least one of the multiple portions may be associated with enhanced privileges and may be accessed by processes with enhanced privileges (e.g., kernel mode, kernel privilege) and another portion may be associated with diminished privileges and may be accessed by processes with diminished privileges (e.g., user space mode, user space privilege) as well as processes with enhanced privileges. In one example, the portion of guest data storage 136 associated with the enhanced privileges may be designated as kernel space and the portion of guest data storage 136 associated with the diminished privileges may be designated as user space. In other examples, there may be more or less than two portions of guest data storage 136,” [0024] teaches kernel mode programs specifically), where the limitations have been identified as contingent and not required within broadest reasonable scope of claim 1.
Tsirkin fails to teach the use of extended Berkeley packet filters specifically, as Tsirkin just discloses the use of BPF.
Waskiewicz’s disclosure relates to providing programming technologies for processing packets, particularly using BPF and eBPF, and as such comprises analogous art.
As part of this disclosure, Waskiewicz discloses that computing devices utilize BPF for packet filtering, and that “For example, the Linux operating system includes Linux socket filtering (LSF), which is derived from BPF. Internally, the Linux kernel may execute programs using a different instruction with similar underlying principles to BPF, known as extended BPF (eBPF) or internal BPF. Typical computing devices execute eBPF programs in software using the processor of the computing device” [0002].
An obvious modification can be identified: incorporating Waskiewicz’s disclosure of eBPF as a derivative instruction set into Tsirkin’s hypervisor. Such a modification reads upon the use of eBPF in the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Waskiewicz’s disclosure of eBPF into Tsirkin’s hypervisor, as eBPF provides for a modified internal instruction set specifically for the underlying kernel, allowing for specific functions unique to the kernel, while still using similar underlying principles to BPF, see [0002].
As claims 2 and 3 are identified as failing to further limit the subject matter of claim 1, claims 2 and 3 are rejected according to the same rationale of claim 1.
Regarding claim 5, Tsirkin teaches a hypercall method for a kernel-mode program of an extended Berkeley packet filter, which is applied to the kernel-mode program (“The hypervisor 120 may associate a hypercall parameter (e.g., identifier, index value, etc.) with the location data of a memory location 138. The hypervisor 120 may transmit a notification including the hypercall parameter to the user space process 134 to cause the user space process 134 to use the hypercall parameter when invoking a hypercall,” [0037], teaching a hypercall at a hypervisor, where “The hypervisor can execute the processing program on the processor that received the packet. Alternatively, if the guest virtual machine has specified one or more processors for the satisfied criterion, then the hypervisor can forward the packet to one of the specified processors, which can execute the processing program. If more than one processor is associated with the criterion, the hypervisor can select one of the processors using a suitable processor allocation policy. The packet processing program can be, for example, a Berkeley packet filter (BPF) and/or Express Data Path (XDP) program, which can be a sequence of bytecode operations,” [0015] teaches the use of a Berkeley packet filter, and “At least one of the multiple portions may be associated with enhanced privileges and may be accessed by processes with enhanced privileges (e.g., kernel mode, kernel privilege) and another portion may be associated with diminished privileges and may be accessed by processes with diminished privileges (e.g., user space mode, user space privilege) as well as processes with enhanced privileges. In one example, the portion of guest data storage 136 associated with the enhanced privileges may be designated as kernel space and the portion of guest data storage 136 associated with the diminished privileges may be designated as user space. In other examples, there may be more or less than two portions of guest data storage 136,” [0024] teaches kernel mode programs specifically), where the limitations have been identified as contingent and not required within the broadest reasonable scope of claim 5.
Tsirkin fails to teach the use of extended Berkeley packet filters specifically, as Tsirkin just discloses the use of BPF.
Waskiewicz’s disclosure relates to providing programming technologies for processing packets, particularly using BPF and eBPF, and as such comprises analogous art.
As part of this disclosure, Waskiewicz discloses that computing devices utilize BPF for packet filtering, and that “For example, the Linux operating system includes Linux socket filtering (LSF), which is derived from BPF. Internally, the Linux kernel may execute programs using a different instruction with similar underlying principles to BPF, known as extended BPF (eBPF) or internal BPF. Typical computing devices execute eBPF programs in software using the processor of the computing device” [0002].
An obvious modification can be identified: incorporating Waskiewicz’s disclosure of eBPF as a derivative instruction set into Tsirkin’s hypervisor. Such a modification reads upon the use of eBPF in the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Waskiewicz’s disclosure of eBPF into Tsirkin’s hypervisor, as eBPF provides for a modified internal instruction set specifically for the underlying kernel, allowing for specific functions unique to the kernel, while still using similar underlying principles to BPF, see [0002].
As claim 6 is identified as failing to further limit the subject matter of claim 5, claim 6 is rejected according to the same rationale of claim 5.
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Tsirkin in view of Waskiewicz and further in view of Hazra et al. (US 9,697,027) and Wibling et al. (US 2009/0144510).
The combination of Tsirkin and Waskiewicz teaches the method according to claim 1, but fails to teach the method further comprising:
Acquiring, based on identity information of a virtual machine where the virtual machine monitor is located, a mapping table maintained by an extended Berkeley packet filter in the virtual machine.
Examiner notes the modifying limitation has been identified as reciting a contingent limitation not required in the broadest reasonable scope of claim 4 and as such is not addressed.
Hazra’s disclosure is related to hypercall security for hypervisors and as such comprises analogous art.
As part of this disclosure, Hazra discloses that “Specifically, in some embodiments, the hypervisor includes a respective hypercall table that maps hypercalls for a respective host machine and guest machine to hypercall handlers,” Col. 1, Lines 53-56, “In some embodiments, a hypervisor includes a respective hypercall table that maps hypercalls for a respective host machine and guest machine to hypercall handlers,” Col. 2, Lines 31-33, “At Block 420, as part of these operations, a hypercall table is obtained that maps hypercalls from a respective host machine 110 and/or guest machine 120 to hypercall handlers. It will be understood that a hypercall table may be thought of as a map between hypercalls and hypercall handlers, and may be embodied in the form of linked list or other relational construct, and may also be referred to as a Hypercall Access Table. For purposes of understanding, a hypercall table may be analogized to a system call table that is used in a non-virtualized environment,” Col. 7, Lines 15-25.
An obvious modification can be identified: incorporate Hazra’s disclosure of a mapping table associated with a hypervisor into Tsirkin’s hypervisor. Such a modification reads upon acquiring a mapping table for the virtual machine monitor, and as Tsirkin discloses the use of BPF for packet processing programs and Waskiewicz disclose the use of eBPF in the kernel level, then the combination teaches the storage of the data structure using eBPF.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Hazra’s hypercall table into Tsirkin’s hypervisor, as this provides a data structure that will help aid in performing/processing hypercalls via the hypercall handlers.
The combination of Tsirkin, Waskiewicz, and Hazra still fail to teach the acquisition of the table based on the identity of the virtual machine on which the VMM is located. All three references depict the hypervisor as a separate layer of the virtualized environment from the virtual machines.
Wibling’s disclosure relates to VM management and as such comprises analogous art.
As part of this disclosure, Wibling discloses a virtualized environment where multiple guest OS/virtual machines can operate, each with their own respective hypervisor, see Fig. 2 showing guest OS 1/context 1 associated with VMM 1, and guest OS 2/context 2 associated with VMM 2, see also [0035] providing a unique identifier for each context, including the virtual machine and VMM.
An obvious modification can be identified: incorporating multiple hypervisors as disclosed by Wibling into Tsirkin’s hypervisor system. Such a modification reads upon the limitation of the claim, as providing for a hypercall table for a hypervisor, as disclosed by Hazra, would necessarily duplicate for the multiple hypervisors as disclosed by Wibling, and therefore acquiring a mapping table would depend on which hypervisor is under consideration, reading upon the claim.
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate Wibling’s unique hypervisor for each virtual machine, as this provides a broader level of customization for each virtual machine and the hypervisor’s ability to virtualize physical resources for the virtual machines, see [0034].
Allowable Subject Matter
Claims 9-11, 14-16, 19, and 20 are allowed.
Claim 12, 13, 17, and 18 would be allowable if rewritten to overcome the rejection(s) under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), 2nd paragraph, set forth in this Office action and to include all of the limitations of the base claim and any intervening claims.
The following is an examiner’s statement of reasons for allowance:
Claim 9 recites operations of:
acquiring, in response to a virtualization page fault triggered by the kernel-mode program, a memory address where the virtualization page fault is triggered;
determining whether the memory address of the virtualization page fault is consistent with a memory address corresponding to a page fault key in a mapping table, wherein the mapping table records a mapping relationship between a key-value pair, the page fault key is a key in the mapping table determined jointly by the kernel-mode program and the virtual machine monitor, and each key in the mapping table uniquely corresponds to one memory address;
reading, from the mapping table, a page fault value mapped by the page fault key if the memory address of the virtualization page fault is consistent with the memory address corresponding to the page fault key, wherein the page fault value comprises a function type of a hypercall written by the kernel-mode program before the virtualization page fault is triggered; and
executing, based on the function type indicated by the page fault value, the hypercall of the function type.
Claim 10 recites “A non-transitory computer-readable storage medium, wherein in a case where instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the method according to claim 1”, where the method according to claim 1 is identical to the operations of claim 9 identified above.
Claim 14 recites an electronic device, wherein the processor is configured to execute the processor-executable instructions to perform the method of claim 5, where claim 5 recites
reading, in response to a hypercall instruction, a negotiation value mapped by a negotiation key in a mapping table maintained by the extended Berkeley packet filter; wherein the mapping table records a mapping relationship between a key-value pair, and the negotiation value comprises a value written in advance by a virtual machine monitor for indicating a page fault key, and the negotiation key and the page fault key are keys in the mapping table determined jointly by the kernel-mode program and the virtual machine monitor;
querying, based on the negotiation value, the page fault key mapped in the mapping table; and
writing a function type of a hypercall specified in the hypercall instruction into a page fault value mapped by the page fault key, thereby triggering a virtualization page fault, to cause the virtual machine monitor to execute, in response to the virtualization page fault, based on the function type indicated by the page fault value, the hypercall of the function type.
Claim 19 recites “A non-transitory computer-readable storage medium, wherein in a case where instructions In the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the method according to claim 5,” where the method according to claim 5 is also identified above with respect to claim 14.
With regards to claims 9 and 10, the concept of processing page faults is not unique, see Cholleti et al. (US 2007/0288720), Jaeger (US 2017/0168963), Tsirkin (US 2019/0370044), Weimer (US 2019/0377574), Saroka et al. (EP 0115877), Ahn et al. (KR 20170127666), Jiang et al. (WO 2021/249193), Stein et al. (WO 2022/054041). The concept of different types of hypercall functions is not unique, see Wibling (as cited in the obviousness rejection), Epstein (US 8,984,478), Tsirkin et al. (US 2020/0073689), Laplace et al. (US 2021/0224089), Tsirkin et al. (US 2021/0342176), . The concept of key-value mapping tables for a virtualization context is not novel, see Durrant et al. (US 2013/0282776).
However, the claims require a specific relation between page faults and the hypercalls, where the memory address of the triggered virtualization page fault is consistent with a memory address of the mapping table based on a page fault key, and the value in the mapping table associated with the page fault key/memory address is the function type of the hypercall. None of the references provide a disclosure capable of rendering this relationship obvious, leading to a determination of allowance.
With regards to claims 14 and 19, the claims recite a corollary for claims 9 and 10, where claims 9 and 10 focus on actually executing the hypercall, and claims 14 and 19 recite writing a function type of a hypercall into a page fault value. As claims 14 and 19 contain that same specific relationship between the topics of hypercalls and page fault, then claims 14 and 19 are considered to require the same specific relationship discussed in claims 9 and 10, and consequently are similarly considered allowed for a lack of references to render this feature obvious.
Claims 11, 15, 16, and 20 are allowed for dependence on claims 9, 14, 10, and 19 respectively.
While claims 12, 13, 17, and 18 are rejected under 35 U.S.C. 112(b), they depend on allowed claims and as such would be allowed over the prior art if the indefiniteness rejections are addressed.
Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Cholleti, Jaeger, Tsirkin, Weimer, Saroka, Ahn, Jiang, Stein, Epstein, Tsirkin, Laplace, Tsirkin, Durrant, as cited above,
Tuch et al. (US 2015/0370590), Tsirkin (US 2021/0303325), Tsirkin et al. (US 2022/0066808), discusses hypercall parameters,
Tsirkin (US 2020/0167086), Davidovich et al. (US 2020/0298870), discloses hypercalls and managing page tables,
Dabak et al. (US 2021/0389965) discloses authenticating hypercalls,
Shinde et al. (US 2023/0025126) discloses managing a key value formatted data in the context of hypercalls,
Tsirkin et al. (US 2023/0393874) provides a close context to the claimed invention, handling page faults in the context of virtual machines, including discussion on hypervisors and hypercalls,
Wang et al. (WO 2023/165308) discusses utilizing eBPF in paravirtualization contexts,
Jin et al. (“FTXen: Making Hypervisor Resilient to Hardware Faults on Relaxed Cores”) discloses managing page faults in hypervisors and utilizing specific hypercall handlers for different virtual machines,
Rommel et al. (“Multiverse: Compiler-Assisted Management of Dynamic Variability in Low-Level System Software”) discloses kernel software including hypercalls and the use of eBPF,
Proskurin et al. (“xMP: Selective Memory Protection for Kernel and User Space”) discloses providing a virtualization environment, including the use of different hypercall functions.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AARON D HO whose telephone number is (469)295-9093. The examiner can normally be reached Mon-Fri 8:00-4:00 CT.
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, Reginald Bragdon can be reached at (571)272-4204. 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.
/A.D.H./Examiner, Art Unit 2139
/REGINALD G BRAGDON/Supervisory Patent Examiner, Art Unit 2139