Dpu-based rdma virtualization memory address translation, data transfer method and system

By switching between the virtual machine and the host machine to generate memory translation tables, the RDMA virtualization address translation process is simplified, the problem of low performance in the existing technology is solved, and the RDMA data transfer performance and system availability are improved.

CN119829480BActive Publication Date: 2026-03-27YUSUR TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-13
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing RDMA virtualization technology requires two layers of processing during address translation, resulting in poor performance and dependence on the IOMMU module, which limits its application scenarios.

Method used

A DPU-based RDMA virtualization memory address translation method is adopted. By switching between the virtual machine kernel and the host supervisor, a memory translation table is generated and configured, simplifying the address translation process and reducing the dependence on the IOMMU.

Benefits of technology

It improves RDMA data transfer performance, enhances system availability, simplifies the address translation process, and reduces hardware dependence.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119829480B_ABST
    Figure CN119829480B_ABST
Patent Text Reader

Abstract

The application provides a DPU-based RDMA virtualization memory address conversion and data transmission method and system, which comprises the following steps: a user process specifies a guest virtual address and a corresponding memory region. A virtual machine kernel generates a first memory conversion table, which records the conversion from the guest virtual address to a guest physical address. When a driver of a remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to a virtual machine supervisor. During the switching process, the guest physical address is converted into a host virtual address. The virtual machine supervisor obtains the mapping from the host virtual address to a host physical address through host system information, and obtains a second memory conversion table containing the conversion relationship from the guest virtual address to the host physical address. The execution control is switched back to the virtual machine kernel, and the second memory conversion table is configured to the remote direct memory access device DPU. The application can simplify address conversion, reduce hardware dependence, and improve RDMA performance.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of DPU and remote direct memory access, and particularly relates to a DPU-based RDMA virtualization memory address conversion and data transmission method and system. BACKGROUND

[0002] RDMA (Remote Direct Memory Access) is a high-efficiency network communication protocol, which is widely used in high-performance computing, big data processing, cloud computing, and distributed storage due to its low latency, high bandwidth, and kernel bypass advantages. Compared with traditional network transmission methods, RDMA can directly transfer data in memory, reducing CPU intervention, thereby reducing latency and improving throughput. This makes RDMA particularly suitable for application scenarios that require fast data interaction, such as financial transaction systems, scientific computing simulations, and real-time data analysis.

[0003] Virtualization is one of the key technologies for cloud computing, which abstracts physical resources (such as servers, storage, and networks) to create one or more independent and isolated virtual environments. Virtualization technology allows multiple virtual machines (VMs) to run on the same physical server, and each virtual machine can be regarded as an independent computing environment with its own operating system and applications. Therefore, virtualization provides better resource utilization, flexibility, and scalability, enabling enterprises to more effectively manage computing resources and quickly respond to changes in business requirements.

[0004] With the popularity of cloud computing, the demand for RDMA device virtualization functions has become increasingly common. When the RDMA virtualization function is enabled, an independent RDMA device can be created for each virtual machine. This not only ensures that each virtual machine can obtain exclusive and high-performance network access, but also enables efficient data transmission between different virtual machines. This approach greatly enhances the communication efficiency between virtual machines while retaining the advantages of RDMA technology, making it possible to achieve low latency and high bandwidth data transmission in a cloud environment. The combination of RDMA and virtualization not only improves the overall performance of cloud computing, but also provides developers and users with more powerful tools to cope with future complex computing challenges.

[0005] Current RDMA virtualization is implemented using VFIO (Virtual Function I / O). VFIO uses the IOMMU (Input / Output Memory Management Unit) to translate GPA (Guest Physical Address) into HPA (Host Physical Address) so that RDMA hardware can recognize and use the HPA. However, the address translation scheme of the current technology involves two layers of processing. First, GVA and GPA need to be converted to each other, and this layer is maintained by the RDMA hardware. Second, GPA needs to be converted to HPA, which requires the IOMMU module. Therefore, it cannot run on systems that do not support IOMMU, limiting its use cases. Furthermore, both of these conversions occur in the I / O path, directly affecting RDMA service performance. Summary of the Invention

