Drive test method and system

By calling the standardized Verbs interface in the DSP bare core environment, the problem of RDMA driver lacking standardized API is solved, and the basic functions of RDMA drivers and the flexibility of cross-platform migration are realized.

CN119988177AActive Publication Date: 2025-05-13NAT UNIV OF DEFENSE TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510466717.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-15
Publication Date
2025-05-13
Estimated Expiration
2045-04-15

AI Technical Summary

Technical Problem

In the DSP bare core environment, RDMA drivers lack standardized APIs, resulting in the need to develop specific versions of RDMA driver APIs for different simulation platforms, increasing development difficulty and limiting the flexibility of cross-platform migration.

Method used

By calling the standardized Verbs interface, the basic functions of RDMA driver are realized, and a unified API interface is provided for RDMA driver verification test in the DSP naked core simulation environment, avoiding the development of specific versions of RDMA driver APIs for different simulation platforms.

Benefits of technology

It significantly reduces the development difficulty of RDMA drivers, improves the flexibility of cross-platform porting of RDMA drivers, and provides a unified API interface to support RDMA driver verification and testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119988177A_ABST
    Figure CN119988177A_ABST
Patent Text Reader

Abstract

The invention relates to a drive test method and system, and the method comprises the steps: calling a standardized Verbs interface, creating a protection domain, registering a memory space, creating a completion queue and a queue pair, initializing the queue pair, modifying the state of the queue pair into a ready state, submitting a work request, starting data transmission, and carrying out the polling of the completion queue. According to the method and the device, the work request is acquired and processed to obtain and process the completion event of the work request, so that the basic function of the RDMA driver is realized, a uniform API interface is provided for the RDMA driver verification test in a DSP bare core simulation environment, the development of the API of the RDMA driver of a specific version for different simulation platforms is avoided, the development difficulty of the RDMA driver is remarkably reduced, and the flexibility of cross-platform transplantation of the RDMA driver is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of drive test technology, and in particular, relates to a drive test method and system. Background Art

[0002] With the growing demand for high-performance computing (such as artificial intelligence, big data processing, cloud computing, etc.) and the increasing requirements for real-time performance and low latency, RDMA (Remote Direct Memory Access) technology has gradually been introduced into DSP (Digital Signal Processing) systems to accelerate data transmission and improve overall performance. In the DSP bare core environment, there are no advanced services provided by the operating system (such as memory mapping, interrupt processing, etc.). The RDMA driver must manage memory mapping, interrupt processing and other functions by itself, so it is necessary to develop a lightweight but fully functional RDMA driver.

[0003] Before being applied to actual DSP devices, RDMA drivers generally need to be verified and tested in DSP simulation platforms. However, the current implementation of RDMA in DSP bare core simulation environments faces the problem of lack of standardized APIs (Application Programming Interfaces). Due to the lack of unified standards, it is necessary to develop specific versions of RDMA driver APIs for different simulation platforms, which not only increases the difficulty of RDMA driver development, but also limits the flexibility of RDMA driver cross-platform porting. Summary of the invention

[0004] The purpose of the present application is to provide a driver testing method and system. The driver testing method and system provided by the present application implement the basic functions of the RDMA driver by calling the standardized Verbs interface, and provide a unified API interface for the RDMA driver verification test in the DSP bare core simulation environment, thereby avoiding the development of specific versions of the RDMA driver API for different simulation platforms, significantly reducing the difficulty of RDMA driver development, and improving the flexibility of cross-platform porting of RDMA drivers.

[0005] The technical solutions provided by this application are as follows: A driver testing method is applied to the testing of a remote direct memory access (RDMA) driver in a DSP simulation platform, the method comprising: Build a DSP bare core simulation environment and configure the initialization values ​​of simulation registers; Call the standardized Verbs interface, create a protection domain, register memory space, create a completion queue and a queue pair, initialize the queue pair, change the state of the queue pair to the ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; Generate test data and configure the test environment, trigger the test data transmission, record the performance indicators during the test data transmission, check the memory data and the completion events in the completion queue, verify the correctness and completeness of the test data transmission, and obtain the simulation test results of the RDMA driver.

