Storage controller verification method, device and system and medium

By creating queues and binding relationships in the storage controller, adjusting load and thresholds, and collecting data to generate reports, the problem of insufficient verification of storage controller interruption aggregation function in the prior art is solved, and a more comprehensive verification effect is achieved.

CN120872771APending Publication Date: 2025-10-31SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511045229.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-28
Publication Date
2025-10-31

AI Technical Summary

Technical Problem

Existing technologies fail to fully consider the execution of the interrupt aggregation function of the storage controller in complex scenarios when verifying its functionality, resulting in insufficient verification results.

Method used

By creating submission and completion queues in the storage controller, binding interrupt channels according to preset binding relationships, setting load adjustment ranges, adjusting load values, sending read and write requests, adjusting interrupt aggregation thresholds, collecting working data, switching binding relationships, and generating verification reports, the verification reliability of the interrupt aggregation function is improved.

Benefits of technology

This enables comprehensive verification of the storage controller interrupt aggregation function in complex scenarios, improving the sufficiency and reliability of the verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120872771A_ABST
    Figure CN120872771A_ABST
Patent Text Reader

Abstract

The invention provides a verification method, device and system for a storage controller and a medium, relates to the field of equipment verification, can set different binding forms for a submission queue, a completion queue and an interrupt channel in the storage controller according to various preset binding relationships, and can apply different loads to the storage controller in each binding form, so that the verification efficiency of the storage controller is improved. According to the method, the storage controller is used for storing the interrupt aggregation function, the working data generated by the storage controller under each load is collected, and the interrupt aggregation verification result corresponding to the storage controller in each preset binding relation is obtained, so that the performance of the interrupt aggregation function of the storage controller in a complex scene can be verified, and the verification reliability of the interrupt aggregation function can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of device verification, and more particularly to a method, apparatus, verification system, and medium for verifying storage controllers. Background Technology

[0002] The storage controller is a crucial component of a storage device. One of its functions is to execute read and write requests issued by the host and notify the host of completion via an interrupt mechanism when a request is finished. Furthermore, to improve notification efficiency, the storage controller can be configured with interrupt aggregation, which allows the host to be notified via a single interrupt when multiple read and write requests have been completed.

[0003] In related technologies, to ensure the proper functioning of the storage controller, it is necessary to verify various functions of the storage controller. However, when verifying the interrupt aggregation function, related technologies only consider verifying the execution logic of the storage controller for the interrupt aggregation function, but do not consider verifying the execution of the interrupt aggregation function by the storage controller in various complex scenarios, thus reducing the verification effect. Summary of the Invention

[0004] This invention provides a storage controller verification method, apparatus, verification system, and medium, which can verify the performance of the interrupt aggregation function of the storage controller in complex scenarios, thereby improving the verification reliability of the interrupt aggregation function.

[0005] To address the aforementioned technical problems, this invention provides a storage controller verification method, comprising:

[0006] Based on the preset number of queues and queue depth, a submission queue and a completion queue are created in the storage controller, and the submission queue, completion queue, and interrupt channel in the storage controller are bound according to the preset binding relationship.

[0007] Set the load adjustment range based on the number of queues and the queue depth;

[0008] Adjust the load value within the load adjustment range, and send read / write requests to the storage controller based on the load value, and adjust the interrupt aggregation threshold of the storage controller so that the storage controller can process the read / write requests and perform interrupt aggregation operations based on the interrupt aggregation threshold;

[0009] Collect the working data generated by the storage controller under various load values ​​to obtain the interrupt aggregation verification results corresponding to the preset binding relationship;

[0010] Switch the preset binding relationship and determine the interrupt aggregation verification result of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification result of different preset binding relationships.

[0011] The present invention also provides a storage controller verification device, comprising:

[0012] The binding relationship setting module is used to create submission queues and completion queues in the storage controller according to the preset queue number and queue depth, and to bind the submission queues, completion queues and interrupt channels in the storage controller according to the preset binding relationship;

[0013] The load pressure setting module is used to set the load adjustment range based on the number of queues and the queue depth.

[0014] The verification module is used to adjust the load value within the load adjustment range, and send read / write requests to the storage controller based on the load value, and adjust the interrupt aggregation threshold of the storage controller so that the storage controller can process the read / write requests and perform interrupt aggregation operations based on the interrupt aggregation threshold.

[0015] The acquisition module is used to collect the working data generated by the storage controller under various load values ​​and obtain the interrupt aggregation verification results corresponding to the preset binding relationship;

[0016] The switching module is used to switch preset binding relationships and determine the interrupt aggregation verification results of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification results corresponding to different preset binding relationships.

[0017] The present invention also provides a verification system, comprising:

[0018] The host is used to execute the storage controller verification method described above;

[0019] The storage controller is used to create commit queues and completion queues under host control, bind the commit queues, completion queues and interrupt channels in the storage controller according to preset binding relationships, process read and write requests issued by the host, and perform interrupt aggregation operations according to the interrupt aggregation threshold issued by the host.

[0020] The present invention also provides a non-volatile computer-readable storage medium storing computer-executable instructions, which, when loaded and executed by a processor, implement the above-described storage controller verification method.

[0021] The beneficial effects of this invention are as follows: First, this invention creates a submission queue and a completion queue in the storage controller according to a preset queue number and queue depth. Then, it binds the submission queue, completion queue, and interrupt channel in the storage controller according to a preset binding relationship, thereby setting a working mode for the storage controller and verifying the interrupt aggregation function in this working mode. Subsequently, this invention sets a load adjustment range according to the queue number and queue depth, adjusts the load value within the load adjustment range, and sends read / write requests to the storage controller based on the load value, adjusting the interrupt aggregation threshold of the storage controller. This enables the storage controller to process read / write requests and perform interrupt aggregation operations according to the interrupt aggregation threshold, i.e., controlling the storage controller to perform interrupt aggregation under different load conditions. Next, this invention collects the working data generated by the storage controller under various load values, thereby obtaining the interrupt aggregation verification result corresponding to the current preset binding relationship. Furthermore, this invention can switch preset binding relationships and determine the interrupt aggregation verification results of the storage controller under different preset binding relationships, i.e., switching the working mode of the storage controller and applying different loads to the storage controller in other working modes to verify the effect of the storage controller performing interrupt aggregation in other working modes. Thus, a verification report of the storage controller can be obtained based on the interrupt aggregation verification results corresponding to different preset binding relationships, thereby improving the verification effect of the interrupt aggregation function.

