-
公开(公告)号:US11055184B2
公开(公告)日:2021-07-06
申请号:US16226612
申请日:2018-12-19
Applicant: VMware, Inc.
Inventor: Michael Wei , Maithem Munshed , Anny Martinez Manzanilla , Zeeshan Altaf Lokhandwala , Saeed A Behnam , Medhavi Dhawan , Dahlia Malkhi
Abstract: A log unit provides a shared log for recording updates on data objects. Garbage collection is performed locally and in-place by the log unit. In a marking portion of the garbage collection process, the log unit identifies and marks log entries that record supersedable updates. In a deallocation portion of the process, the log unit deallocates at least portions of the marked log entries that contain supersedable updates.
-
公开(公告)号:US11016767B2
公开(公告)日:2021-05-25
申请号: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.
-
公开(公告)号:US11003471B2
公开(公告)日:2021-05-11
申请号:US16257510
申请日:2019-01-25
Applicant: VMware, Inc.
Inventor: Eric Schkufza , Michael Wei
IPC: G06F9/455 , G06F8/41 , G06F30/331
Abstract: A system and method are disclosed for executing a component of a design in a hardware engine. The component is compiled to include an interface that supports an ‘open_loop(n)’ function which, when invoked, requests that the hardware engine run for a specified number of steps before communicating with other hardware or software engines via a runtime system. After the compiled hardware component is transferred to the hardware engine, the hardware engine runs for the specified number of steps unless and until it encounters a system function, such as a ‘display(s)’ function, in the code of the component that requires the runtime system to intervene. The hardware engine pauses awaiting the completion of the system function and continues its execution. The ‘open_loop(n)’ operation of the hardware engine permits components in hardware engines to run at a speed close to the native speed of the target programmable hardware fabric.
-
公开(公告)号:US10997338B2
公开(公告)日:2021-05-04
申请号:US16257545
申请日:2019-01-25
Applicant: VMware, Inc.
Inventor: Eric Schkufza , Michael Wei
IPC: G06F30/331 , G06F111/20
Abstract: A system and method for executing a hardware component of a design are disclosed. The system and method execute hardware components that are constructed with a ‘display(s)’ function that permits the hardware component to display values “s” internal to the hardware component while the component is executing on a hardware engine. The values are displayed on a user output interface, such as a user terminal, supported by a runtime system controlling the execution of the hardware engine and thus allows the user to debug the component while it is executing on the hardware engine.
-
公开(公告)号:US20190243966A1
公开(公告)日:2019-08-08
申请号:US16004191
申请日:2018-06-08
Applicant: VMware, Inc.
Inventor: Michael Wei , Dan Tsafrir , Nadav Amit
IPC: G06F21/54 , G06F12/1009
Abstract: In accordance with embodiments of the present disclosure, a binary translator can perform address shifting on the binary code of an executing application. Address shifting serves to shift the addresses of memory operations that can access locations in the kernel address space into address locations in the user space, thus avoiding speculative access into the kernel address space.
-
公开(公告)号:US11561957B2
公开(公告)日:2023-01-24
申请号:US16875640
申请日:2020-05-15
Applicant: VMware, Inc.
Inventor: Maithem Munshed , Xin Li , Wenbin Zhu , Anny Martinez Manzanilla , Michael Wei
Abstract: Garbage collection processing in a distributed shared log system includes a client identifying obsoleted log entries for a shared data object. The client sends information associated with the identified obsoleted log entries to a shared log server. The shared log server receives information associated with obsoleted log entries from all clients in the distributed shared log system and uses the information to delete the obsoleted log entries. The shared log server can update a snapshot mark to indicate the earliest time that a snapshot of the shared log can be taken. The snapshot mark can be updated based on the information associated with obsoleted log entries.
-
公开(公告)号:US11461050B2
公开(公告)日:2022-10-04
申请号:US17153265
申请日:2021-01-20
Applicant: VMware, Inc.
Inventor: Amy Tai , Michael Wei
IPC: G06F3/06
Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for enforcing a decay policy for a data object. One of the methods includes receiving a request to store a data object in a storage device; obtaining a user policy identifying a lifetime of the data object; determining, using the lifetime of the data object, a voltage policy for a plurality of memory cells of the storage device, wherein: each of the plurality of memory cells will store one or more bits of the data object; the voltage policy identifies a voltage to provide each memory cell; and an expected time at which raw bit errors of the data object will cause the data object to decay is equal to a time point identified by the lifetime of the data object; and storing the data object in the storage device according to the determined voltage policy.
-
公开(公告)号:US10908912B1
公开(公告)日:2021-02-02
申请号: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.
-
公开(公告)号:US10713353B2
公开(公告)日:2020-07-14
申请号:US16016254
申请日:2018-06-22
Applicant: VMware, Inc.
Inventor: Michael Wei , Dan Tsafrir , Nadav Amit
Abstract: The present disclosure addresses the meltdown vulnerability resulting from speculative execution in a multi-core processing system. The operating system (OS) can be loaded for execution on one of several processing cores (OS core), while an application can be loaded for execution on another of the processing cores (application core). The OS core uses process page tables that map the entire kernel address space to physical memory. Conversely, the application core uses pages tables that map only a portion of the kernel address space to physical memory.
-
公开(公告)号:US20190179794A1
公开(公告)日:2019-06-13
申请号:US15836577
申请日:2017-12-08
Applicant: VMware, Inc.
Inventor: Michael Wei , Marcos Aguilera , Irina Calciu , Stanko Novakovic , Lalith Suresh , Jayneel Gandhi , Nadav Amit , Pratap Subrahmanyam , Xavier Deguillard , Kiran Tati , Rajesh Venkatasubramanian
IPC: G06F15/173 , G06F17/30
CPC classification number: G06F15/17331 , G06F16/183
Abstract: Exemplary methods, apparatuses, and systems include a distributed memory agent within a first node intercepting an operating system request to open a file from an application running on the first node. The request includes a file identifier, which the distributed memory agent transmits to a remote memory manager. The distributed memory agent receives, from the remote memory manager, a memory location within a second node for the file identifier and information to establish a remote direct memory access channel between the first node and the second node. In response to the request to open the file, the distributed memory agent establishes the remote direct memory access channel between the first node and the second node. The remote direct memory access channel allows the first node to read directly from or write directly to the memory location within the second node while bypassing an operating system of the second node.
-
-
-
-
-
-
-
-
-