[0006] Optionally, the Verbs interface includes a first sub-interface to an eighth sub-interface, and calling the standardized Verbs interface, creating a protection domain, registering a memory space, creating a completion queue and a queue pair, and initializing the queue pair, changing the state of the queue pair to a ready state, submitting a work request to start data transmission, and polling the completion queue to obtain and process a completion event of the work request, includes: Calling the first sub-interface to allocate a protection domain for the RDMA operation; Calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; Call the third sub-interface to create a completion queue; Calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue; Calling the fifth sub-interface to change the states of the sending queue and the receiving queue to a ready state; Calling the sixth sub-interface to submit a sending work request to the sending queue, and calling the seventh sub-interface to submit a receiving work request to the receiving queue to start data transmission; The eighth sub-interface is called to poll the completion queue to obtain and process the completion event of the work request.

[0007] Optionally, calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue includes: Calling the fourth sub-interface to create a queue pair, wherein the queue pair includes a sending queue and a receiving queue; Allocating continuous memory space to the sending queue and the receiving queue; Initialize the structure of the sending queue and the structure of the receiving queue; Configure the properties of the queue pair.

[0008] Optionally, the initializing the structure of the sending queue and the structure of the receiving queue includes: The depth, width and address information of the structure of the sending queue and the structure of the receiving queue are initialized and set.

[0009] Optionally, configuring the attributes of the queue pair includes: Setting the current index and the initial value of the maximum capacity of the queue pair; The state of the queue pair is set to the initial state.

[0010] Optionally, the work request includes: a work request index, an operation code, a start address and a length.

[0011] The present application also provides a driver testing system, which is applied to the testing of remote direct memory access (RDMA) driver in a DSP simulation platform, and the system includes: Configuration module, used to build DSP bare core simulation environment and configure the initialization value of simulation register; A creation module is used to call a standardized Verbs interface, create a protection domain, register a memory space, create a completion queue and a queue pair, initialize the queue pair, change the state of the queue pair to a ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; The test module is used to generate test data, configure the test environment, trigger the test data transmission, record the performance indicators during the test data transmission, check the memory data and the completion events in the completion queue, verify the correctness and integrity of the test data transmission, and obtain the simulation test results of the RDMA driver.

[0012] Optionally, the Verbs interface includes the first sub-interface to the eighth sub-interface, and the creation module, when executing the calling standardized Verbs interface, creating a protection domain, registering a memory space, creating a completion queue and a queue pair, and initializing the queue pair, changing the state of the queue pair to a ready state, submitting a work request to start data transmission, and polling the completion queue to obtain and process the completion event of the work request, is specifically used to: Calling the first sub-interface to allocate a protection domain for the RDMA operation; Calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; Call the third sub-interface to create a completion queue; Calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue; Calling the fifth sub-interface to change the states of the sending queue and the receiving queue to a ready state; Calling the sixth sub-interface to submit a sending work request to the sending queue, and calling the seventh sub-interface to submit a receiving work request to the receiving queue to start data transmission; The eighth sub-interface is called to poll the completion queue to obtain and process the completion event of the work request.

[0013] Optionally, when executing the calling of the fourth sub-interface, creating a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue, the creation module is specifically used to: Calling the fourth sub-interface to create a queue pair, wherein the queue pair includes a sending queue and a receiving queue; Allocating continuous memory space to the sending queue and the receiving queue; Initialize the structure of the sending queue and the structure of the receiving queue; Configure the properties of the queue pair.

[0014] Optionally, when executing the initialization of the structure of the sending queue and the structure of the receiving queue, the creation module is specifically used to: The depth, width and address information of the structure of the sending queue and the structure of the receiving queue are initialized and set.