[0022] The present invention also provides a storage controller verification device, a verification system, and a non-volatile computer-readable storage medium, which have the above-mentioned beneficial effects. Attached Figure Description

[0023] To more clearly illustrate the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0024] Figure 1 A flowchart of a storage controller verification method provided in an embodiment of the present invention;

[0025] Figure 2 A schematic diagram of the first binding relationship provided for an embodiment of the present invention;

[0026] Figure 3 This is a schematic diagram of the second binding relationship provided in an embodiment of the present invention.

[0027] Figure 4 A schematic diagram of the third binding relationship provided in an embodiment of the present invention;

[0028] Figure 5 A flowchart for constructing the load configuration provided in an embodiment of the present invention;

[0029] Figure 6 A flowchart of an automatic scheduling mechanism provided in an embodiment of the present invention;

[0030] Figure 7 A flowchart of interrupted aggregation verification is provided for an embodiment of the present invention;

[0031] Figure 8 A structural block diagram of a storage controller verification device provided in an embodiment of the present invention;

[0032] Figure 9 This is a structural block diagram of a verification system provided in an embodiment of the present invention. Detailed Implementation

[0033] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of the present invention.

[0034] It should be noted that, in the description of this invention, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., used in this invention are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0035] To enable those skilled in the art to better understand the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0036] The storage controller is a crucial component of a storage device. One of its functions is to execute read and write requests issued by the host and notify the host of completion via an interrupt mechanism. Furthermore, to improve notification efficiency, the storage controller can be configured with interrupt aggregation, which allows for a single interrupt notification to the host when multiple read and write requests have completed. For example, for an NVMe controller (Non-Volatile Memory Host Controller Interface Specification), it can use the MSI-X interrupt aggregation function (Message Signaled Interrupts eXtended) to merge interrupt events corresponding to multiple read and write requests into a single interrupt signal, thereby reducing interrupt handling overhead. In related technologies, to ensure the storage controller functions correctly, its various functions need to be verified. However, when verifying the interrupt aggregation function, related technologies only consider verifying the storage controller's execution logic for interrupt aggregation, without considering verifying the storage controller's execution of interrupt aggregation in various complex scenarios, thus reducing the effectiveness of the verification.

[0037] In view of this, the present invention provides a storage controller verification method for verifying the interrupt aggregation function of the storage controller. This method allows for setting different binding forms for the submission queue, completion queue, and interrupt channel in the storage controller, and applying different loads to the storage controller under each binding form to collect the working data generated by the storage controller under each load. This verifies the interrupt aggregation verification results of the storage controller under each queue binding form, thereby verifying the performance of the interrupt aggregation function of the storage controller in complex scenarios and improving the reliability of the interrupt aggregation function verification.

[0038] For easier understanding, please refer to Figure 1 , Figure 1 This is a flowchart illustrating a storage controller verification method provided in an embodiment of the present invention. It should be noted that this method can be applied to a host connected to the storage controller, which can be a personal computer, server, etc. The method may include:

[0039] S101. Create a submission queue and a completion queue in the storage controller according to the preset queue number and queue depth, and bind the submission queue, completion queue and the interrupt channel in the storage controller according to the preset binding relationship.

[0040] In this embodiment, the Submission Queue (SQ), Completion Queue (CQ), and Interrupt Channel are important queues in the storage controller. The Submission Queue stores read / write requests awaiting execution, the Completion Queue stores request execution results, and the Interrupt Channel triggers interrupt aggregation. The host can send read / write requests (IO requests) to the Submission Queue and notify the storage controller. Upon receiving the notification, the storage controller can read and execute the read / write requests from the Submission Queue and add the execution results to the Completion Queue. Subsequently, when the storage controller determines that the number of execution results in the Completion Queue has reached a certain threshold, it can trigger interrupt aggregation via the Interrupt Channel to notify the host of all execution results in the Completion Queue. Furthermore, the Submission Queue and Completion Queue can be created in the storage controller as needed. During creation, the host needs to specify the number and depth of the Submission Queue and Completion Queue. The queue depth indicates the maximum number of read / write requests that the Submission Queue can store and the maximum number of execution results that the Completion Queue can store.

[0041] Furthermore, due to the limited interrupt channel resources available to the storage controller, binding relationships can be configured between the commit queue, completion queue, and interrupt channels as needed to improve resource utilization. Specifically, one or more commit queues can be bound to a completion queue, and one or more completion queues can be bound to an interrupt channel. When the storage controller completes the execution of a read / write request, it can add the request execution result to the completion queue bound to the commit queue. When the number of request execution results stored in the completion queue reaches a specific value, it can perform an interrupt aggregation operation through the interrupt channel bound to the completion queue. The more commit queues a completion queue is bound to, the greater its load. Similarly, the more completion queues an interrupt channel is bound to, the greater its load. It is evident that the complex binding relationships between the commit queue, completion queue, and interrupt channel directly affect the operation of the storage controller, and consequently, the execution effect of the interrupt aggregation function. Therefore, this invention needs to verify the effectiveness of the storage controller in executing the interrupt aggregation function under various complex binding scenarios to improve the sufficiency of the interrupt aggregation function verification.

[0042] Specifically, this embodiment can set preset binding relationships and bind the submission queue, completion queue, and interrupt channel according to these preset binding relationships. This embodiment does not limit the specific preset binding relationships, as long as they satisfy the requirement that one or more submission queues are bound to one completion queue, and one or more completion queues are bound to one interrupt channel. Specifically, to verify the load boundary conditions of the storage controller, the preset binding relationships provided in this embodiment can include a first binding relationship where each submission queue is bound to a completion queue and each completion queue is bound to an interrupt channel; a second binding relationship where all submission queues are bound to a single completion queue and each completion queue is bound to an interrupt channel; and a third binding relationship where each submission queue is bound to a completion queue and all completion queues are bound to a single interrupt channel.