[0006] In view of this, embodiments of the present invention provide a method and system for RDMA virtualization memory address translation and data transmission based on DPU, so as to eliminate the dependence of existing memory address translation on hardware devices and simplify the address translation process, thereby improving RDMA performance.

[0007] A first aspect of the present invention provides a method for RDMA virtualized memory address translation based on a DPU. This method is executed on a host of a data transmission node, the host being connected to a remote direct memory access device (DPU). The method includes the following steps:

[0008] The user process specifies the client virtual address and its corresponding memory region on the node where data transmission is to be performed;

[0009] The virtual machine kernel of the node generates a first memory translation table through the memory management unit. The first memory translation table records the translation relationship between the client virtual address and the client physical address.

[0010] When the driver of the remote direct memory access device obtains the first memory translation table, it triggers a preset instruction to switch execution control from the virtual machine kernel to the virtual machine supervisor on the host machine; during the switching process, the client physical address is converted to the host virtual address on the virtual machine supervisor.

[0011] The virtual machine monitor obtains the mapping of the guest virtual address to the host physical address by obtaining the host system information, and obtains a second memory translation table containing the conversion relationship of the guest virtual address to the host physical address;

[0012] The execution control is switched from the virtual machine monitor on the host machine to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device.

[0013] In some embodiments of the present application, the preset instruction is to write a preset base register address to the virtual machine kernel.

[0014] In some embodiments of the present application, the preset instruction is a system call instruction.

[0015] In some embodiments of the present application, the host system information includes process file system interface information, memory device file information, or application program interface call information.

[0016] The second aspect of the present application provides a DPU-based RDMA virtualization data sending method, which is used for executing on a host of a data transmission node, the host being connected to a remote direct memory access device, and the remote direct memory access device being a DPU, and the method comprising the following steps:

[0017] A user process of the sending node submits a remote direct memory access task and creates a work queue element; the work queue element includes a source data address of the sending node and a target address of a receiving node;

[0018] The remote direct memory access device of the sending node converts the guest virtual address of the source data address into a corresponding host physical address based on the second memory translation table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method;

[0019] The source data is read from the corresponding host physical address and encapsulated into a remote direct memory access protocol packet for sending to the receiving node.

[0020] In some embodiments of the present application, the remote direct memory access protocol packet format is InfiniBand, RoCE, or iWARP.

[0021] The third aspect of the present application provides a DPU-based RDMA virtualization data receiving method, which is used for executing on a host of a data transmission node, the host being connected to a remote direct memory access device, and the remote direct memory access device being a DPU, and the method comprising the following steps:

[0022] The receiving node receives a remote direct memory access protocol packet to obtain source data and a target address of the receiving node;

[0023] The remote direct memory access device of the receiving node converts the guest virtual address of the target address into a corresponding host physical address based on the second memory conversion table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method;

[0024] The source data is written into the corresponding host physical address.

[0025] The fourth aspect of the present application provides a DPU-based RDMA virtualization memory address conversion system, comprising a processor, a memory and computer instructions stored on the memory, the processor being configured to execute the computer instructions, and when the computer instructions are executed, the system implements the steps of the method according to any one of the above-mentioned methods.

[0026] The fifth aspect of the present application provides a computer readable storage medium, which stores a computer program, and when the computer program is executed by a processor, the steps of the method according to any one of the above-mentioned methods are implemented.

[0027] The sixth aspect of the present application provides a computer program product, comprising a computer program, and when the computer program is executed by a processor, the steps of the method according to any one of the above-mentioned methods are implemented.

[0028] The present application has at least the following beneficial effects:

[0029] The present application provides a DPU-based RDMA virtualization memory address conversion and data transmission method and system, which comprises: a user process specifying a guest virtual address and a corresponding memory region. A virtual machine kernel generates a first memory conversion table, which records the conversion of the guest virtual address to a guest physical address. When a driver program of a remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to a virtual machine supervisor. During the switching process, the guest physical address is converted to a host virtual address. The virtual machine supervisor obtains the mapping of the host virtual address to a host physical address through host system information, and obtains a second memory conversion table containing the conversion relationship of the guest virtual address to the host physical address. The execution control is switched back to the virtual machine kernel, and the second memory conversion table is configured to the remote direct memory access device DPU. The present application can simplify the address conversion process on the IO path in the RDMA virtualization data transmission process, and does not require the participation of an IOMMU module, thereby reducing the hardware dependence of RDMA virtualization data transmission, improving the usability and enhancing the performance of RDMA data transmission.