[0015] Compared with the prior art, the present application provides a driver testing method and system, which is applied to the testing of remote direct memory access (RDMA) driver in DSP simulation platform. By building a DSP bare core simulation environment and configuring the initialization value of the simulation register, the standardized Verbs interface is called to create a protection domain, register the memory space, create a completion queue and a queue pair, and initialize the queue pair, change the state of the queue pair to the ready state, submit a work request to start data transmission, poll the completion queue to obtain and process the completion event of the work request, and then generate test data, configure the test environment, trigger the test data transmission, and record the performance indicators during the test data transmission process, check the completion events in the memory data and the completion queue, verify the correctness and integrity of the test data transmission, and obtain the simulation test results of the RDMA driver. In the request, the protection domain is created by calling the standardized Verbs interface, the memory space is registered, the completion queue and queue pair are created, and the queue pair is initialized. The state of the queue pair is changed to the ready state, the work request is submitted to start the data transmission, and the completion queue is polled to obtain and process the completion event of the work request to realize the basic functions of the RDMA driver. A unified API interface is provided for the RDMA driver verification test in the DSP bare core simulation environment, avoiding the development of specific versions of the RDMA driver API for different simulation platforms, significantly reducing the difficulty of RDMA driver development, and improving the flexibility of RDMA driver cross-platform porting. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0017] Figure 1 A flowchart of a drive test method disclosed in an embodiment of the present application; Figure 2 The present invention provides a schematic diagram of the structure of a drive test system. DETAILED DESCRIPTION

[0018] In order to enable those skilled in the art to better understand the technical solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below. Obviously, the described embodiments are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0019] It should be noted that when an element is referred to as being "fixed on" or "set on" another element, it can be directly on the other element or indirectly set on the other element; when an element is referred to as being "connected to" another element, it can be directly connected to the other element or indirectly connected to the other element.

[0020] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of this application, "multiple" and "several" mean two or more, unless otherwise clearly and specifically defined.

[0021] like Figure 1 As shown, an embodiment of the present application provides a driver testing method, which is applied to the testing of remote direct memory access (RDMA) driver in a DSP simulation platform, and the method includes: S1. Build the DSP bare core simulation environment and configure the initialization value of the simulation register; In this embodiment, the DSP bare core simulation environment is reset and initialized, the program entry point is set, the boot loader jumps to the main application entry point, the memory layout is set, the system memory mapping is defined, including the stack location, the global variable area, etc., the DSP register is set, the PHY (physical layer) switch register, the cache switch register, the bypass switch register, etc. are set according to the simulation environment requirements, and the register values ​​on some RDMA network interface cards are initialized, such as the group identifier GID of the MAC address (i.e., the media access control address) of the initialized device, and the peripherals are initialized as needed.

[0022] S2. Call the standardized Verbs interface, create a protection domain, register memory space, create a completion queue and queue pair, initialize the queue pair, change the state of the queue pair to the ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; In this embodiment, the standardized Verbs interface is a set of software interfaces in the standard C language function library for using the remote direct memory access RDMA service. By calling the standardized Verbs interface, a protection domain for managing subsequent memory space and queue pair resources is created. The protection domain registers the memory space so that the memory space allows remote read or write operations, creates a completion queue for receiving and storing completed work request entries and a queue pair for managing and tracking the transmission of data packets, and initializes the queue pair. The state of the queue pair is modified to a ready state so that the queue pair is ready for data transmission. A send work request and a receive work request can be submitted to start data transmission. The completion queue is polled to obtain the completion event of the work request, and the corresponding completion event is processed. The basic logic and basic functions of RDMA can be implemented, and a unified API interface is provided for RDMA driver verification testing in a DSP bare core simulation environment.

[0023] S3. Generate test data, configure the test environment, trigger test data transmission, record performance indicators during the test data transmission, check the completion events in the memory data and completion queue, verify the correctness and completeness of the test data transmission, and obtain the simulation test results of the RDMA driver.