[0043] For easier understanding, please refer to Figure 2 , Figure 2 This is a schematic diagram of a first binding relationship provided in an embodiment of the present invention. In this binding relationship, the load of the storage controller is distributed to various commit queues, completion queues, and interrupt channels, thus allowing verification of the interrupt aggregation capability of each interrupt channel in its most basic state.

[0044] Please refer to Figure 3 , Figure 3 This is a schematic diagram of the second binding relationship provided in an embodiment of the present invention. In this binding relationship, all submission queues are bound to a completion queue, and the completion queue is bound to an interrupt channel one by one. Under this binding relationship, the execution results of requests generated by all queues will be written to the same completion queue, and the interrupt channel bound to the completion queue will bear the maximum pressure. This can verify the reliability of the interrupt aggregation logic when both the completion queue and the interrupt channel are under extreme conditions.

[0045] Please refer to Figure 4 , Figure 4 This is a schematic diagram of a third binding relationship provided in an embodiment of the present invention. In this binding relationship, the pressure at the completion queue is distributed among the various completion queues, but the interrupt channel still bears the maximum pressure, thereby verifying the reliability of the interrupt aggregation logic when bound to a large number of completion queues.

[0046] In actual verification, this embodiment will switch between the first binding relationship, the second binding relationship, and the third binding relationship. In one implementation, during the initial binding, the host can send the first binding relationship to the storage controller, so that the storage controller binds the submission queue to the completion queue one by one, and binds the completion queue to the interrupt channel one by one.

[0047] Based on this, binding the submission queue, completion queue, and interrupt channels in the storage controller according to preset binding relationships can include:

[0048] Step 11: Send the first binding relationship to the storage controller so that the storage controller binds the submission queue to the completion queue and binds the completion queue to the interrupt channel.

[0049] Specifically, the host can set the Admin command according to the first binding relationship and send the Admin command to the storage controller so that the storage controller can implement the above-mentioned preset binding relationship.

[0050] Furthermore, the second and third binding relationships can each contain N sub-binding relationships, where N is the number of queues. Specifically, the i-th sub-binding relationship in the second binding relationship indicates that all commit queues are bound to the i-th completion queue, and the i-th completion queue is bound to the i-th interrupt channel. Similarly, the i-th sub-binding relationship in the third binding relationship indicates that each commit queue is bound to a completion queue, and all completion queues are bound to the i-th interrupt channel. Therefore, the first, second, and third binding relationships collectively contain 2N+1 binding patterns, which facilitates verification of the interrupt aggregation effect of the storage controller in these binding patterns.

[0051] S102. Set the load adjustment range according to the number of queues and the queue depth.

[0052] After setting up the queue binding relationship in the previous step, this step allows you to set the load adjustment range based on the number of queues and the queue depth. The load adjustment range is used to adjust the load value. The host can use this load value to send read / write requests to the storage controller and adjust the storage controller's interrupt aggregation threshold, thereby dynamically adjusting the load pressure applied to the storage controller.

[0053] Specifically, the load adjustment range can include a queue concurrency range, a request frequency range, and an interruption aggregation threshold range. The queue concurrency range adjusts the number of concurrent queues, allowing the host to send read and write requests to the corresponding number of submission queues in parallel. The request frequency range adjusts the frequency at which read and write requests are sent, allowing the host to send read and write requests to each submission queue according to this frequency. The interruption aggregation threshold range adjusts the interruption aggregation threshold, allowing the storage controller to trigger an interruption aggregation operation when the number of request execution results in the completion queue reaches the interruption aggregation threshold.

[0054] It is understandable that the above number of queues represents the maximum number of concurrent queues; therefore, the range of concurrent queues can be 1 to Q. max Q max Indicates the number of queues.

[0055] Furthermore, the maximum number of read and write requests that the queue can accommodate is H. max ×Q max H maxThis indicates the queue depth. Therefore, the maximum load the storage controller can handle is H packets per second. max ×Q max The maximum frequency of read and write requests, i.e., requests, is H. max ×Q max Therefore, the request frequency range can be: 1~H max ×Q max .

[0056] Furthermore, the maximum number of read and write requests that a single queue can accommodate is H. max Therefore, the interrupt channel should at least wait until the number of request execution results in the completion queue reaches H. max Interruption aggregation is triggered on a time basis, meaning the interrupt aggregation threshold range can be 1 to H. max .

[0057] Therefore, this embodiment can set the queue concurrency range according to the number of queues, the request frequency range according to the number of queues and the queue depth, and the interruption aggregation threshold range according to the queue depth.

[0058] Of course, the aforementioned queue concurrency range, request frequency range, and interrupt aggregation threshold range define the load adjustment range from minimum to maximum, but this is not conducive to classifying specific load levels. Therefore, this embodiment can further divide the load into multiple sub-ranges according to the load level. For example, the queue concurrency range and request frequency range can be further divided into three sub-ranges: light load, medium load, and heavy load, as described in subsequent embodiments.

[0059] S103. Adjust the load value within the load adjustment range, and send read / write requests to the storage controller based on the load value. Adjust the interrupt aggregation threshold of the storage controller so that the storage controller can process the read / write requests and perform interrupt aggregation operations based on the interrupt aggregation threshold.

[0060] In this step, the host can gradually adjust the load value within the load adjustment range and send read / write requests to the storage controller based on the load value. It also adjusts the storage controller's interrupt aggregation threshold, enabling the storage controller to process read / write requests and perform interrupt aggregation operations according to the threshold. This allows different load pressures to be applied to the storage controller, thereby verifying the interrupt aggregation behavior corresponding to different loads under the current queue binding relationship of the storage controller.

[0061] S104. Collect the working data generated by the storage controller under various load values ​​to obtain the interrupt aggregation verification results corresponding to the preset binding relationship.

[0062] In this step, by collecting the working data generated by the storage controller under various load values, this embodiment can obtain the interruption aggregation verification result corresponding to the storage controller in the current preset binding relationship. The interruption aggregation verification result includes the working data of the storage controller under various load values.

[0063] It should be noted that this embodiment does not limit which working data generated by the storage controller needs to be collected. It can be set according to the actual application requirements, such as collecting working data on interrupt latency and interrupt loss.

[0064] S105. Switch the preset binding relationship and determine the interrupt aggregation verification result of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification result of different preset binding relationships.

