SAFE EXECUTION OF VIRTUAL MACHINE CALLBACKS IN A HYPERVISOR

    公开(公告)号:US20180321963A1

    公开(公告)日:2018-11-08

    申请号:US15588392

    申请日:2017-05-05

    Applicant: VMware, Inc.

    Abstract: A hypervisor communicates with a guest operating system running in a virtual machine supported by the hypervisor using a hyper-callback whose functions are based on the particular guest operating system running the virtual machine and are triggered by one or more events in the guest operating system. The functions are modified to make sure they are safe to execute and to allow only limited access to the guest operating system. Additionally, the functions are converted to byte code corresponding to a simplified CPU and memory model and are safety checked by the hypervisor when registered with the hypervisor. The functions are executed by the hypervisor without any context switch between the hypervisor and guest operating system, and when executed, provide information about the particular guest operating system, allowing the hypervisor to improve operations such as page reclamation, virtual CPU scheduling, I/O operations, and tracing of the guest operating system.

    TARGET INJECTION SAFE METHOD FOR INLINING REGISTRATION CALLS

    公开(公告)号:US20210011738A1

    公开(公告)日:2021-01-14

    申请号:US16746731

    申请日:2020-01-17

    Applicant: VMware, Inc.

    Abstract: A method of redirecting an indirect call in a callback list associated with a list of functions that are registered, includes the steps of: upon registering the list of functions, determining a list of function pointers, each of which corresponds to an address in an associated callback; for each function pointer in the list of function pointers, adding a direct call instruction to the registration trampoline corresponding to the associated callback of the function pointer; and upon invoking the associated callback of one of the function pointers in the list of function pointers, invoking the corresponding direct call instruction in the registration trampoline.

    TARGET INJECTION SAFE METHOD FOR DYNAMICALLY INLINING BRANCH PREDICTIONS

    公开(公告)号:US20210011728A1

    公开(公告)日:2021-01-14

    申请号:US16521407

    申请日:2019-07-24

    Applicant: VMware, Inc.

    Abstract: A method for redirecting an indirect call in an operating system kernel to a direct call is disclosed. The direct calls are contained in trampoline code called an inline jump switch (IJS) or an outline jump switch (OJS). The IJS and OJS can operate in either a use mode, redirecting an indirect call to a direct call, a learning and update mode or fallback mode. In the learning and update mode, target addresses in a trampoline code template are learned and updated by a jump switch worker thread that periodically runs as a kernel process. When building the kernel binary, a plug-in is integrated into the kernel. The plug-in replaces call sites with a trampoline code template containing a direct call so that the template can be later updated by the jump switch worker thread.

    TARGET INJECTION SAFE METHOD FOR INLINING INSTANCE-DEPENDENT CALLS

    公开(公告)号:US20210011722A1

    公开(公告)日:2021-01-14

    申请号:US16521396

    申请日:2019-07-24

    Applicant: VMware, Inc.

    Abstract: A method for redirecting indirect calls to direct calls on a per-process basis includes accessing a memory code region of an operating system kernel that has a different mapping for each of one or more user processes running on the operating system kernel. The memory code region stores a first trampoline that refers directly to a second trampoline, which is an inline or outline trampoline that is correlated with a particular user process. Executing the first trampoline invokes the second trampoline, as a result of which the indirect calls are redirected to direct calls.

Patent Agency Ranking