[0024] In this embodiment, generating test data may be generating random data or generating specific pattern data. When generating data, a checksum may be added to verify the integrity of the data after data transmission. Configuring the test environment may be configuring the test environment to ensure that the RDMA function is supported in the test environment, simulating different network topologies (such as single node, multiple nodes, etc.) to evaluate the performance of RDMA in different environments. Triggering test data transmission may be testing different RDMA transmission modes to ensure that each mode works correctly, simulating multi-threaded or multi-process concurrent transmission to evaluate the performance of RDMA under high load conditions, and injecting network errors (such as packet loss, delay, disorder, etc.) during the transmission process to verify the fault tolerance of the RDMA driver. Recording performance indicators may be recording key performance indicators such as throughput, delay, memory bandwidth, and analyzing their changing trends, monitoring the usage of system resources, ensuring that the RDMA driver does not over-consume resources, and recording log information during the test in detail, including error information, warning information, etc., for subsequent analysis. Checking memory The completion events in the data and completion queues can be used to check whether the data in the memory of the receiving end is consistent with that of the sending end, to ensure that the data has not been tampered with or lost during the transmission process, to check the completion events in the completion queue to ensure that each transmission operation is completed correctly and there are no missed or repeated events, and to check the error events in the completion queue to verify whether the RDMA driver can correctly handle errors in the transmission; to verify the correctness and integrity of the test data transmission, it can be used to verify whether the received data is complete and correct using a pre-generated checksum, test the boundary conditions of data transmission (such as maximum transmission unit, minimum data packet, etc.), ensure that the RDMA driver can work normally under various extreme conditions, and verify whether the RDMA driver can correctly retransmit data when the transmission fails to ensure data reliability; to obtain the simulation test results of the RDMA driver, it can be based on the performance indicators recorded during the test data transmission, the inspection results of the completion events in the memory data and the completion queue, and the verification results of the correctness and integrity of the test data transmission.

[0025] Compared with the prior art, the present application provides a driver testing method and system, which is applied to the test of remote direct memory access (RDMA) driver in DSP simulation platform. The present invention provides a bare core simulation environment, configures the initialization value of the simulation register, calls the standardized Verbs interface, creates a protection domain, registers the memory space, creates a completion queue and a queue pair, initializes the queue pair, modifies the state of the queue pair to the ready state, submits a work request to start data transmission, polls the completion queue to obtain and process the completion event of the work request, and then generates test data, configures the test environment, triggers the test data transmission, and records the performance indicators during the test data transmission, checks the completion events in the memory data and the completion queue, verifies the correctness and integrity of the test data transmission, and obtains the simulation test results of the RDMA driver. In this application, by calling the standardized Verbs interface, creating a protection domain, registering the memory space, creating a completion queue and a queue pair, and initializing the queue pair, modifying the state of the queue pair to the ready state, submitting a work request to start data transmission, polling the completion queue to obtain and process the completion event of the work request, the basic functions of the RDMA driver are realized, and a unified API interface is provided for the RDMA driver verification test in the DSP bare core simulation environment, avoiding the development of specific versions of RDMA for different simulation platforms. The driver API significantly reduces the difficulty of RDMA driver development and improves the flexibility of RDMA driver cross-platform porting.

[0026] As an implementation manner, in the embodiment of the present application, the Verbs interface includes the first sub-interface to the eighth sub-interface, and step S2 includes: S21, calling the first sub-interface to allocate a protection domain for the RDMA operation; In this embodiment, the first sub-interface can be an ibv_alloc_pd() interface. By calling the ibv_alloc_pd() interface, a protection domain can be allocated for the RDMA operation, and the subsequent memory space and queue pair resources are managed through the protection domain. In a bare core environment, it is necessary to directly operate the registers on the RDMA network interface card for initialization. At the software level, a corresponding C language structure is created for each newly allocated protection domain to save relevant information of the protection domain, such as the ID and status flag of the protection domain. In the bare core environment, the conversion from virtual address to physical address must be processed, and memory space must be allocated for the structure of the created protection domain.

[0027] S22, calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; In this embodiment, the second sub-interface can be an ibv_reg_mr() interface, which can be called to register a memory space and identify the accessible memory space in the physical address space, thereby allowing remote read or write operations. This process requires passing in information pointing to the protection domain and associating the newly created memory space. The virtual address parameters of the interface can be allocated as physical addresses according to the actual address space in the DSP bare core simulation environment, reducing unnecessary virtual-to-real address conversions. The memory space size, access rights, starting address of the memory space and other information can be set according to the parameters passed in by the application to complete the initialization of the memory space related structures.

[0028] S23, calling the third sub-interface to create a completion queue; In this embodiment, the third sub-interface can be an ibv_create_cq() interface, which can call the ibv_create_cq() interface to create a completion queue, receive and store completed work request entries through the completion queue, build a completion queue-related structure, and allocate continuous memory space. The number of completion queue entries and the context information of the RDMA device are passed in by the application. The first address and length of the completion queue and other information set according to environmental requirements can be used to initialize the completion queue-related structure.