[0065] In this step, preset binding relationships can be switched, and steps S101 to S104 are re-executed after the switch to obtain the interrupt aggregation verification results of the storage controller under different preset binding relationships. After completing the verification of each preset binding relationship, this embodiment can obtain the verification report of the storage controller based on the interrupt aggregation verification results corresponding to different preset binding relationships, thereby fully evaluating the reliability of the storage controller in performing interrupt aggregation in complex scenarios, thus improving the sufficiency and reliability of the verification.

[0066] Furthermore, since the preset binding relationship set in this embodiment can include a first binding relationship, a second binding relationship, and a third binding relationship, and the second and third binding relationships contain N sub-binding relationships, and the first binding relationship is selected during the initial binding, when switching the preset binding relationship, the N sub-binding relationships in the second binding relationship and the N sub-binding relationships in the third binding relationship can be switched sequentially. Specifically, the host can control the storage controller to reset and reissue the sub-binding relationships to the storage controller so that the latter binds according to the sub-binding relationships.

[0067] Based on this, switching the preset binding relationship can include:

[0068] Step 21: Switch to the second binding relationship, and in the i-th round of binding when switching to the second binding relationship, reset the storage controller and send the i-th sub-binding relationship in the second binding relationship to the storage controller, so that the storage controller binds all submission queues to the i-th completion queue and binds the i-th completion queue to the i-th interrupt channel.

[0069] Switching preset binding relationships can also include:

[0070] Step 31: Switch to the third binding relationship, and in the i-th round of binding when switching to the third binding relationship, reset the storage controller and send the i-th sub-binding relationship in the third binding relationship to the storage controller, so that the storage controller binds the submission queue to the completion queue one by one and binds all the completion queues to the i-th interrupt channel.

[0071] In one implementation, to facilitate binding, the first binding relationship, second binding relationship, and third binding relationship can be set in a mapping table. The following is a specific form of the mapping table:

[0072] Table 1 Binding Relationship Mapping Table

[0073]

[0074] The mapping table is divided into three regions, each corresponding to one of three binding relationships. Binding relationship 1 is a one-to-one binding with only one configuration. Binding relationship 2 is a full binding of the submission queue, completion queue, and interrupt channel, with a one-to-one binding. This binding relationship requires traversing all completion queues and interrupt channels, thus providing N different configurations. When the configuration index is i, it means that all submission queues are bound to the i-th completion queue and interrupt channel. Binding relationship 3 is a one-to-one binding of the submission queue, completion queue, and interrupt channel, with a full binding. This binding relationship also provides N different configurations, and when the configuration index is i, it means that all completion queues are bound to the i-th MSI-X interrupt channel.

[0075] After verifying 2N+1 binding relationships, the host can generate the above verification report.

[0076] Based on the above embodiments, the present invention first creates a submission queue and a completion queue in the storage controller according to a preset queue number and queue depth. Then, it binds the submission queue, completion queue, and interrupt channel in the storage controller according to a preset binding relationship to set a working mode for the storage controller and verifies the interrupt aggregation function in this working mode. Subsequently, the present invention sets a load adjustment range according to the queue number and queue depth, adjusts the load value within the load adjustment range, and sends read / write requests to the storage controller based on the load value, adjusting the interrupt aggregation threshold of the storage controller. This enables the storage controller to process read / write requests and perform interrupt aggregation operations according to the interrupt aggregation threshold, i.e., controlling the storage controller to perform interrupt aggregation under different load conditions. Subsequently, the present invention collects the working data generated by the storage controller under various load values ​​to obtain the interrupt aggregation verification result corresponding to the current preset binding relationship. Furthermore, the present invention can switch preset binding relationships and determine the interrupt aggregation verification result of the storage controller under different preset binding relationships, i.e., switch the working mode of the storage controller and apply different loads to the storage controller in other working modes to verify the effect of the storage controller performing interrupt aggregation in other working modes. Thus, a verification report of the storage controller can be obtained based on the interrupt aggregation verification results corresponding to different preset binding relationships, thereby improving the verification effect of the interrupt aggregation function.

[0077] Based on the above embodiments, the setting and usage of load adjustment intervals will be described in detail below. Therefore, setting load adjustment intervals according to the number of queues and queue depth can include:

[0078] S201. Set the queue concurrency range based on the number of queues, set the request frequency range based on the number of queues and queue depth, and set the interruption aggregation threshold range based on queue depth.

[0079] Specifically, the range of concurrent queues can be: 1 to Q. max Q max This indicates the number of queues. The request frequency range can be 1 to H. max ×Q max H max This indicates the queue depth. The interrupt aggregation threshold range can be 1 to H. max .

[0080] Of course, to determine the specific load pressure level, this embodiment can be further divided into multiple sub-intervals based on the load pressure level. For example, the queue concurrency range and request frequency range can be further divided into three sub-intervals: light load, medium load, and heavy load.

[0081] Based on this, after setting the queue concurrency range according to the number of queues, and setting the request frequency range according to the number of queues and queue depth, it can also include:

[0082] Step 41: Divide the queue concurrency range and read / write request frequency range into at least two sub-ranges of queue concurrency and read / write request frequency corresponding to the load pressure level.

[0083] Specifically, the sub-ranges of queue concurrency, read / write request frequency, and interrupt aggregation threshold corresponding to each load pressure level are shown in the table below:

[0084] Table 2 Load Adjustment Range Table

[0085]

[0086] Furthermore, adjusting the load value within the load adjustment range, and sending read / write requests to the storage controller based on the load value, and adjusting the storage controller's interrupt aggregation threshold so that the storage controller processes the read / write requests and performs interrupt aggregation operations based on the interrupt aggregation threshold, may include:

[0087] S301. Adjust the queue concurrency in the queue concurrency range, adjust the read / write request frequency in the request frequency range, and adjust the interrupt aggregation threshold in the interrupt aggregation threshold range.

[0088] In this embodiment, the number of concurrent queues can be adjusted within the queue concurrency range, the read / write request frequency can be adjusted within the request frequency range, and the interrupt aggregation threshold can be adjusted within the interrupt aggregation threshold range. This allows the interrupt aggregation threshold to be sent to the storage controller, and read / write requests to be sent to the number of submission queues corresponding to the number of concurrent queues based on the read / write request frequency.