[0030] Additional advantages, objects, and features of the application will be set forth in part by the description that follows, and will become apparent to those skilled in the art upon examination of the following detailed description and drawings in which:

[0031] Those skilled in the art will appreciate that the objects and advantages of the application can be obtained by specific structures as specifically described below and as illustrated in the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS

[0032] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description, serve to explain the principles of the application.

[0033] Figure 1 Flow chart of the method for RDMA virtualization memory address conversion based on DPU in an embodiment of the application.

[0034] Figure 2 Flow chart of the method for RDMA virtualization memory address conversion based on DPU in an embodiment of the application.

[0035] Figure 3 Flow chart of the method for RDMA virtualization memory address conversion based on DPU in an embodiment of the application. DETAILED DESCRIPTION

[0036] In order to make the objects, technical solutions and advantages of the application clearer, the following will further describe the application in conjunction with the embodiments and drawings. Herein, the illustrative embodiments of the application and their descriptions are used to explain the application, but not as a limitation of the application.

[0037] It should be noted that, in order to avoid the application being obscured by unnecessary details, only the structures and / or processing steps closely related to the solutions according to the application are shown in the drawings, and other details not closely related to the application are omitted.

[0038] It should be emphasized that the terms "comprises / comprising" when used in this specification are taken to specify the presence of stated features, elements, steps or components, but do not preclude the presence or addition of one or more other features, elements, steps, components, or groups thereof.

[0039] It should be noted that, if not specifically stated, the term "connected" herein can not only mean direct connection, but also mean indirect connection with an intermediate.

[0040] In the following, embodiments of the application will be described with reference to the accompanying drawings. In the drawings, the same reference numerals represent the same or similar components, or the same or similar steps. It should be noted that, in order to avoid the application being obscured by unnecessary details, only the structures and / or processing steps closely related to the solutions according to the application are shown in the drawings, and other details not closely related to the application are omitted.

[0041] MR (Memory Region) is a core concept in RDMA technology, which refers to a block of memory region registered (or mapped) to an RDMA device, usually containing data that needs to be communicated. MR defines the starting address and length of the memory region, which is used to specify the source or destination of data in RDMA operations.

[0042] MR address translation refers to how to convert logical or virtual addresses to physical addresses in computer systems and virtualization technologies, especially in the interaction between processors and memory management units (MMU). Modern computer systems usually use virtual memory, which means that each program runs in its own virtual address space. The operating system maps virtual addresses to physical addresses through mechanisms such as page tables. When a program wants to access a certain memory address, the address is first treated as a virtual address. Through MR address translation, the operating system looks up the page table to find the corresponding physical address. The memory management unit (MMU) converts this virtual address to the actual physical address, so that the CPU can access the corresponding memory region.

[0043] One embodiment of the present application provides a DPU-based RDMA virtualization memory address translation method, which is used to execute on a host of a data transmission node, the host being connected to a remote direct memory access device, the remote direct memory access device being a DPU, the method comprising the following steps S101-S105:

[0044] Step S101: A user process specifies a guest virtual address and its corresponding memory region on a node preparing for data transmission.

[0045] Step S102: The virtual machine kernel of the node generates a first memory translation table through a memory management unit, the first memory translation table recording the conversion relationship from the guest virtual address to the guest physical address.

[0046] Step S103: When the driver of the remote direct memory access device obtains the first memory translation table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine monitor on the host. During the switching process, the guest physical address is converted to the host virtual address on the virtual machine monitor.

[0047] Step S104: The virtual machine monitor obtains the mapping from the host virtual address to the host physical address through the host system information, and obtains a second memory translation table containing the conversion relationship from the guest virtual address to the host physical address.

[0048] Step S105: Switch the execution control from the virtual machine monitor on the host to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device.