[0029] S24, calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue; In this embodiment, the fourth sub-interface can be an ibv_create_qp() interface, which can call the ibv_create_qp() interface to create a queue pair including a sending queue and a receiving queue, manage and track the transmission of data packets through the queue pair, allocate continuous memory space to the sending queue and the receiving queue, initialize the structure of the sending queue and the structure of the receiving queue, and configure the properties of the queue pair.

[0030] S25, calling the fifth sub-interface to change the status of the sending queue and the receiving queue to the ready state; In this embodiment, the fifth sub-interface can be an ibv_modify_qp() interface. The ibv_modify_qp() interface can be called to modify the status of the sending queue and the receiving queue to the ready state, or the ibv_modify_qp() interface can be called to modify the configuration of the queue pair. The status of the queue pair needs to set different parameters when transferring. Before performing the state conversion, the status information of the current queue pair can be obtained by querying the corresponding register information, and the parameters of the new queue pair can be set according to the target state, such as port number, access permission, maximum transmission unit, transmission service type, etc.

[0031] S26, calling the sixth sub-interface, submitting the sending work request to the sending queue, calling the seventh sub-interface, submitting the receiving work request to the receiving queue, to start data transmission; In this embodiment, the sixth sub-interface can be an ibv_post_send() interface, and the seventh sub-interface can be an ibv_post_recv() interface. The ibv_post_send() interface can be called to submit a send work request to the send queue, and the ibv_post_recv() interface can be called to submit a receive work request to the receive queue to start data transmission. Each work request can include information describing the operation to be performed, such as the index, operation code, starting address, length, and other information of the work request. The memory area directly accessed in the work request can be a remotely accessible memory space registered through the ibv_reg_mr() interface.

[0032] S27. Call the eighth sub-interface to poll the completion queue to obtain and process the completion event of the work request.

[0033] In this embodiment, the eighth sub-interface can be an ibv_poll_cq() interface, which can call the ibv_poll_cq() interface to poll the completion queue to obtain and process the completion event of the work request. After completing the work request, the completion event information can be written into a pre-allocated register. The interface mainly implements reading specific registers or using special assembly language instructions to query the status of the completion event. After obtaining a certain number of completion events, these completion events can be filled into a structure or array used to save the completion events.

[0034] As an implementation manner, in the embodiment of the present application, step S24 includes: S241, calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue; In this embodiment, the ibv_create_qp() interface may be called to create a queue pair including a sending queue and a receiving queue.

[0035] S242, allocating continuous memory space to the sending queue and the receiving queue; In this embodiment, by allocating continuous memory space to the sending queue and the receiving queue, memory fragmentation can be reduced, access delay can be reduced, data transmission speed can be accelerated, memory management can be simplified, and complex memory mapping and address conversion operations can be reduced.

[0036] S243, initialize the structure of the sending queue and the structure of the receiving queue; In this embodiment, by initializing the structure of the sending queue and the structure of the receiving queue, the sending queue is ready to manage the data to be sent to ensure that the data is sent in order, and the receiving queue is ready to receive and store the data to ensure that the data is received in order.

[0037] S244. Configure the attributes of the queue pair.

[0038] In this embodiment, by configuring the attributes of the queue pair, the communication mode of the queue pair (such as reliable connection, unreliable datagram, etc.) can be clarified, thereby ensuring that the simulation test can accurately simulate the behavior of actual RDMA communication.

[0039] As an implementation mode, in the embodiment of the present application, the structure of the sending queue and the structure of the receiving queue are initialized, including: Initialize the depth, width, and address information of the send queue structure and the receive queue structure.

[0040] In this embodiment, by initializing the depth, width and address information of the structure of the sending queue and the structure of the receiving queue, efficient allocation and management of resources can be ensured, data transmission performance can be optimized, and the correctness and reliability of data access can be ensured.

[0041] As an implementation manner, in the embodiment of the present application, step S244 includes: S2441. Set the current index and the initial value of the maximum capacity of the queue pair; In this embodiment, by setting the current index of the queue pair and the initial value of the maximum capacity, it is possible to ensure the initialization and consistency of the queue state, manage resources, and control the queue boundary, thereby improving the repeatability and accuracy of the simulation test.