[0089] It should be noted that this embodiment does not limit how to adjust the above-mentioned queue concurrency, read / write request frequency, and interrupt aggregation threshold, which can be set according to actual application requirements. For example, the queue concurrency, read / write request frequency, and interrupt aggregation threshold can be increased together, or they can be increased separately, depending on the actual application requirements.

[0090] Furthermore, the load pressure can increase steadily or suddenly. To verify the performance of the storage controller under different load pressure increases, this embodiment can also set two operating modes: linear mode and burst mode. In linear mode, the queue concurrency is increased within the queue concurrency range, the read / write request frequency is increased within the request frequency range, and the interrupt aggregation threshold is increased within the interrupt aggregation threshold range, all according to the first step length. The first step length is, for example, 2%. In burst mode, the queue concurrency is increased within the queue concurrency range, the read / write request frequency is increased within the request frequency range, and the interrupt aggregation threshold is increased within the interrupt aggregation threshold range, all according to the second step length. The second step length is greater than the first step length, for example, 30%.

[0091] Based on this, adjusting the queue concurrency within the queue concurrency range, adjusting the read / write request frequency within the request frequency range, and adjusting the interrupt aggregation threshold within the interrupt aggregation threshold range can include:

[0092] Step 51: Determine the current operating mode.

[0093] Step 52: If the operation mode is linear mode, then increase the queue concurrency in the queue concurrency range, increase the read and write request frequency in the request frequency range, and increase the interrupt aggregation threshold in the interrupt aggregation threshold range, as per the first step.

[0094] Step 53: If the operation mode is burst mode, then increase the queue concurrency in the queue concurrency range, increase the read and write request frequency in the request frequency range, and increase the interrupt aggregation threshold in the interrupt aggregation threshold range according to the second step length; the second step length is greater than the first step length.

[0095] Furthermore, since this embodiment allows setting sub-ranges for queue concurrency and read / write request frequency corresponding to each load pressure level, adjustments can be made within these sub-ranges for the current load pressure level. It then determines whether the adjusted queue concurrency and read / write request frequency have reached the boundary values ​​of these sub-ranges for the current load pressure level. If they have, the adjustment is switched to the next load pressure level's sub-range for queue concurrency and read / write request frequency for further adjustment.

[0096] Based on this, adjusting the queue concurrency within a queue concurrency range and adjusting the read / write request frequency within a request frequency range can include:

[0097] Step 61: Adjust the queue concurrency and read / write request frequency in the queue concurrency sub-range and read / write request frequency sub-range corresponding to the current load pressure level, respectively.

[0098] Step 62: Determine whether the adjusted queue concurrency and read / write request frequency have reached the boundary values ​​of the queue concurrency sub-range and read / write request frequency sub-range corresponding to the current load pressure level.

[0099] Step 63: If the boundary value has been reached, switch to the queue concurrency number sub-range and read / write request frequency sub-range corresponding to the next load pressure level.

[0100] S302, The interrupt aggregation threshold is sent to the storage controller, and read and write requests are sent to the number of submission queues corresponding to the number of concurrent queues according to the frequency of read and write requests, so that the storage controller can retrieve read and write requests from the submission queues and execute them, add the execution results of the requests to the completion queue bound to the submission queues, and perform interrupt aggregation operation through the interrupt channel bound to the completion queues when the number of execution results of requests in the completion queues reaches the interrupt aggregation threshold.

[0101] In this step, after adjusting the queue concurrency, read / write request frequency, and interrupt aggregation threshold, the host can send the interrupt aggregation threshold to the storage controller and send read / write requests to the number of commit queues corresponding to the queue concurrency based on the read / write request frequency. The storage controller can then retrieve read / write requests from the commit queues and execute them, subsequently adding the execution results to the completion queue bound to the commit queues. When the number of execution results in the completion queue reaches the interrupt aggregation threshold, an interrupt aggregation operation is performed through the interrupt channel bound to the completion queue.

[0102] Furthermore, to effectively verify the performance of the storage controller under the current load pressure, it is necessary to stabilize the current load pressure for a period of time. Therefore, after setting the queue concurrency, read / write request frequency, and interrupt aggregation threshold, these values ​​must be maintained unchanged for a certain period. Only after this maintenance period reaches a certain threshold should the next round of adjustments be made.

[0103] Based on this, after adjusting the queue concurrency within the queue concurrency range, adjusting the read / write request frequency within the request frequency range, and adjusting the interrupt aggregation threshold within the interrupt aggregation threshold range, it may further include:

[0104] Step 71: Maintain the values ​​of queue concurrency, read / write request frequency, and interruption aggregation threshold according to the preset duration.

[0105] Step 72: When the duration reaches the preset duration, re-enter the steps of adjusting the queue concurrency in the queue concurrency range, adjusting the read / write request frequency in the request frequency range, and adjusting the interrupt aggregation threshold in the interrupt aggregation threshold range.

[0106] It should be noted that this embodiment does not limit the specific value of the preset duration, which can be set according to actual application needs, such as 10 minutes.

[0107] Based on the above embodiments, the storage controller verification method described below will be explained in detail with reference to specific schematic diagrams. This method comprises three parts: a load profile construction mechanism, a stress test model construction mechanism, and an automated scheduling mechanism. Each part will be described below.

[0108] 1. Load model construction mechanism

[0109] Please refer to Figure 5 , Figure 5 The load configuration construction flowchart provided in this embodiment of the invention specifically includes:

[0110] 1) Load Model Construction

[0111] To verify the MSI-X interrupt aggregation of the NVME controller under complex configurations, this mechanism will construct different load models to prompt the NVME controller to switch to different load modes.

[0112] The dynamic configuration in the load model is represented by a mapping table of SQ, CQ, and MSI-X interrupt channels. As shown in Table 1 of the above embodiment, this table is divided into three regions, each corresponding to one of three binding relationships. Binding relationship 1 is a one-to-one binding with only one configuration. Binding relationship 2 is a full binding of SQ and CQ with a one-to-one binding of MSI-X interrupt channels. This binding relationship requires traversing all CQ and MSI-X interrupt channels, thus providing N different configurations. When the configuration index is i, it means that all SQs are bound to the i-th CQ queue and the i-th MSI-X interrupt channel. Binding relationship 3 is a one-to-one binding of SQ and CQ with a full binding of MSI-X interrupt channels. This binding relationship also provides N different configurations, and when the configuration index is i, it means that all CQ queues are bound to the i-th MSI-X interrupt channel.

