-
公开(公告)号:US20230195533A1
公开(公告)日:2023-06-22
申请号:US17559625
申请日:2021-12-22
Applicant: VMware, Inc.
Inventor: Yury BASKAKOV , Ying YU , Anurekh SAXENA , Arunachalam RAMANATHAN , Frederick Joseph JACOBS , Giritharan RASHIYAMANY
IPC: G06F9/50 , G06F12/1009 , G06F12/0882 , G06F12/02
CPC classification number: G06F9/5077 , G06F9/5016 , G06F12/1009 , G06F12/0882 , G06F12/0238 , G06F2212/7201
Abstract: A method of populating page tables of an executing workload during migration of the executing workload from a source host to a destination host includes the steps of: during transmission of memory pages of the executing workload from the source host to the destination host, populating the page tables of the workload at the destination host, wherein the populating comprises inserting mappings from virtual addresses of the workload to physical addresses of system memory of the destination host for all of the memory pages of the executing workload; and upon completion of transmission of all of the memory pages of the workload, resuming the workload at the destination host.
-
公开(公告)号:US20210011738A1
公开(公告)日:2021-01-14
申请号:US16746731
申请日:2020-01-17
Applicant: VMware, Inc.
Inventor: Nadav AMIT , Frederick Joseph JACOBS , Michael WEI
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.
-
公开(公告)号:US20210011728A1
公开(公告)日:2021-01-14
申请号:US16521407
申请日:2019-07-24
Applicant: VMware, Inc.
Inventor: Nadav AMIT , Frederick Joseph JACOBS , Michael WEI
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.
-
公开(公告)号:US20230023452A1
公开(公告)日:2023-01-26
申请号:US17384382
申请日:2021-07-23
Applicant: VMware, Inc.
Inventor: Yury BASKAKOV , Ying YU , Anurekh SAXENA , Arunachalam RAMANATHAN , Frederick Joseph JACOBS , Giritharan RASHIYAMANY
Abstract: A method of populating page tables of an executing workload during migration of the executing workload from a source host to a destination host includes the steps of: before resuming the workload at the destination host, populating the page tables of the workload at the destination host, wherein the populating comprises inserting mappings from virtual addresses of the workload to physical addresses of system memory of the destination host; and upon completion of populating the page tables, resuming the workload at the destination host.
-
公开(公告)号:US20210011722A1
公开(公告)日:2021-01-14
申请号:US16521396
申请日:2019-07-24
Applicant: VMware, Inc.
Inventor: Nadav AMIT , Frederick Joseph JACOBS , Michael WEI
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.
-
-
-
-