Patents by Inventor Xin David ZHANG

Xin David ZHANG has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20240411580
    Abstract: The state of an interrupt is identified. An eligibility value corresponding to the interrupt is generated based on the state of the interrupt. The eligibility value is indicative of whether the interrupt should be processed by a first processing path or a second processing path, the second processing path being lower latency than the first processing path, and the second processing path bypassing operations performed in the first processing path. When an interrupt is received at an assembly language processing system, from a hardware device, the assembly language processing system accesses the eligibility value corresponding to the interrupt and routes the interrupt to the first or second processing path based on the eligibility value.
    Type: Application
    Filed: June 30, 2023
    Publication date: December 12, 2024
    Inventors: Rian Patrick QUINN, Xin David ZHANG
  • Publication number: 20240385867
    Abstract: A method for multiplexing access of the performance monitoring hardware in different modes includes providing a first mode at one or more guest partitions and providing a second mode at a management partition. Each of one or more guest partitions and the management partition is a virtual machine managed by a hypervisor. The first mode enables a guest partition access to the performance monitoring hardware for a corresponding partition. The second mode enables a management partition access to the performance monitoring hardware for at least one guest partition. The first mode has a first priority, and the second mode has a second priority that is lower than the first priority, such that when the first mode at a particular guest partition is enabled, the corresponding second mode at the management partition is automatically disabled.
    Type: Application
    Filed: June 13, 2022
    Publication date: November 21, 2024
    Inventors: Bruce John SHERWIN, Jr., Shishir CHAWLA, Xin David ZHANG, Robert S. CHAPPELL, Daniel Sebastian BERGER
  • Publication number: 20240354138
    Abstract: Method, systems, and computer program products for managing a processor power management feature on behalf of a virtual machine (VM). A device may determine that a VM operating at a computer system possesses a power management entitlement. The device may identify an architectural power management feature available at a physical processor core of a processor system. The physical processor core is associated with a virtual processor core of the VM. Based on the VM possessing the power management entitlement, the device may present an interface to the VM. The interface exposes the architectural power management feature to the VM. The device may identify a request from the VM to modify a state of the architectural power management feature. Based on the request, the device may modify the state of the architectural power management feature at the physical processor core.
    Type: Application
    Filed: April 18, 2023
    Publication date: October 24, 2024
    Inventors: Bruce J. SHERWIN, JR., Xin David ZHANG, Yimin DENG
  • Publication number: 20240241943
    Abstract: A computer system supports a nested isolation host. The computer system operates a hypervisor that creates a virtualized interface to a security module that is configured to provide hardware-based virtual machine isolation functionality, and that creates a child partition that comprises a nested hypervisor. The hypervisor presents the virtualized interface to the child partition. Based on receiving a command at the virtualized interface from the nested hypervisor, the hypervisor performs one of (i) modifying the command and forwarding a modified command to the security module, (ii) forwarding the command to the security module, or (iii) blocking the command.
    Type: Application
    Filed: July 13, 2022
    Publication date: July 18, 2024
    Inventors: Bruce John SHERWIN, Jr., Alexander Daniel GREST, Xin David ZHANG, David Alan HEPKIN, Aditya BHANDARI
  • Publication number: 20240211288
    Abstract: Hierarchical virtualization creates a child guest partition that shares a hypervisor with a parent guest partition. A hypervisor receives a request, from a first guest partition that operates at the hypervisor, to create a second guest partition as a child of the first guest partition. The hypervisor identifies a configuration specification for the second guest partition, which includes (1) an identification of a memory portion, which is allocated to the first guest partition, that is to be mapped into the second guest partition; and (2) a configuration of a virtual processor that is to be utilized by the second guest partition. The hypervisor creates the second guest partition based on the configuration specification.
    Type: Application
    Filed: December 21, 2022
    Publication date: June 27, 2024
    Inventors: Alexander Daniel GREST, David Alan HEPKIN, Bruce J. SHERWIN, JR., Matthew Jordan SEBEK, Sai Ganesh RAMACHANDRAN, Xin David ZHANG
  • Publication number: 20230401081
    Abstract: Isolating resources of a virtual machine (VM) guest from a host operating system. A computer system receives an acceptance request from a guest partition corresponding to an isolated VM. The acceptance request identifies a guest memory page that is mapped into a guest physical address space of the guest partition, and a memory page visibility class. The computer system determines whether a physical memory page that is mapped to the guest memory page meets the memory page visibility class. The computer system sets a page acceptance indication for the guest memory page from an unaccepted state to an accepted state based on the physical memory page meeting the memory page visibility class.
    Type: Application
    Filed: June 10, 2022
    Publication date: December 14, 2023
    Inventors: Jin LIN, David Alan HEPKIN, Michael Bishop EBERSOL, Stephanie Sumyi LUCK, Jonathan Edward LANGE, Bruce J. SHERWIN, JR., Kevin Michael BROAS, Wen Jia LIU, Xin David ZHANG, Alexander Daniel GREST
  • Patent number: 11487574
    Abstract: This disclosure generally relates to enabling a hypervisor of a host machine to provide virtual interrupts to select virtual processors or a set of virtual processors. More specifically, the present disclosure describes how interrupts may be provided to targeted virtual processors, regardless of where the virtual processors are currently executing. That is, when an interrupt is received, the interrupt may be delivered to a specified virtual processor regardless of which logical processor is currently hosting the virtual processor.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: November 1, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Publication number: 20210279095
    Abstract: This disclosure generally relates to enabling a hypervisor of a host machine to provide virtual interrupts to select virtual processors or a set of virtual processors. More specifically, the present disclosure describes how a hypervisor of a host machine may monitor the status of one or more virtual processors that are executing on the host machine and deliver interrupts to the virtual processors based on a number of factors including, but not limited to, a priority of the interrupt, a priority of the virtual processor, a current workload of the virtual processor and so on.
    Type: Application
    Filed: May 17, 2021
    Publication date: September 9, 2021
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG
  • Patent number: 11036541
    Abstract: This disclosure generally relates to enabling a hypervisor of a host machine to provide virtual interrupts to select virtual processors or a set of virtual processors. More specifically, the present disclosure describes how a hypervisor of a host machine may monitor the status of one or more virtual processors that are executing on the host machine and deliver interrupts to the virtual processors based on a number of factors including, but not limited to, a priority of the interrupt, a priority of the virtual processor, a current workload of the virtual processor and so on.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: June 15, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Patent number: 10712766
    Abstract: This disclosure generally relates to time and timer techniques that may be used to virtualize one or more virtual machines. In an example, it may be possible to save and restore a timer of a virtual machine while preserving timer information associated with the timer (e.g., an expiration time, whether the most recent expiration has been signaled, and the enable bit, etc.). For example, a first mode may enable restoring a timer based on a previously-existing enable bit, thereby retaining the state of the timer (e.g., whether the timer is programmed to fire and/or whether the most recent expiration has been signaled). By contrast, a second mode of setting a timer may automatically set the enable bit, thereby automatically enabling the timer to fire, as may be expected by a virtual machine when setting a timer.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: July 14, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Patent number: 10628202
    Abstract: This disclosure generally relates to hypervisor memory virtualization. Techniques disclosed herein improve peripheral component interconnect express (PCI-e) device interoperability with a virtual machine. As an example, when a direct-memory access request is received from a PCI-e device but the target memory is currently unmapped, an indication may be provided to a memory paging processor so as to page-in the memory, such that the PCI-e device may continue to function normally. In some examples, the access request may be buffered and replayed once the memory is paged-in, or the access request may be retried, among other examples.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: April 21, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Patent number: 10621342
    Abstract: Speculative side channels exist when memory is accessed by speculatively-executed processor instructions. Embodiments use uncacheable memory mappings to close speculative side channels that could allow an unprivileged execution context to access a privileged execution context's memory. Based on allocation of memory location(s) to the unprivileged execution context, embodiments map these memory location(s) as uncacheable within first page table(s) corresponding to the privileged execution context, but map those same memory locations as cacheable within second page table(s) corresponding to the unprivileged execution context. This prevents a processor from carrying out speculative execution of instruction(s) from the privileged execution context that access any of this memory allocated to the unprivileged execution context, due to the unprivileged execution context's memory being mapped as uncacheable for the privileged execution context.
    Type: Grant
    Filed: November 2, 2017
    Date of Patent: April 14, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kenneth D. Johnson, Sai Ganesh Ramachandran, Xin David Zhang, Arun Upadhyaya Kishan, David Alan Hepkin
  • Patent number: 10599461
    Abstract: This disclosure generally relates to hypervisor memory virtualization. In an example, multiple page table stages may be used to provide a page table that may be used by a processor when processing a workload for a nested virtual machine. An intermediate (e.g., nested) hypervisor may request an additional page table stage from a parent hypervisor, which may be used to virtualize memory for one or more nested virtual machines managed by the intermediate hypervisor. Accordingly, a processor may use the additional page table stages to ultimately translate a virtual memory address for a nested virtual machine to a physical memory address.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: March 24, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Patent number: 10503537
    Abstract: This disclosure generally relates to hypervisor memory virtualization. Techniques disclosed herein improve peripheral component interconnect express (PCI-e) device interoperability with a virtual machine. As an example, when a direct-memory access request is received from a PCI-e device but the target memory is currently unmapped, an indication may be provided to a memory paging processor so as to page-in the memory, such that the PCI-e device may continue to function normally. In some examples, the access request may be buffered and replayed once the memory is paged-in, or the access request may be retried, among other examples.
    Type: Grant
    Filed: January 19, 2018
    Date of Patent: December 10, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aditya Bhandari, Bruce J. Sherwin, Jr., Xin David Zhang
  • Publication number: 20190130102
    Abstract: Speculative side channels exist when memory is accessed by speculatively-executed processor instructions. Embodiments use uncacheable memory mappings to close speculative side channels that could allow an unprivileged execution context to access a privileged execution context's memory. Based on allocation of memory location(s) to the unprivileged execution context, embodiments map these memory location(s) as uncacheable within first page table(s) corresponding to the privileged execution context, but map those same memory locations as cacheable within second page table(s) corresponding to the unprivileged execution context. This prevents a processor from carrying out speculative execution of instruction(s) from the privileged execution context that access any of this memory allocated to the unprivileged execution context, due to the unprivileged execution context's memory being mapped as uncacheable for the privileged execution context.
    Type: Application
    Filed: November 2, 2017
    Publication date: May 2, 2019
    Inventors: Kenneth D. JOHNSON, Sai Ganesh RAMACHANDRAN, Xin David ZHANG, Arun Upadhyaya KISHAN, David Alan HEPKIN
  • Publication number: 20190087222
    Abstract: This disclosure generally relates to enabling a hypervisor of a host machine to provide virtual interrupts to select virtual processors or a set of virtual processors. More specifically, the present disclosure describes how interrupts may be provided to targeted virtual processors, regardless of where the virtual processors are currently executing. That is, when an interrupt is received, the interrupt may be delivered to a specified virtual processor regardless of which logical processor is currently hosting the virtual processor.
    Type: Application
    Filed: January 19, 2018
    Publication date: March 21, 2019
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG
  • Publication number: 20190087223
    Abstract: This disclosure generally relates to enabling a hypervisor of a host machine to provide virtual interrupts to select virtual processors or a set of virtual processors. More specifically, the present disclosure describes how a hypervisor of a host machine may monitor the status of one or more virtual processors that are executing on the host machine and deliver interrupts to the virtual processors based on a number of factors including, but not limited to, a priority of the interrupt, a priority of the virtual processor, a current workload of the virtual processor and so on.
    Type: Application
    Filed: January 19, 2018
    Publication date: March 21, 2019
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG
  • Publication number: 20190087217
    Abstract: This disclosure generally relates to hypervisor memory virtualization. In an example, translation lookaside buffer (TLB) invalidation requests may be selectively delivered to processors to which they relate or may be ignored by processors to which they do not relate, so as to minimize the processing overhead that may be ordinarily associated with such TLB invalidation requests. In another example, a TLB invalidation request may be suspended in order to enable a hypervisor to finish executing instructions relating to one or more TLB entries that would be affected by the TLB invalidation request.
    Type: Application
    Filed: January 19, 2018
    Publication date: March 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG
  • Publication number: 20190086948
    Abstract: This disclosure generally relates to time and timer techniques that may be used to virtualize one or more virtual machines. In an example, a plurality of host machines may each have clocks that operate at pre-determined or known frequencies, such that it may be possible to easily migrate a virtual machine from one host machine to another host machine using an offset, thereby providing consistent time information to the virtual machine. In some examples, a scale factor or multiplier may also be used in order to achieve a consistent frequency. For example, a first host machine may have a clock operating at 1 GHz, while a second host machine may have a clock operating at 500 MHz. In such an example, a multiplier may be used to double the frequency of the second host machine to match the clock of the first host machine, thereby providing consistent time information.
    Type: Application
    Filed: January 19, 2018
    Publication date: March 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG
  • Publication number: 20190087216
    Abstract: This disclosure generally relates to hypervisor memory virtualization. In an example, multiple page table stages may be used to provide a page table that may be used by a processor when processing a workload for a nested virtual machine. An intermediate (e.g., nested) hypervisor may request an additional page table stage from a parent hypervisor, which may be used to virtualize memory for one or more nested virtual machines managed by the intermediate hypervisor. Accordingly, a processor may use the additional page table stages to ultimately translate a virtual memory address for a nested virtual machine to a physical memory address.
    Type: Application
    Filed: January 19, 2018
    Publication date: March 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Aditya BHANDARI, Bruce J. SHERWIN, JR., Xin David ZHANG