[0049] Specifically, in step S101, the guest virtual address (GVA) is the address seen by a program running inside a virtual machine. The guest virtual address is used when the program accesses memory. This address needs to be translated into a guest physical address (GPA) by the memory management unit (MMU) of the virtual machine.

[0050] In step S102, the memory management unit (MMU) is an important hardware component in a computer system responsible for address translation, memory protection, and virtual memory management. Its main function is to translate the virtual addresses used by programs into physical addresses and ensure memory isolation between different processes.

[0051] In step S103, the host machine is a physical computer or server that runs virtual machines in a virtualization environment. It provides computing resources such as CPU, memory, storage, and network to one or more virtual machines (VMs). The host machine usually has virtualization management software installed, which can create and manage virtual machines and allow them to share the hardware resources of the host machine.

[0052] In step S103, the host virtual address (HVA) is the virtual address used inside the host machine's operating system. The host machine's operating system, like the operating system inside the virtual machine, uses virtual memory management to map the host machine's program addresses (HVA) to the host machine's physical addresses (HPA).

[0053] In step S103, the virtual machine monitor (VMM) is a software layer or firmware that can create and manage virtual machines, allowing a physical computer to simulate multiple independent virtual computers. Each virtual machine can run its own operating system and applications, isolated from each other.

[0054] Since all the memory inside the virtual machine is allocated by the VMM, which is an application process on the host machine, the memory type allocated by the VMM is HVA (host virtual address). The VMM maintains the address mapping relationship between HVA and GPA. Therefore, in step S103, when the control is switched from the virtual machine kernel to the virtual machine monitor on the host machine, the guest physical address is translated into the host virtual address on the virtual machine monitor.

[0055] In step S104, the host physical address (HPA) is the real physical memory address, which belongs to the physical memory of the host computer. The GPA is mapped to this address with the help of virtualization software or hardware, so that the virtual machine can use the physical memory of the host computer.

[0056] In some embodiments of the present application, the preset instruction is: writing a preset base address register address to the virtual machine kernel.

[0057] In some embodiments of the present application, the preset instruction is: writing a preset base address register address to the virtual machine kernel.

[0058] Specifically, the base address register address (BAR) is a register in the device configuration space, which indicates the base address of the external hardware device mapped to the main memory address space. In some cases, the driver needs to write the BAR address to configure the virtualization device.

[0059] By writing the base address register address to the virtual machine kernel as the preset instruction triggering the control right to be switched from the virtual machine kernel to the virtual machine supervisor, for example, the address is 0x04 address of BAR0, when the driver writes this address, the virtual machine VM-EXIT is triggered, and the host kernel or the host user state VMM processing is returned. Because the IO command is a privileged instruction, the CPU cannot execute when running in the virtualization level, and needs to be VM-EXITed to return to the host kernel processing, and if the host kernel processing cannot be processed, the VMM processing is returned.

[0060] In some embodiments of the present application, the preset instruction is a system call instruction.

[0061] Specifically, the system call processing refers to that a developer defines a system call. When it is called, a privilege specification is run, a VM-EXIT is triggered, and the subsequent process is the same as the above-mentioned writing BAR triggering.

[0062] In some embodiments of the present application, the host system information includes: process file system interface information, memory device file information or application program interface call information.

[0063] The second aspect of the embodiment provides a DPU-based RDMA virtualization data sending method, which is used for executing on a host of a data transmission node, the host being connected with a remote direct memory access device, and the remote direct memory access device being a DPU, and the method comprises the following steps:

[0064] The user process of the sending node submits a remote direct memory access task and creates a work queue element, which includes a source data address of the sending node and a target address of the receiving node.

[0065] The remote direct memory access device of the sending node converts the guest virtual address of the source data address into a corresponding host physical address based on the second memory conversion table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method.

[0066] The source data is read from the corresponding host physical address and sent to the receiving node in the form of a remote direct memory access protocol packet.

[0067] In some embodiments of the present application, the remote direct memory access protocol packet format is InfiniBand, RoCE or iWARP.