[0113] In summary, the SQ, CQ, and MSI-X interrupt channel mapping tables will provide 2N+1 different configurations and serve as dynamic configurations for the load model.

[0114] Table 3 Load Model

[0115]

[0116] As shown in Table 3, the load model consists of two parts: dynamic configuration and static configuration. The dynamic configuration includes the binding relationships between SQ, CQ, and MSI-X interrupt channels, as well as the corresponding configuration indices. The static configuration includes the number and depth of I / O queues. The construction steps are as follows:

[0117] Step 1: Determine the maximum number of I / O queues Q_max that the current NVME controller can support and the maximum depth H_max of each queue, and use this as the static configuration of the load model.

[0118] Step 2: Based on the SQ, CQ, and MSI-X interrupt mapping tables, determine the binding relationship and configuration index of the current load model. Since the number of configurations that can be provided in the mapping table is related to the number of I / O queues, the current load model can be set with 2Q_max+1 different dynamic configurations.

[0119] Step 3: Combine dynamic and static configurations to build a load model.

[0120] 2) Constructing load profiles

[0121] The steps for constructing the load profile are as follows:

[0122] Step 1: First, the NVME controller initialization operation needs to be completed to provide support for the subsequent construction of load profiles.

[0123] Step 2: Parse the dynamic configuration in the load model, and based on the binding relationships and configuration indexes, obtain the IOCQ queue corresponding to each IOSQ queue when it is created, as well as the MSI-X interrupt channel corresponding to the IOCQ queue when it is created.

[0124] Step 3: Analyze the static configuration in the load model to determine the number of I / O queues to be created and the depth of each queue.

[0125] Step 4: Based on the parsed information above, construct the relevant Admin commands and send them to the NVME controller to complete the I / O queue creation, and finally construct an NVME controller form consistent with the load model.

[0126] 2. Stress test model construction mechanism

[0127] Based on the analysis of the above embodiments, in order to ensure that MSI-X interrupted aggregation verification is conducted under various complex scenarios and to cover all relevant influencing factors as much as possible, the construction of the stress test model is divided into the following two parts:

[0128] 1) Load Dimension Definition

[0129] First, based on the total number of I / O queues Q defined by the load model. max and queue depth H max Define the range of the I / O concurrent queue in the spatial dimension as 1~Q. max The MSI-X interruption aggregation threshold is 1~H max Simultaneously, the load pressure range needs to be controlled by defining the number of I / O commands sent by an I / O queue per unit time. Therefore, based on the total number of I / O queues and queue depth, the maximum load pressure that can be provided is H commands per second. max ×Qmax I / O commands.

[0130] As shown in Table 2 of the above embodiments, this embodiment can define the range of variation of I / O concurrency, I / O command frequency and MSI-X aggregation threshold under three different pressure levels in the dimension of pressure intensity.

[0131] Finally, from the perspective of operation mode, the change step size of different attributes in linear and burst modes is defined. In linear mode, the number of concurrent I / O operations, I / O command frequency, and MSI-X interrupt aggregation threshold need to gradually increase or decrease at a rate of 2% every 10 minutes. In burst mode, the relevant attributes need to undergo abrupt changes at a rate of 10% every 10 minutes to verify the MSI-X interrupt aggregation response capability under instantaneous pressure.

[0132] 2) Stress test model construction

[0133] Based on the space, pressure intensity, and operating mode defined above, the pressure test model created is shown in the table below:

[0134] Table 4 Stress Test Model

[0135]

[0136] The stress test model described above can be used to determine the changes in I / O queue concurrency, I / O command frequency, and MSI-X interrupt aggregation threshold under different operating modes in light, medium, and heavy load conditions. This allows for the construction of different verification scenarios and provides relevant scenario information for the automatic scheduling mechanism.

[0137] 3. Automated scheduling mechanism:

[0138] Please refer to Figure 6 , Figure 6 A flowchart illustrating an automatic scheduling mechanism provided in an embodiment of the present invention. Figure 6 As shown, based on the information provided by the stress test model and load model, the automatic scheduling mechanism sets the current NVME controller load profile and identifies the stress level in the current scenario to determine the range of I / O concurrency, I / O command frequency, and MSI-X interrupt aggregation threshold. Simultaneously, it determines the rate of change of each parameter after each run based on the current operating mode. Finally, after reaching the boundary values, it switches the test scenario and exits the current scenario scheduling. Subsequently, it iterates through all stress test models based on different load models and repeats the above scheduling, ultimately generating the corresponding verification report.

[0139] Finally, to facilitate understanding of the overall process of storage controller interrupt aggregation verification in this embodiment, please refer to... Figure 7 , Figure 7This is a flowchart of an interrupted aggregation verification provided in an embodiment of the present invention.

[0140] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0141] Please refer to Figure 8 , Figure 8 This is a structural block diagram of a storage controller verification device provided in an embodiment of the present invention. The device may include:

[0142] The binding relationship setting module 801 is used to create a submission queue and a completion queue in the storage controller according to the preset queue number and queue depth, and to bind the submission queue, the completion queue and the interrupt channel in the storage controller according to the preset binding relationship;

[0143] The load pressure setting module 802 is used to set the load adjustment range according to the number of queues and the queue depth.

[0144] The verification module 803 is used to adjust the load value within the load adjustment range, and send read / write requests to the storage controller according to the load value, and adjust the interrupt aggregation threshold of the storage controller so that the storage controller can process the read / write requests and perform interrupt aggregation operations according to the interrupt aggregation threshold.

[0145] The acquisition module 804 is used to acquire the working data generated by the storage controller under various load values ​​and obtain the interrupt aggregation verification results corresponding to the preset binding relationship.

[0146] The switching module 805 is used to switch the preset binding relationship and determine the interrupt aggregation verification result of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification result corresponding to different preset binding relationships.

[0147] Optionally, the preset binding relationships include a first binding relationship where each submission queue is bound to a completion queue and each completion queue is bound to an interruption channel; a second binding relationship where all submission queues are bound to a single completion queue and each completion queue is bound to an interruption channel; and a third binding relationship where each submission queue is bound to a completion queue and each completion queue is bound to a single interruption channel. The binding relationship setting module 801 can be used for:

[0148] The first binding relationship is sent to the storage controller so that the storage controller binds the submission queue to the completion queue one by one, and binds the completion queue to the interrupt channel one by one;

[0149] Switching module 805 may include:

[0150] The first switching submodule is used to switch to the second binding relationship. In the i-th round of binding when switching to the second binding relationship, the storage controller is reset and the i-th sub-binding relationship in the second binding relationship is sent to the storage controller so that the storage controller binds all submission queues to the i-th completion queue and binds the i-th completion queue to the i-th interrupt channel.

[0151] The second switching submodule is used to switch to the third binding relationship. In the i-th round of binding when switching to the third binding relationship, the storage controller is reset and the i-th sub-binding relationship in the third binding relationship is sent to the storage controller so that the storage controller binds the submission queue to the completion queue one by one and binds all the completion queues to the i-th interrupt channel.

[0152] Optionally, the load pressure setting module 802 may include:

[0153] The interval setting submodule is used to set the queue concurrency range based on the number of queues, the request frequency range based on the number of queues and the queue depth, and the interruption aggregation threshold range based on the queue depth.

[0154] Verification module 803 may include:

[0155] The adjustment submodule is used to adjust the queue concurrency within the queue concurrency range, adjust the read and write request frequency within the request frequency range, and adjust the interrupt aggregation threshold within the interrupt aggregation threshold range.

[0156] The verification submodule is used to send the interrupt aggregation threshold to the storage controller and send read and write requests to the number of submission queues corresponding to the number of concurrent queues according to the read and write request frequency. This enables the storage controller to retrieve read and write requests from the submission queues and execute them, add the execution results to the completion queue bound to the submission queue, and perform interrupt aggregation operation through the interrupt channel bound to the completion queue when the number of execution results in the completion queue reaches the interrupt aggregation threshold.

[0157] Optionally, the verification module 803 may include:

[0158] The maintenance submodule is used to maintain the values ​​of queue concurrency, read / write request frequency, and interruption aggregation threshold according to a preset duration.

[0159] The adjustment submodule can be used to re-execute the steps of adjusting the queue concurrency in the queue concurrency range, adjusting the read and write request frequency in the request frequency range, and adjusting the interrupt aggregation threshold in the interrupt aggregation threshold range when the hold duration reaches the preset duration.

[0160] Optionally, the load pressure setting module 802 may include:

[0161] The interval division submodule is used to divide the queue concurrency range and the read / write request frequency range into at least two queue concurrency sub-ranges and read / write request frequency sub-ranges corresponding to the load pressure level.

[0162] The adjustment submodule may include:

[0163] The adjustment unit is used to adjust the queue concurrency and read / write request frequency in the queue concurrency sub-range and read / write request frequency sub-range corresponding to the current load pressure level, respectively.

[0164] The level switching unit is used to determine whether the adjusted queue concurrency and read / write request frequency have reached the boundary values ​​of the queue concurrency and read / write request frequency sub-ranges corresponding to the current load pressure level; if the boundary values ​​have been reached, it switches to the queue concurrency and read / write request frequency sub-ranges corresponding to the next load pressure level.

[0165] Optionally, the adjustment submodule may include:

[0166] The mode determination unit is used to determine the current operating mode;

[0167] The linear adjustment unit is used to increase the queue concurrency in the queue concurrency range, increase the read and write request frequency in the request frequency range, and increase the interrupt aggregation threshold in the interrupt aggregation threshold range, according to the first step length, if the operation mode is linear mode.

[0168] The burst adjustment unit is used to increase the queue concurrency in the queue concurrency range, increase the read / write request frequency in the request frequency range, and increase the interrupt aggregation threshold in the interrupt aggregation threshold range according to the second step size if the operation mode is burst mode; the second step size is greater than the first step size.

[0169] For a description of the features in the embodiment corresponding to the storage controller verification device, please refer to the relevant description in the embodiment corresponding to the storage controller verification method, which will not be repeated here.

[0170] Please refer to Figure 9 , Figure 9 A structural block diagram of a verification system provided in an embodiment of the present invention. This verification system may include:

[0171] Host 10 is used to execute the storage controller verification method described above;

[0172] Storage controller 20 is used to create a submission queue and a completion queue under the control of host 10, bind the submission queue, the completion queue and the interrupt channel in the storage controller according to the preset binding relationship, process read and write requests issued by host 10 and perform interrupt aggregation operation according to the interrupt aggregation threshold issued by host 10.

[0173] For a description of the features in the corresponding embodiment of the verification system, please refer to the relevant description of the corresponding embodiment of the storage controller verification method, which will not be repeated here.

[0174] Embodiments of the present invention also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above-described storage controller verification method embodiments.

[0175] Embodiments of the present invention also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described storage controller verification method embodiments when running.

[0176] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0177] Embodiments of the present invention also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described storage controller verification method embodiments.

[0178] Embodiments of the present invention also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described storage controller verification method embodiments.

[0179] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.

[0180] The present invention has provided a detailed description of a storage controller verification method, apparatus, verification system, and medium. Specific examples have been used to illustrate the principles and implementation methods of the invention. The descriptions of these embodiments are merely illustrative of the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to the invention without departing from its principles, and these improvements and modifications also fall within the scope of protection of the claims.

Claims

1. A storage controller verification method, characterized in that, include: Based on the preset number of queues and queue depth, a submission queue and a completion queue are created in the storage controller, and the submission queue, the completion queue, and the interrupt channel in the storage controller are bound according to the preset binding relationship; Set the load adjustment range according to the number of queues and the queue depth; The load value is adjusted within the load adjustment range, and a read / write request is sent to the storage controller based on the load value. The interrupt aggregation threshold of the storage controller is also adjusted so that the storage controller can process the read / write request and perform an interrupt aggregation operation based on the interrupt aggregation threshold. Collect the working data generated by the storage controller under various load values ​​to obtain the interrupt aggregation verification result corresponding to the preset binding relationship; Switch the preset binding relationship and determine the interrupt aggregation verification result of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification result corresponding to different preset binding relationships.