[0042] S2442. Set the state of the queue pair to the initial state.

[0043] In this embodiment, by setting the state of the queue pair to the initial state, it is possible to ensure the consistency and independence of the test environment, clear the historical state and residual data, and adapt to different simulation test scenarios.

[0044] As an implementation mode, in the embodiment of the present application, the work request includes: a work request index, an operation code, a starting address and a length.

[0045] In this embodiment, the work request may include sending a work request and receiving a work request. Sending a work request includes: sending a work request index, an operation code, a starting address and a length. Receiving a work request includes: receiving a work request index, an operation code, a starting address and a length.

[0046] like Figure 2As shown, the embodiment of the present application also provides a driver testing system, which is applied to the testing of remote direct memory access RDMA driver in a DSP simulation platform, and the system includes: Configuration module 21, used to build DSP bare core simulation environment and configure the initialization value of the simulation register; A creation module 22 is used to call a standardized Verbs interface, create a protection domain, register a memory space, create a completion queue and a queue pair, initialize the queue pair, change the state of the queue pair to a ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; The test module 23 is used to generate test data, configure the test environment, trigger test data transmission, record performance indicators during the test data transmission, check the completion events in the memory data and the completion queue, verify the correctness and integrity of the test data transmission, and obtain the simulation test results of the RDMA driver.

[0047] As an implementation mode, in an embodiment of the present application, the Verbs interface includes the first sub-interface to the eighth sub-interface, and the creation module executes the call to the standardized Verbs interface, creates a protection domain, registers the memory space, creates a completion queue and a queue pair, and initializes the queue pair, changes the state of the queue pair to the ready state, submits a work request to start data transmission, and polls the completion queue to obtain and process the completion event of the work request, which is specifically used to: Calling the first sub-interface to allocate a protection domain for the RDMA operation; Calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; Call the third sub-interface to create a completion queue; Call the fourth sub-interface to create a queue pair, which includes a sending queue and a receiving queue, and initialize the sending queue and the receiving queue; Call the fifth sub-interface to change the status of the sending queue and the receiving queue to the ready state; Call the sixth sub-interface to submit a sending work request to the sending queue, and call the seventh sub-interface to submit a receiving work request to the receiving queue to start data transmission; The eighth sub-interface is called to poll the completion queue to obtain and process the completion event of the work request.

[0048] As an implementation mode, in an embodiment of the present application, when the creation module executes the call to the fourth sub-interface, creates a queue pair, the queue pair includes a sending queue and a receiving queue, and initializes the sending queue and the receiving queue, it is specifically used to: Call the fourth sub-interface to create a queue pair, which includes a sending queue and a receiving queue; Allocate continuous memory space to the sending queue and receiving queue; Initialize the send queue structure and the receive queue structure; Configure the properties of a queue pair.

[0049] As an implementation mode, in the embodiment of the present application, when the creation module executes the initialization of the structure of the sending queue and the structure of the receiving queue, it is specifically used to: Initialize the depth, width, and address information of the send queue structure and the receive queue structure.

[0050] It should be understood that the use of "system", "device", "unit" and / or "module" in this application is only a method for distinguishing different components, elements, parts, parts or assemblies at different levels. However, if other words can achieve the same purpose, the word can be replaced by other expressions.

[0051] The embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referenced to each other.

[0052] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A drive test method, characterized in that: Applied to the test of remote direct memory access (RDMA) driver in DSP simulation platform, the method includes: Build a DSP bare core simulation environment and configure the initialization values ​​of simulation registers; Call the standardized Verbs interface, create a protection domain, register memory space, create a completion queue and a queue pair, initialize the queue pair, change the state of the queue pair to the ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; Generate test data and configure the test environment, trigger the test data transmission, record the performance indicators during the test data transmission, check the memory data and the completion events in the completion queue, verify the correctness and completeness of the test data transmission, and obtain the simulation test results of the RDMA driver.