[0068] InfiniBand is a high-bandwidth, low-latency network communication standard, mainly used in data center and high-performance computing (HPC) environments. RoCE is a technology that encapsulates the RDMA protocol in Ethernet frames, allowing efficient data transmission over Ethernet networks. iWARP is an RDMA implementation based on the TCP / IP protocol stack, allowing the use of RDMA over wide area networks (WAN) and local area networks (LAN).

[0069] The third aspect of the present embodiment provides a DPU-based RDMA virtualization data receiving method, which is used for executing on a host of a data transmission node, the host being connected to a remote direct memory access device, the remote direct memory access device being a DPU, and the method comprising the following steps:

[0070] The receiving node receives a remote direct memory access protocol packet to obtain source data and a target address of the receiving node;

[0071] The remote direct memory access device of the receiving node converts the guest virtual address of the target address into a corresponding host physical address based on the second memory conversion table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method.

[0072] The source data is written into the corresponding host physical address.

[0073] Another embodiment of the present application proposes an RDMA virtualization MTT management method. Through this method, the memory address mapping of RDMA can be realized on a system lacking an IOMMU module, the efficiency of address conversion can be improved, and the IO performance can be improved.

[0074] The current existing RDMA virtualization technology is implemented by using VFIO (Virtual Function I / O). VFIO can use IOMMU (Input / Output Memory Management Unit) to convert GPA (Guest Physical Address) into HPA (Host Physical Address). The process of the data transmission task of the prior art is as shown in Figure 2 The detailed processing flow includes steps S201-S209.

[0075] Step S201: enable IOMMU function on Host-A of node A and Host-B of node B.

[0076] Step S202: the user process of VM-A specifies GVA-A (start address) and length to create MR-A.

[0077] Step S203: the kernel on the virtual machine on VM-A generates MTT (Memory Translation Table) of MR-A by MMU (Memory Management Unit) table lookup, which describes the correspondence between GVA and GPA address. Since GPA is not necessarily continuous, there can be multiple entries in the MTT.

[0078] Step S204: the RDMA kernel driver on the virtual machine on VM-A configures MTT-A to the RDMA device.

[0079] Step S205: synchronize steps S202-S204, and the virtual machine RDMA device on node B also obtains MTT of MR-B.

[0080] Step S206: the user process of VM-A submits RDMA write task WQE (Work Queue Element), which contains the address of the local source data and the address of the opposite end, and the address type is GVA.

[0081] Step S207: the RDMA device on node A processes the submitted WQE. According to the configuration of MTT-A in step 3, the source data GVA (in the range of MR-A) in WQE is converted into GPA, and the GPA is converted into HPA through IOMMU, and the RDMA device reads the Payload (source data to be sent) through HPA.

[0082] Step S208: The RDMA device on node A encapsulates the RDMA protocol network packet (Infiband, RoCE, etc.) and sends it to node B, including the Payload and the opposite end GVA (in the scope of MR B) to be written.

[0083] Step S209: The RDMA on node B receives the network packet, obtains the Payload and GVA, and similarly to step 7, the RDMA first obtains the GPA by looking up MTT B, and then converts the GPA to HPA through IOMMU, and writes the Payload into HPA, completing the data transmission.

[0084] The above existing scheme mainly has two shortcomings:

[0085] Firstly, the performance is low: the address conversion of the existing scheme involves two layers of processing. Firstly, the GVA and GPA need to be converted to each other, which is maintained by the RDMA hardware. Secondly, the GPA needs to be converted to HPA, which is implemented by the IOMMU module. The conversion of the two layers occurs in the IO path, which will directly affect the performance of the RDMA business.

[0086] Secondly, external module dependency: the conversion of GPA to HPA requires the IOMMU module, which increases the external dependency of the RDMA virtualization environment, and cannot run on systems that do not support IOMMU, limiting the use scenario.

[0087] The technical scheme proposed in the embodiment registers the MR of the user process in the virtual machine, completes the address conversion from GVA to HPA, and configures the address conversion table directly to the RDMA hardware. Subsequent transmission and reception of the RDMA packet only needs one layer of address conversion, without the participation of IOMMU.

