-
公开(公告)号:US10817389B2
公开(公告)日:2020-10-27
申请号:US16256567
申请日:2019-01-24
申请人: VMware, Inc.
IPC分类号: G06F11/14
摘要: A module for rewriting application code as a failure-atomic transaction is disclosed. An application delineates a code fragment that is to become a failure-atomic transaction by writing a tx_begin( ) and tx_end( ) functions into its code. A module detects the tx_begin( ) and tx_end( ) functions and rewrites the code fragment as a failure-atomic transaction. The rewritten code is then available to be executed by the application. The rewritten code stores values and locations of stores to persistent memory locations so that the transaction can be either undone or redone in the case of an application error or a power failure. If the transaction is an undo type of transaction, the application can be rolled back to a state prior to the failure. If the transaction is a redo type of transaction, the application can be advanced to a correct state after the error.
-
公开(公告)号:US11573904B2
公开(公告)日:2023-02-07
申请号:US16256676
申请日:2019-01-24
申请人: VMware, Inc.
发明人: Jayneel Gandhi , Reto Achermann
IPC分类号: G06F12/00 , G06F13/00 , G06F12/1009 , G06F9/455 , G06F16/907 , G06F16/901 , G06F12/12
摘要: An example method of managing memory in a computer system implementing non-uniform memory access (NUMA) by a plurality of sockets each having a processor component and a memory component is described. The method includes replicating page tables for an application executing on a first socket of the plurality of sockets across each of the plurality of sockets; associating metadata for pages of the memory storing the replicated page tables in each of the plurality of sockets; and updating the replicated page tables using the metadata to locate the pages of the memory that store the replicated page tables.
-
公开(公告)号:US11099991B2
公开(公告)日:2021-08-24
申请号:US16256562
申请日:2019-01-24
申请人: VMware, Inc.
IPC分类号: G06F12/08 , G06F12/0817 , G06F12/0864
摘要: Described herein is a method for tracking changes to memory locations made by an application. In one embodiment, the application decides to start tracking and sends a list of virtual memory pages to be tracked to an operating system via an interface. The operating system converts the list of virtual memory pages to a list of physical addresses and sends the list of physical addresses to a hardware unit which performs the tracking by detecting write backs on a coherence interconnect coupled to the hardware unit. After the application ends tracking, the application requests a list of dirty cache lines. In response to the request, the operating system obtains the list of dirty cache lines from the hardware unit and adds the list to a buffer that the application can read. In other embodiments, the operating system can perform the tracking without the application making the request.
-
公开(公告)号:US20190179794A1
公开(公告)日:2019-06-13
申请号:US15836577
申请日:2017-12-08
申请人: VMware, Inc.
发明人: 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分类号: G06F15/17331 , G06F16/183
摘要: 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.
-
公开(公告)号:US20230161616A1
公开(公告)日:2023-05-25
申请号:US17533625
申请日:2021-11-23
申请人: VMware, Inc.
IPC分类号: G06F9/46 , G06F9/4401 , G06F9/445 , G06F9/54 , G06F9/455
CPC分类号: G06F9/461 , G06F9/4403 , G06F9/44505 , G06F9/545 , G06F9/45558
摘要: Systems and methods are described for communications across privilege domains within a central processing unit (“CPU”) core. The CPU core can store a kernel context associated with an operating system within the CPU. An application can request access to the CPU, and the CPU can load a user context associated with the application into the CPU. The CPU can execute instructions from the application while both the kernel context and the user context persist in the CPU. Because both contexts are stored on the CPU, the CPU can switch contexts without loading or unloading context data from memory.
-
公开(公告)号:US11068400B2
公开(公告)日:2021-07-20
申请号:US16256571
申请日:2019-01-24
申请人: VMware, Inc.
IPC分类号: G06F12/0831 , G06F12/109 , G06F9/50 , G06F11/07 , G06F12/0817
摘要: Disclosed is a technique in which an application can record changes it makes to physical memory. In the technique, the application specifies a virtual memory region which is converted to a plurality of cache lines, each of which is monitored for changes by a device connected to a coherence interconnect coupled to the processor caches. The application sends a start signal to start the logging process and an end signal to stop the process. During the logging process, when a change occurs to one of the cache lines, an undo entry corresponding to the change is created and entered into a transaction log residing in persistent memory. The transaction log containing the undo entries makes the set of changes recorded in the transaction log atomic. If a failure occurs, the recorded changes can be undone as if they never occurred.
-
公开(公告)号:US10706005B2
公开(公告)日:2020-07-07
申请号:US15836577
申请日:2017-12-08
申请人: VMware, Inc.
发明人: 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 , G06F16/182
摘要: 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.
-
公开(公告)号:US11231949B2
公开(公告)日:2022-01-25
申请号:US16048183
申请日:2018-07-27
申请人: VMware, Inc.
IPC分类号: G06F9/455 , G06F12/0862 , G06F12/0815 , G06F15/173
摘要: Disclosed are embodiments for migrating a virtual machine (VM) from a source host to a destination host while the virtual machine is running on the destination host. The system includes an RDMA facility connected between the source and destination hosts and a device coupled to a local memory, the local memory being responsible for memory pages of the VM instead of the source host. The device is configured to copy pages of the VM to the destination host and to maintain correct operation of the VM by monitoring coherence events, such as a cache miss, caused by the virtual machine running on the destination host. The device services these cache misses using the RDMA facility and copies the cache line satisfying the cache miss to the CPU running the VM. The device also tracks the cache misses to create an access pattern that it uses to predict future cache misses.
-
公开(公告)号:US11126464B2
公开(公告)日:2021-09-21
申请号:US16048178
申请日:2018-07-27
申请人: VMware, Inc.
IPC分类号: H04L29/12 , G06F9/50 , G06F15/173 , G06F12/0891 , G06F9/455 , H04L12/935 , H04L29/08
摘要: Disclosed is a method for performing write-back operations to maintain coherence of remote memories in a memory pool. When a local application makes a request for a page of memory that is in the memory pool but not local, a device obtains the page through its RDMA facility and thereafter keeps track of the page for any changes made by the application to the page by storing the page locally and monitoring cache coherency events of cache lines that make up the page. If a requested page become dirty, then periodically the dirty cache lines of the dirty page are written back to the remote memory from which the pages were obtained. In addition, all dirty cache lines are written back when the local memory storing the page becomes full or the application closes a region containing the page.
-
公开(公告)号:US11099871B2
公开(公告)日:2021-08-24
申请号:US16048182
申请日:2018-07-27
申请人: VMware, Inc.
IPC分类号: G06F9/455 , G06F12/0891
摘要: A virtual machine running on a source host is live migrated to a destination host. The source host includes a first processing node with a first processing hardware and a first memory, and a second processing node with a second processing hardware and a second memory. While the virtual machine is running on the first processing hardware, the second processing hardware tracks cache lines of the first processing hardware that become dirty as a result of write operations performed on one or more memory pages of the virtual machine. The dirty cache lines are copied to the destination host in units of a cache line or groups of cache lines.
-
-
-
-
-
-
-
-
-