2. The drive test method according to claim 1, characterized in that: The Verbs interface includes the first sub-interface to the eighth sub-interface, and the calling of the standardized Verbs interface, creating a protection domain, registering a memory space, creating a completion queue and a queue pair, and initializing the queue pair, changing the state of the queue pair to a ready state, submitting a work request to start data transmission, and polling the completion queue to obtain and process the completion event of the work request, includes: Calling the first sub-interface to allocate a protection domain for the RDMA operation; Calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; Call the third sub-interface to create a completion queue; Calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue; Calling the fifth sub-interface to change the states of the sending queue and the receiving queue to a ready state; Calling the sixth sub-interface to submit a sending work request to the sending queue, and calling the seventh sub-interface to submit a receiving work request to the receiving queue to start data transmission; The eighth sub-interface is called to poll the completion queue to obtain and process the completion event of the work request.

3. The drive test method according to claim 2, characterized in that: The calling of the fourth sub-interface, creating a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue, includes: Calling the fourth sub-interface to create a queue pair, wherein the queue pair includes a sending queue and a receiving queue; Allocating continuous memory space to the sending queue and the receiving queue; Initialize the structure of the sending queue and the structure of the receiving queue; Configure the properties of the queue pair.

4. The drive test method according to claim 3, characterized in that: The initialization of the structure of the sending queue and the structure of the receiving queue includes: The depth, width and address information of the structure of the sending queue and the structure of the receiving queue are initialized and set.

5. The drive test method according to claim 3, characterized in that: The configuring the attributes of the queue pair includes: Setting the current index and the initial value of the maximum capacity of the queue pair; The state of the queue pair is set to the initial state.

6. The drive test method according to claim 2, characterized in that: The work request includes: a work request index, an operation code, a start address and a length.

7. A drive test system, characterized in that: Applied to the test of remote direct memory access (RDMA) driver in DSP simulation platform, the system includes: Configuration module, used to build DSP bare core simulation environment and configure the initialization value of simulation register; A creation module is used to call a standardized Verbs interface, create a protection domain, register a memory space, create a completion queue and a queue pair, initialize the queue pair, change the state of the queue pair to a ready state, submit a work request to start data transmission, and poll the completion queue to obtain and process the completion event of the work request; The test module is used to generate test data, configure the test environment, trigger the test data transmission, record the performance indicators during the test data transmission, check the memory data and the completion events in the completion queue, verify the correctness and integrity of the test data transmission, and obtain the simulation test results of the RDMA driver.

8. The drive test system according to claim 7, characterized in that: The Verbs interface includes the first sub-interface to the eighth sub-interface. When the creation module executes the calling standardized Verbs interface, creates a protection domain, registers a memory space, creates a completion queue and a queue pair, initializes the queue pair, changes the state of the queue pair to a ready state, submits a work request to start data transmission, and polls the completion queue to obtain and process the completion event of the work request, the creation module is specifically used to: Calling the first sub-interface to allocate a protection domain for the RDMA operation; Calling the second sub-interface to register the memory space so that the memory space can be remotely accessed; Call the third sub-interface to create a completion queue; Calling the fourth sub-interface to create a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue; Calling the fifth sub-interface to change the states of the sending queue and the receiving queue to a ready state; Calling the sixth sub-interface to submit a sending work request to the sending queue, and calling the seventh sub-interface to submit a receiving work request to the receiving queue to start data transmission; The eighth sub-interface is called to poll the completion queue to obtain and process the completion event of the work request.

9. The drive test system according to claim 8, characterized in that: When executing the calling of the fourth sub-interface, creating a queue pair, the queue pair including a sending queue and a receiving queue, and initializing the sending queue and the receiving queue, the creation module is specifically used to: Calling the fourth sub-interface to create a queue pair, wherein the queue pair includes a sending queue and a receiving queue; Allocating continuous memory space to the sending queue and the receiving queue; Initialize the structure of the sending queue and the structure of the receiving queue; Configure the properties of the queue pair.

10. The drive test system according to claim 9, characterized in that: When executing the initialization of the structure of the sending queue and the structure of the receiving queue, the creation module is specifically used to: The depth, width and address information of the structure of the sending queue and the structure of the receiving queue are initialized and set.

Citation Information

Patent Citations

  • Method and system for communication using InfiniBand network

    CN101409715A

  • Method for using RDMA on fronthaul interface

    WO2024218547A1