[0088] Specifically, in the execution process of the embodiment, after obtaining MTT-A, the scheme causes the virtual machine to execute VM-EXIT and return to the Host. The conversion from GPA to HPA is completed on the VMM (Virtual Machine Monitor, typically Qemu) on the Host, so that the complete mapping relationship MTT-A' of GVA and HPA can be obtained, and the table is configured to the RDMA hardware device.

[0089] The working process of the embodiment will be described in detail below. The conversion table MTT-A of GVA and GPA is the same as the prior art, and will not be described again. The detailed processing flow of the embodiment is as shown in Figure 3 , including steps S301-S305:

[0090] Step S301: The RDMA driver in the VMA gets MTT A, triggers the VM exit of the virtual machine by writing the fixed BAR address of the device, switches the CPU to run in the VMM, and the VMM gets to know that address translation needs to be started by the BAR address causing the VM exit.

[0091] Step S302: All the memory in the virtual machine is applied for by the VMM, and the VMM is a normal application process on the Host, the memory type applied for by the VMM is HVA, and the VMM maintains the address mapping relationship of HVA to GPA. Therefore, when the virtual machine VM exit switches to the VMM, the HVA can be obtained from the GPA.

[0092] Step S303: HPA is obtained from HVA. The linux system can use the / proc file system interface to query. Thus, the complete address translation of GVA to GPA is obtained, and MTT-A' is obtained.

[0093] Step S304: The VMM executes the VM entry, the CPU switches back to run in the virtual machine kernel, and the virtual machine kernel driver configures MTT A' to the RDMA hardware.

[0094] Step S305: Similarly, the peer node executes steps S302-S304 to obtain MTT-B'.

[0095] After the MR is registered, the IO flow process under the present scheme is as follows:

[0096] 1. The VMA user process submits the RDMA Write task wqe, and the wqe contains the address of the local source data and the address of the peer destination, and all the address types are GVA.

[0097] 2. The RDMA device of node A directly obtains HPA from MTT A' according to GVA, reads the Payload from HPA, encapsulates the RDMA protocol packet, and sends it to node B.

[0098] 3. Node B receives the RDMA protocol packet, obtains the Payload and GVA, obtains HPA according to MTT B', writes the Payload into HPA, and completes the data transmission.

[0099] In summary, the present application provides a DPU-based RDMA virtualization memory address conversion and data transmission method and system, which comprises: a user process specifying a guest virtual address and its corresponding memory region. A virtual machine kernel generates a first memory conversion table, which records the conversion of the guest virtual address to the guest physical address. When the driver program of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine supervisor. During the switching process, the guest physical address is converted to the host virtual address. The virtual machine supervisor obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory conversion table containing the conversion relationship of the guest virtual address to the host physical address. The execution control is switched back to the virtual machine kernel, and the second memory conversion table is configured to the remote direct memory access device DPU. The present application can simplify the address conversion process on the IO path in the RDMA virtualization data transmission process, and does not need the participation of the IOMMU module, thereby reducing the hardware dependence of the RDMA virtualization data transmission, and thus improving the availability and enhancing the RDMA data transmission performance.

[0100] Corresponding to the above method, the present application also provides a system, which comprises a computer device, the computer device comprising a processor and a memory, the memory storing computer instructions, and the processor being configured to execute the computer instructions stored in the memory, and the system implements the steps of the above method when the computer instructions are executed by the processor.

[0101] The present application also provides a computer readable storage medium storing a computer program, which is executed by a processor to implement the steps of the above edge computing server deployment method. The computer readable storage medium can be a tangible storage medium, such as a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a floppy disk, a hard disk, a removable storage disk, a CD-ROM, or any other form of storage medium known in the technical field.

[0102] Those of ordinary skill in the art will appreciate that the various illustrative components, systems and methods described in connection with the embodiments disclosed herein can be implemented as hardware, software, or both. The particular implementation is dependent on the specific application and design constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application. When implemented in hardware, for example, the hardware can comprise an electronic circuit, an Application Specific Integrated Circuit (ASIC), a suitable firmware, a plug-in, a functional card, etc. When implemented in software, the elements of the application are the program or code segments to perform a specific task. The program or code segments can be stored in a machine-readable medium, or transmitted by a carrier wave as data signals over a transmission medium or communication link.