2. The storage controller verification method according to claim 1, characterized in that, The preset binding relationships include a first binding relationship where the submission queue is bound to the completion queue one by one and the completion queue is bound to the interruption channel one by one; a second binding relationship where all submission queues are bound to a single completion queue and the completion queue is bound to the interruption channel one by one; and a third binding relationship where the submission queue is bound to the completion queue one by one and all completion queues are bound to a single interruption channel.

3. The storage controller verification method according to claim 2, characterized in that, The step of binding the submission queue, the completion queue, and the interrupt channel in the storage controller according to a preset binding relationship includes: The first binding relationship is sent to the storage controller, so that the storage controller binds the submission queue to the completion queue one by one, and binds the completion queue to the interrupt channel one by one; The switching of the preset binding relationship includes: Switch to the second binding relationship, and in the i-th round of binding when switching to the second binding relationship, reset the storage controller and send the i-th sub-binding relationship in the second binding relationship to the storage controller, so that the storage controller binds all submission queues to the i-th completion queue and binds the i-th completion queue to the i-th interrupt channel; Alternatively, switch to the third binding relationship, and in the i-th round of binding when switching to the third binding relationship, reset the storage controller and send the i-th sub-binding relationship in the third binding relationship to the storage controller, so that the storage controller binds the submission queue to the completion queue one by one and binds all completion queues to the i-th interrupt channel.

4. The storage controller verification method according to any one of claims 1 to 3, characterized in that, The step of setting the load adjustment range based on the number of queues and the queue depth includes: Set a queue concurrency range based on the queue number, a request frequency range based on the queue number and the queue depth, and an interruption aggregation threshold range based on the queue depth; The step of adjusting the load value within the load adjustment range, sending read / write requests to the storage controller based on the load value, and adjusting the interrupt aggregation threshold of the storage controller, so that the storage controller processes the read / write requests and performs interrupt aggregation operations according to the interrupt aggregation threshold, includes: Adjust the queue concurrency within the queue concurrency range, adjust the read / write request frequency within the request frequency range, and adjust the interrupt aggregation threshold within the interrupt aggregation threshold range; The interrupt aggregation threshold is sent to the storage controller, and read / write requests are sent to the number of submission queues corresponding to the number of concurrent queues according to the read / write request frequency. This allows the storage controller to retrieve the read / write requests from the submission queues and execute them, add the execution results to the completion queue bound to the submission queues, and perform the interrupt aggregation operation through the interrupt channel bound to the completion queues when the number of execution results in the completion queues reaches the interrupt aggregation threshold.

5. The storage controller verification method according to claim 4, characterized in that, After adjusting the queue concurrency within the queue concurrency range, adjusting the read / write request frequency within the request frequency range, and adjusting the interrupt aggregation threshold within the interrupt aggregation threshold range, the method further includes: The values ​​of the queue concurrency, the read / write request frequency, and the interrupt aggregation threshold are maintained according to the preset duration. When the duration reaches the preset duration, the process re-enters the steps of adjusting the queue concurrency in the queue concurrency range, adjusting the read / write request frequency in the request frequency range, and adjusting the interrupt aggregation threshold in the interrupt aggregation threshold range.

6. The storage controller verification method according to claim 4, characterized in that, After setting the queue concurrency range based on the queue quantity and the request frequency range based on the queue quantity and the queue depth, the method further includes: The queue concurrency range and the read / write request frequency range are divided into at least two sub-ranges of queue concurrency and read / write request frequency corresponding to load pressure levels; The adjustment of the queue concurrency within the queue concurrency range and the adjustment of the read / write request frequency within the request frequency range include: Adjust the queue concurrency and read / write request frequency respectively within the queue concurrency sub-range and read / write request frequency sub-range corresponding to the current load pressure level; Determine whether the adjusted queue concurrency and the read / write request frequency have reached the boundary values ​​of the queue concurrency sub-interval and the read / write request frequency sub-interval corresponding to the current load pressure level. If the boundary value has been reached, then switch to the queue concurrency sub-range and read / write request frequency sub-range corresponding to the next load pressure level.

7. The storage controller verification method according to claim 4, characterized in that, The adjustment of queue concurrency within the queue concurrency range, the adjustment of read / write request frequency within the request frequency range, and the adjustment of interrupt aggregation threshold within the interrupt aggregation threshold range include: Determine the current operating mode; If the operation mode is linear mode, then according to the first step length, increase the queue concurrency in the queue concurrency range, increase the read / write request frequency in the request frequency range, and increase the interrupt aggregation threshold in the interrupt aggregation threshold range; If the operation mode is burst mode, then the queue concurrency is increased in the queue concurrency range, the read / write request frequency is increased in the request frequency range, and the interrupt aggregation threshold is increased in the interrupt aggregation threshold range according to the second step size; the second step size is greater than the first step size.

8. A storage controller verification device, characterized in that, include: The binding relationship setting module is used to create a submission queue and a completion queue in the storage controller according to the preset queue number and queue depth, and to bind the submission queue, the completion queue and the interrupt channel in the storage controller according to the preset binding relationship; A load pressure setting module is used to set a load adjustment range based on the number of queues and the queue depth. The verification module is used to adjust the load value within the load adjustment range, and send read / write requests to the storage controller according to the load value, and adjust the interrupt aggregation threshold of the storage controller, so that the storage controller processes the read / write requests and performs interrupt aggregation operations according to the interrupt aggregation threshold; The acquisition module is used to acquire the working data generated by the storage controller under various load values, and obtain the interrupt aggregation verification result corresponding to the preset binding relationship; The switching module is used to switch the preset binding relationship and determine the interrupt aggregation verification result of the storage controller in different preset binding relationships, so as to obtain the verification report of the storage controller based on the interrupt aggregation verification result corresponding to different preset binding relationships.

9. A verification system, characterized in that, include: A host computer for performing the storage controller verification method as described in any one of claims 1 to 7; The storage controller is used to create a submission queue and a completion queue under the control of the host, bind the submission queue, the completion queue and the interrupt channel in the storage controller according to a preset binding relationship, process read and write requests issued by the host, and perform interrupt aggregation operations according to the interrupt aggregation threshold issued by the host.

10. A non-volatile computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when loaded and executed by a processor, implement the storage controller verification method as described in any one of claims 1 to 7.