[0103] It is to be understood that the application is not limited to the particular configurations and processes described herein and shown in the drawings. For simplicity, detailed descriptions of known methods and apparatuses are omitted so as not to obscure the disclosure. In the above-described embodiments, several specific steps are described and illustrated as examples. However, the method processes of the present application are not limited to the specific steps described and illustrated, and the order of the steps can be changed, or other steps can be added, or replaced, or eliminated, depending on the application.

[0104] In the present application, features described and / or illustrated with respect to one embodiment can be used in the same or a similar way in one or more other embodiments, and / or in combination with or instead of features of other embodiments.

[0105] The above description is only preferred embodiments of the present application, and is not intended to limit the present application. The embodiments of the present application can be variously changed and modified by those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the present application.

Claims

1. A method for RDMA virtualized memory address translation based on DPU, characterized in that, This method is executed on a host of a data transmission node, the host being connected to a remote direct memory access device (DPU), and the method includes the following steps: The user process specifies the client virtual address and its corresponding memory region on the node where data transmission is to be performed; The virtual machine kernel of the node generates a first memory translation table through the memory management unit. The first memory translation table records the translation relationship between the client virtual address and the client physical address. When the driver of the remote direct memory access device obtains the first memory translation table, it triggers a preset instruction to switch the execution control from the virtual machine kernel to the virtual machine supervisor on the host machine; during the switching process, the client physical address is converted to the host virtual address on the virtual machine supervisor. The virtual machine supervisor program obtains the mapping from the host virtual address to the host physical address through the host system information, and obtains a second memory translation table containing the translation relationship from the client virtual address to the host physical address; The execution control is switched from the virtual machine supervisor on the host machine to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device; wherein, the second memory translation table is used by the remote direct memory access device to directly query the host physical address based on the client virtual address during remote direct memory access data transmission, without the participation of the input / output memory management unit.

2. The DPU-based RDMA virtualization memory address translation method according to claim 1, characterized in that, The preset instruction is to write a preset base address register address to the virtual machine kernel.

3. The DPU-based RDMA virtualization memory address translation method according to claim 1, characterized in that, The preset instruction is a system call instruction.

4. The DPU-based RDMA virtualization memory address translation method according to claim 1, characterized in that, The host system information includes: process file system interface information, memory device file information, or application interface call information.

5. A method for transmitting RDMA virtualized data based on a DPU, characterized in that, This method is executed on a host of a data transmission node, the host being connected to a remote direct memory access device (DPU), and the method includes the following steps: The user process of the sending node submits a remote direct memory access task and creates a work queue element; the work queue element includes the source data address of the sending node and the target address of the receiving node; The remote direct memory access device of the sending node converts the client virtual address of the source data address into the corresponding host physical address based on the second memory translation table obtained by the DPU-based RDMA virtualization memory address translation method as described in claims 1 to 4. The source data is read from the corresponding host physical address, encapsulated into a remote direct memory access protocol packet, and sent to the receiving node.

6. The DPU-based RDMA virtualization data transmission method according to claim 5, characterized in that, The remote direct memory access protocol packet format is: InfiniBand, RoCE, or iWARP.

7. A method for receiving RDMA virtualized data based on a DPU, characterized in that, This method is executed on a host of a data transmission node, the host being connected to a remote direct memory access device (DPU), and the method includes the following steps: The receiving node receives Remote Direct Memory Access Protocol packets to obtain the source data and the target address of the receiving node; The remote direct memory access device of the receiving node converts the client virtual address of the target address into the corresponding host physical address based on the second memory translation table obtained by the DPU-based RDMA virtualization memory address translation method as described in claims 1 to 4. Write the source data to the corresponding host physical address.

8. A DPU-based RDMA virtualized memory address translation system, comprising a processor, a memory, and computer instructions stored in the memory, characterized in that, The processor is configured to execute the computer instructions, and when the computer instructions are executed, the system implements the steps of the method as described in any one of claims 1 to 7.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the steps of the method as described in any one of claims 1 to 7.

10. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Memory overconfiguration management method and device

    CN113204407A