[go: up one dir, main page]

CN118075220B - Method, computer device and medium for packet descriptor reclamation - Google Patents

Method, computer device and medium for packet descriptor reclamation Download PDF

Info

Publication number
CN118075220B
CN118075220B CN202410501442.8A CN202410501442A CN118075220B CN 118075220 B CN118075220 B CN 118075220B CN 202410501442 A CN202410501442 A CN 202410501442A CN 118075220 B CN118075220 B CN 118075220B
Authority
CN
China
Prior art keywords
descriptor
reclamation
interrupt
message
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410501442.8A
Other languages
Chinese (zh)
Other versions
CN118075220A (en
Inventor
王旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202410501442.8A priority Critical patent/CN118075220B/en
Publication of CN118075220A publication Critical patent/CN118075220A/en
Application granted granted Critical
Publication of CN118075220B publication Critical patent/CN118075220B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application relates to the technical field of computers and provides a method, computer equipment and medium for recovering a package sending descriptor. The method comprises the following steps: executing, by software, a descriptor reclamation operation associated with a packet sending descriptor of a previous message relative to a current message in a ring buffer after writing the packet sending descriptor of the current message into the ring buffer; and judging whether to send an interrupt notification corresponding to the current message to the software or not based on the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the last message from the software through hardware, and if so, sending the interrupt notification to the software and setting the state value of the interrupt state register as the in-process state. Thus, the sending flow performance is improved, descriptors are recovered in time with high performance, and a message buffer area is rapidly released.

Description

Method, computer device and medium for packet descriptor reclamation
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method, a computer device, and a medium for packet delivery descriptor recovery.
Background
The network card and the data processing unit generally adopt a ring queue to construct a message sending queue, and the descriptor comprises an address pointer for executing information such as a memory physical address, a message length and the like of a message to be sent by filling the descriptor into the ring queue. After the chip sends the message, the identification in the update descriptor is sent. Because the space of the ring queue is limited, the descriptors of the sent messages need to be recovered in time, and resources are released. In the prior art, the processor is informed to continue recycling in a polling mode in an interrupt mode by interrupting the polling mode, namely after the message transmission is completed. However, the method is unfavorable for improving the sending flow performance, is difficult to recycle descriptors with high performance in time, and is unfavorable for rapidly releasing a message buffer zone.
To this end, the present application provides a method, computer device and medium for packet descriptor reclamation to address the technical difficulties in the prior art.
Disclosure of Invention
In a first aspect, the present application provides a method for hair pack descriptor reclamation. The method comprises the following steps: executing, by software, a descriptor reclamation operation associated with a packet sending descriptor of a previous message relative to a current message in a ring buffer after writing the packet sending descriptor of the current message into the ring buffer, where the software is further configured to: after writing the packet sending descriptor of the previous message into the ring buffer, sending a doorbell notification corresponding to the previous message to hardware, and after writing the packet sending descriptor of the current message into the ring buffer, sending a doorbell notification corresponding to the current message to the hardware; and judging whether to send an interrupt notification corresponding to the current message to the software or not based on a time interval between a doorbell notification corresponding to the current message and a doorbell notification corresponding to the previous message by the hardware, and if so, sending the interrupt notification to the software and setting a state value of an interrupt state register as an in-process state, wherein the software selects to execute a descriptor reclamation operation associated with a package descriptor of the previous message according to a first reclamation mode not based on the interrupt notification or a second reclamation mode based on the interrupt notification based on the state value of the interrupt state register at least before executing the descriptor reclamation operation associated with the package descriptor of the previous message.
According to the application, the problem of resource contention caused by simultaneous packet sending and recovery is effectively solved, the number of interruption is effectively reduced, the additional overhead caused by interruption notification is reduced, the sent message is prevented from being recovered for a long time, the performance of sending flow is improved, the descriptor is recovered in time with high performance, and the message buffer area is favorably and rapidly released.
In a possible implementation manner of the first aspect of the present application, when a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is greater than a time threshold, the hardware determines to send the interrupt notification to the software, and when a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is less than the time threshold, the hardware determines not to send the interrupt notification to the software.
In a possible implementation manner of the first aspect of the present application, the status value of the interrupt status register is the in-process status or the unreported status, wherein, at least before executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, the software selects, based on the status value of the interrupt status register, to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message in the first reclamation manner not based on the interrupt notification or the second reclamation manner based on the interrupt notification, including: when the state value of the interrupt state register is the unreported state, the software executes the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the first reclamation mode which is not based on the interrupt notification, and when the state value of the interrupt state register is the in-process state, the software executes the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the second reclamation mode which is based on the interrupt notification.
In a possible implementation manner of the first aspect of the present application, the software performs a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the first reclamation manner not based on the interrupt notification, including: the software determines the position of the packet sending descriptor of the previous message in the ring buffer based on the position of the packet sending descriptor of the current message in the ring buffer, then judges whether the packet sending descriptor of the previous message is used or not, and if so, recovers the packet sending descriptor of the previous message.
In a possible implementation manner of the first aspect of the present application, the software performs a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the second reclamation manner based on the interrupt notification, including: the software determines the position of the packet sending descriptor of the current message in the ring buffer and the position of the packet sending descriptor of the last message in the ring buffer based on the context of the interrupt notification, and then, the packet sending descriptor of the current message and the packet sending descriptor of the last message are recovered.
In a possible implementation manner of the first aspect of the present application, the software uses a first process and a first processor to perform a descriptor reclamation operation associated with a packet sending descriptor of the previous message in the first reclamation manner not based on the interrupt notification, and uses a second process and a second processor to perform a descriptor reclamation operation associated with a packet sending descriptor of the previous message in the second reclamation manner based on the interrupt notification.
In a possible implementation manner of the first aspect of the present application, after sending the interrupt notification to the software and setting the state value of the interrupt state register to the in-process state, the interrupt enabling of the hardware is turned off.
In a possible implementation manner of the first aspect of the present application, after performing a descriptor reclamation operation associated with a packet sending descriptor of the previous message in the first reclamation manner not based on the interrupt notification, the interrupt enabling of the hardware is started.
In a possible implementation manner of the first aspect of the present application, after performing a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the second reclamation manner based on the interrupt notification, the software sets a state value of the interrupt status register to the unreported state and starts interrupt enabling of the hardware.
In a possible implementation manner of the first aspect of the present application, the software is configured to avoid a concurrency conflict between the packet-sending reclamation associated with the first reclamation manner and the interrupt reclamation associated with the second reclamation manner by reading the status value of the interrupt status register.
In a possible implementation manner of the first aspect of the present application, when the status value of the interrupt status register is the unreported status, the software performs the packet reclamation associated with the first reclamation manner and simultaneously avoids triggering the interrupt reclamation associated with the second reclamation manner, and when the status value of the interrupt status register is the in-process status, the software performs the interrupt reclamation associated with the second reclamation manner and simultaneously avoids triggering the packet reclamation associated with the first reclamation manner.
In a possible implementation manner of the first aspect of the present application, after performing the interrupt recycling associated with the second recycling manner, a state value of the interrupt state register is set to the unreported state.
In a possible implementation manner of the first aspect of the present application, after the transmitting the previous message, the hardware modifies a packet descriptor of the previous message in the ring buffer to be used, and after the transmitting the current message, the hardware modifies a packet descriptor of the current message in the ring buffer to be used.
In a second aspect, embodiments of the present application further provide a computer device, the computer device including a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor implementing a method according to any one of the implementations of any one of the above aspects when the computer program is executed.
In a third aspect, embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
In a fourth aspect, embodiments of the present application also provide a computer program product comprising instructions stored on a computer-readable storage medium, which when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present application, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of implementing packet sending descriptor reclamation based on ring buffering between software and hardware according to an embodiment of the present application;
FIG. 2 is a flow chart of a method for packet descriptor reclamation according to an embodiment of the present application;
Fig. 3 is a schematic structural diagram of a computing device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
It should be understood that in the description of the application, "at least one" means one or more than one, and "a plurality" means two or more than two. In addition, the words "first," "second," and the like, unless otherwise indicated, are used solely for the purposes of description and are not to be construed as indicating or implying a relative importance or order.
Fig. 1 is a schematic diagram of implementing packet sending descriptor reclamation based on ring buffering between software and hardware according to an embodiment of the present application. As shown in fig. 1, the packet descriptor reclamation is achieved between software 102 and hardware 106 through ring buffer 104. The packet descriptor is used for a packet sending operation, and generally includes an address pointer for pointing to the memory physical address of a packet to be sent, and a packet length and an identifier. The identification of the hair pack descriptor is used to indicate whether the hair pack descriptor has been used. The hardware 106 obtains the message to be sent by reading the packet descriptor in the ring buffer 104 and updating the identity of the corresponding packet descriptor as already used. The ring buffer 104 is used to store a ring queue associated with the messaging. Included in the ring buffer 104 are a head pointer and a tail pointer. The tail pointer points to the packet descriptor of the next message to be sent. When there is a message to be sent, the message information is filled in the position of the packet sending descriptor indicated by the tail pointer, one is added to the tail pointer, and when the tail pointer is equal to the depth of the ring buffer 104, the tail pointer is cleared. The head pointer points to the next hair pack descriptor to be reclaimed, by checking the identity of the hair pack descriptor indicated by the head pointer, if the identity indicates that it has been used, reclaiming the hair pack descriptor, freeing up resources, and adding one to the head pointer, and clearing the head pointer when the head pointer is equal to the depth of the ring buffer 104. The state of the ring queue in ring buffer 104 for packet forwarding can be determined by comparing the head pointer and the tail pointer, which means that the ring queue is empty when the head pointer is equal to the tail pointer and that the queue is full when the tail pointer is equal to the head pointer minus one.
With continued reference to FIG. 1, a number of operations between software and hardware to implement packet descriptor reclamation based on ring buffers are illustrated in FIG. 1. Wherein, the descriptor is written in operation S111, which means that the software 102 writes the packet sending descriptor of the next packet to be sent into the ring buffer 104, i.e. fills in the packet information at the position of the packet sending descriptor indicated by the tail pointer, and adds one to the tail pointer, and clears the tail pointer when the tail pointer is equal to the depth of the ring buffer 104. Then, a doorbell notification is issued in operation S112, which means that the software 102 issues a doorbell notification to the hardware 106 after writing the wrap descriptor to the ring buffer 104. Then, the descriptor is read in operation S113, which means that the hardware 106 reads the packet-sending descriptor from the ring buffer 104 after receiving the doorbell notification, that is, the hardware 106 reads the packet-sending descriptor in the ring buffer 104 to acquire the message to be transmitted. Then, a message is transmitted in operation S114, which means that the hardware 106 transmits the message. Then, the descriptor is modified to be used in operation S115, which means that the hardware 106 updates the identification of the corresponding packet descriptor to be used after transmitting the message. Then, an interrupt notification is issued in operation S116, which means that the hardware 106 notifies the software 102 of recycling the package descriptor by means of the interrupt notification. Then, the used descriptor is reclaimed in operation S117, which means that the software 102 reclaims the used descriptor from the ring buffer 104, that is, by checking the identification of the packet descriptor indicated by the head pointer, reclaiming the packet descriptor if the identification indicates that it has been used, freeing the resource, and adding one to the head pointer, and clearing the head pointer when the head pointer is equal to the depth of the ring buffer 104. In general, after the completion of the message transmission, i.e., after the transmission of the message in operation S114, the hardware 106 updates the identifier of the corresponding packet transmission descriptor to be used, i.e., modifies the descriptor to be used in operation S115, and notifies the software 102 in an interrupt manner, i.e., issues an interrupt notification in operation S116, so that the interrupt can be continuously recovered in a polling manner in the lower half of the interrupt by using the interrupt processing mechanism, and the interrupt is re-enabled after the recovery is completed, where the interrupt-polling packet transmission descriptor recovery manner is interrupted, and the interrupt notification is issued to the software 102 by the hardware 106. in other words, after the hardware 106 completes the message transmission, the software 102 is driven by the hardware 106 in an interrupt notification manner to recover the used packet descriptors. However, the loss of interrupting the polling is introduced, and the simultaneous sending and recycling of packets is possible to further lead to resource contention, which is unfavorable for improving the sending flow performance, difficult for timely recycling descriptors with high performance, and unfavorable for rapidly releasing the message buffer area. In some cases, the hardware 106 may notify the software 102 in batches to attempt to reclaim after sending a plurality of messages, so that the software 102 may be driven to reclaim a plurality of packet descriptors at a time, thereby improving the packet efficiency, but still incur delay and interrupt overhead for aggregating a plurality of packets. The software 102 may actively attempt to recover the packet descriptor of the previous packet after writing the packet descriptor of the current packet into the ring buffer 104, but this means that recovery of the packet descriptor of the previous packet needs to be deferred until the software 102 transmits the next packet, and the transmission time of the previous packet and the transmission time of the next packet may be separated by a long period, for example, the previous packet may be a tail packet and the next packet may be a head packet, which may result in a long time for the remaining transmitted packet not to be recovered, relative to the recovery of the packet descriptor already used by the software 102 driven by the hardware 106 in the interrupt notification manner. Therefore, the method for recovering the packet sending descriptor effectively solves the problem of resource contention caused by simultaneous packet sending and recovery, effectively reduces the interrupt times, namely reduces the additional overhead caused by interrupt notification, and avoids the fact that the sent packet cannot be recovered for a long time, thereby realizing the purpose of improving the sending flow performance, timely and high-performance recovery of the descriptor, and being beneficial to quick release of the packet buffer zone, and is described in detail below with reference to fig. 2 and other embodiments and implementations.
Fig. 2 is a flow chart of a method for packet descriptor reclamation according to an embodiment of the present application. As shown in fig. 2, the method for packet descriptor reclamation includes the following steps.
Step S210: executing, by software, a descriptor reclamation operation associated with a packet sending descriptor of a previous message relative to a current message in a ring buffer after writing the packet sending descriptor of the current message into the ring buffer, where the software is further configured to: after writing the packet sending descriptor of the previous message into the ring buffer, sending a doorbell notification corresponding to the previous message to hardware, and after writing the packet sending descriptor of the current message into the ring buffer, sending a doorbell notification corresponding to the current message to the hardware;
Step S220: and judging whether to send an interrupt notification corresponding to the current message to the software or not based on the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the last message from the software through the hardware, and if so, sending the interrupt notification to the software and setting the state value of an interrupt state register as the in-process state.
Wherein the software, at least before executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, selects to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to a first reclamation mode not based on the interrupt notification or a second reclamation mode based on the interrupt notification based on the state value of the interrupt state register.
Referring to fig. 2, in step S210, after writing a packet descriptor of a current packet into a ring buffer, a descriptor reclamation operation associated with the packet descriptor of a previous packet in the ring buffer with respect to the current packet is performed. Wherein the software is further for: and after writing the packet sending descriptor of the previous message into the ring buffer, sending a doorbell notification corresponding to the previous message to hardware, and after writing the packet sending descriptor of the current message into the ring buffer, sending a doorbell notification corresponding to the current message to the hardware. Here, the current message may be understood as a subsequent message, and the previous message may be understood as a previous message, so that the message sending order is to send the previous message, that is, the previous message, and then send the subsequent message, that is, the current message. And after writing the packet sending descriptor of the current message into the ring buffer, executing the descriptor recycling operation associated with the packet sending descriptor of the previous message by software. Therefore, the method for recovering the packet descriptor of the previous message when the software actively transmits the subsequent message is independent of the uploading of the interrupt notification, the number of interrupts can be effectively reduced under the application of large-flow packet transmission, and the related cost of an interrupt processing mechanism is reduced. In addition, the software is also used for: and after writing the packet sending descriptor of the previous message into the ring buffer, sending a doorbell notification corresponding to the previous message to hardware, and after writing the packet sending descriptor of the current message into the ring buffer, sending a doorbell notification corresponding to the current message to the hardware. Thus, the software is realized to send doorbell notification to hardware in time.
With continued reference to fig. 2, in step S220, by the hardware, based on a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the last message from the software, it is determined whether to send an interrupt notification corresponding to the current message to the software, and if so, the interrupt notification is sent to the software and the status value of the interrupt status register is set to be the in-process status. As mentioned above, the current message may be understood as a subsequent message, and the previous message may be understood as a previous message, so that the message transmission order is to transmit the previous message, that is, the previous message, and then transmit the subsequent message, that is, the current message. In consideration of the complex and changeable environment in practical application, the transmission time of the front-stage message and the transmission time of the rear-stage message may be longer, for example, the front-stage message may be a tail packet of one stream and the rear-stage message may be a head packet of another stream. Therefore, the method of recovering the packet descriptor of the preceding message when the software actively transmits the subsequent message can be combined with the method of driving the software to recover the packet descriptor of the preceding message by the hardware in an interrupt notification mode, so that the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message can be compared with a preset threshold value through the hardware, for example, and the basis can be provided for transmitting the interrupt notification. When a packet is sent, hardware needs to be notified by doorbell notification after the packet descriptor is ready. Therefore, when the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is sufficiently small, this means that the packet sending interval between the preceding message and the subsequent message is sufficiently small, which means that software may send packets at a high speed, and thus is not suitable for reporting interrupt notifications, and thus it is determined that interrupt notifications corresponding to the current message are not sent to the software. In contrast, when the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is sufficiently large, this means that the packet sending interval between the preceding-stage message and the subsequent-stage message is sufficiently large, which means that the software packet sending interval is large, for example, the hardware senses that the doorbell notification is overtime, so that the doorbell notification is suitable for reporting the interrupt notification, and therefore, the interrupt notification corresponding to the current message is judged to be sent to the software.
With continued reference to fig. 2, the software, at least prior to performing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, selects to perform the descriptor reclamation operation associated with the packet sending descriptor of the previous message in either a first reclamation manner not based on the interrupt notification or a second reclamation manner based on the interrupt notification based on the state value of the interrupt state register. The time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is monitored through hardware, and the time interval is enough for hours, which indicates that software may send packets at high speed, so that the interrupt notification is not suitable for being reported, and therefore it is judged that the interrupt notification corresponding to the current message is not sent to the software. Therefore, the method for recovering the packet descriptor of the preceding message when the software actively transmits the subsequent message and the method for driving the software to recover the packet descriptor of the preceding message by the hardware in an interrupt notification mode are combined, and recovery of the packet descriptor is completed as much as possible by the method for recovering the packet descriptor of the preceding message when the software actively transmits the subsequent message, so that the interrupt times are reduced, the related cost of an interrupt processing mechanism is reduced, and meanwhile, the transmitted message is prevented from being recovered for a long time by detecting the packet transmission interval between the preceding message and the subsequent message. Further, in step S220, when the hardware determines whether to send the interrupt notification corresponding to the current message to the software, the hardware sends the interrupt notification to the software and sets the status value of the interrupt status register to be the in-process status. Here, the software may, for example, read the state value of the interrupt state register based on the state value of the interrupt state register, so as to select to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message in the first reclamation manner or the second reclamation manner. Here, the first reclamation method is not based on the interrupt notification, and therefore, the first reclamation method corresponds to a method of reclaiming the packet descriptor of the preceding packet when the software actively transmits the subsequent packet. The second reclamation method is based on the interrupt notification, and therefore corresponds to a method in which the hardware drives the software to reclaim the packet descriptor of the preceding message in the interrupt notification method. In this way, the software selects one reclamation mode between the first reclamation mode which is not based on the interrupt notification and the second reclamation mode which is based on the interrupt notification based on the state value of the interrupt state register to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message, so that resource contention caused by executing the two reclamation modes simultaneously is avoided. In other words, the way to recycle the package descriptor of the preceding message when the software actively sends the subsequent message corresponds to recycling the package descriptor of the preceding message in a first recycling way that is not based on the interrupt notification, and the way to recycle the package descriptor of the preceding message by the hardware driving the software in the interrupt notification way corresponds to recycling the package descriptor of the preceding message in a second recycling way that is based on the interrupt notification. As mentioned above, when the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is sufficiently large, this means that the packet interval between the preceding message and the subsequent message is sufficiently large, which means that the software packet interval is large, for example, the hardware senses that the doorbell notification is overtime, so that the doorbell notification is suitable for reporting the interrupt notification, and therefore, the interrupt notification corresponding to the current message is determined to be sent to the software. Here, in order to avoid the concurrent conflict between interrupt reclamation and packet reclamation caused by hardware sending interrupt notification while software times out to send packets, by limiting the software, at least before executing the descriptor reclamation operation associated with the packet descriptor of the previous message, the state value of the interrupt status register is based, so that one reclamation mode is selected between a first reclamation mode not based on the interrupt notification and a second reclamation mode based on the interrupt notification (which means that two reclamation modes cannot be selected simultaneously), thus effectively overcoming the problem of resource contention caused by simultaneous packet reclamation and reclamation.
In short, the method for recovering the packet sending descriptors shown in fig. 2 realizes the combination of a mode of recovering the packet sending descriptors of the preceding-stage messages when the software actively sends the subsequent messages and a mode of driving the software to recover the packet sending descriptors of the preceding-stage messages by the hardware in an interrupt notification mode, and finishes the recovery of the packet sending descriptors as much as possible by the mode of recovering the packet sending descriptors of the preceding-stage messages when the software actively sends the subsequent messages, thereby reducing the interrupt times and the related expenditure of an interrupt processing mechanism, and avoiding the long-time recovery of the sent messages by detecting the packet sending interval between the preceding-stage messages and the subsequent-stage messages; and, by defining the software, at least before executing the descriptor reclaiming operation associated with the packet sending descriptor of the previous message, based on the state value of the interrupt state register, one reclaiming mode is selected between a first reclaiming mode not based on the interrupt notification and a second reclaiming mode based on the interrupt notification (which means that two reclaiming modes cannot be selected at the same time), thus effectively overcoming the problem of resource contention caused by simultaneous performance of packet sending and reclaiming.
In one possible implementation manner, when a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is greater than a time threshold, the hardware determines to send the interrupt notification to the software, and when a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is less than the time threshold, the hardware determines not to send the interrupt notification to the software. When the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the last message is sufficiently small (less than a time threshold), this means that the packet sending interval between the preceding-stage message and the following-stage message is sufficiently small, which means that software may send packets at a high speed, and thus is not suitable for reporting interrupt notifications, so that it is determined that the interrupt notification corresponding to the current message is not sent to the software. In contrast, when the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is sufficiently large (greater than the time threshold), this means that the packet interval between the preceding-stage message and the subsequent-stage message is sufficiently large, which means that the software packet interval is large, for example, the hardware senses that the doorbell notification is overtime, so that the doorbell notification is suitable for reporting the interrupt notification, and therefore, the interrupt notification corresponding to the current message is determined to be sent to the software. Therefore, by detecting the packet sending interval between the front-stage message and the rear-stage message, the phenomenon that the sent message cannot be recovered for a long time is avoided.
In one possible implementation manner, the status value of the interrupt status register is the in-process status or the unreported status, where the software, at least before executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, selects, based on the status value of the interrupt status register, to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message in the first reclamation manner not based on the interrupt notification or the second reclamation manner based on the interrupt notification, including: when the state value of the interrupt state register is the unreported state, the software executes the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the first reclamation mode which is not based on the interrupt notification, and when the state value of the interrupt state register is the in-process state, the software executes the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the second reclamation mode which is based on the interrupt notification. Here, the software may, for example, read the state value of the interrupt state register based on the state value of the interrupt state register, so as to select to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message in the first reclamation manner or the second reclamation manner. The first reclamation method is not based on the interrupt notification, so the first reclamation method corresponds to a method for reclaiming the packet sending descriptor of the previous message when the software actively sends the subsequent message. The second reclamation method is based on the interrupt notification, and therefore corresponds to a method in which the hardware drives the software to reclaim the packet descriptor of the preceding message in the interrupt notification method. In this way, the software selects one reclamation mode between the first reclamation mode which is not based on the interrupt notification and the second reclamation mode which is based on the interrupt notification based on the state value of the interrupt state register to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message, so that resource contention caused by executing the two reclamation modes simultaneously is avoided. When the status value of the interrupt status register is the unreported status, this means that hardware does not send an interrupt notification corresponding to the current message to the software, so that the interrupt notification is not reported, and the method is suitable for executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the first reclamation mode not based on the interrupt notification. In contrast, when the status value of the interrupt status register is the in-process status, this means that hardware sends an interrupt notification corresponding to the current message to the software, so that the interrupt notification has been reported and has not been processed, and it is also suitable to execute the descriptor reclamation operation associated with the packet descriptor of the previous message according to the second reclamation manner based on the interrupt notification.
In some embodiments, the software performs a descriptor reclamation operation associated with a packet descriptor of the previous message in the first reclamation manner that is not based on the interrupt notification, comprising: the software determines the position of the packet sending descriptor of the previous message in the ring buffer based on the position of the packet sending descriptor of the current message in the ring buffer, then judges whether the packet sending descriptor of the previous message is used or not, and if so, recovers the packet sending descriptor of the previous message. The method for recovering the packet sending descriptor of the preceding message when the software actively sends the subsequent message corresponds to recovering the packet sending descriptor of the preceding message according to a first recovery method which is not based on the interrupt notification. After the software writes the packet sending descriptor of the message to be sent to the ring buffer each time, the software actively tries to recover the packet sending descriptor of the opposite last message, so that the mode of recovering the packet sending descriptor of the previous-stage message when the software actively sends the subsequent message is independent of the uploading of the interrupt notification, the number of interrupt times can be effectively reduced under the application of large-flow packet sending, and the related expenditure of an interrupt processing mechanism is reduced.
In some embodiments, the software performs a descriptor reclamation operation associated with a packet descriptor of the previous message in the second reclamation manner based on the interrupt notification, comprising: the software determines the position of the packet sending descriptor of the current message in the ring buffer and the position of the packet sending descriptor of the last message in the ring buffer based on the context of the interrupt notification, and then, the packet sending descriptor of the current message and the packet sending descriptor of the last message are recovered. When the status value of the interrupt status register is the in-process status, this means that hardware sends an interrupt notification corresponding to the current message to the software, so that the interrupt notification has been reported and has not been processed, and it is suitable to execute the descriptor reclamation operation associated with the packet descriptor of the previous message according to the second reclamation manner based on the interrupt notification. Thus, the interrupt handling mechanism may be utilized, and information in the interrupt handle, such as the context of the interrupt notification, may be utilized, so that the location of the packet descriptor of the current message in the ring buffer and the location of the packet descriptor of the previous message in the ring buffer may be determined, and then the packet descriptor of the current message and the packet descriptor of the previous message may be recovered. Therefore, an interrupt processing mechanism is utilized, and recovery efficiency is improved.
In some embodiments, the software utilizes a first process and a first processor to perform descriptor reclamation operations associated with the packet sending descriptor of the previous message in the first reclamation manner that is not based on the interrupt notification, and a second process and a second processor to perform descriptor reclamation operations associated with the packet sending descriptor of the previous message in the second reclamation manner that is based on the interrupt notification. By defining the software, at least before executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, one reclamation mode is selected between a first reclamation mode not based on the interrupt notification and a second reclamation mode based on the interrupt notification (which means that two reclamation modes cannot be selected simultaneously), thus effectively overcoming the problem of resource contention caused by concurrent sending and reclamation. Further, by executing the corresponding reclamation method by using different processes and different processors, the method for reclaiming the packet sending descriptor of the preceding message when the software actively sends the subsequent message is to use the first process and the first processor, and the method for driving the software to reclaim the packet sending descriptor of the preceding message by the hardware in an interrupt notification method is to use the second process and the second processor, which is beneficial to avoiding the concurrent conflict of interrupt reclamation and packet sending reclamation.
In some embodiments, the hardware turns off interrupt enablement of the hardware after sending the interrupt notification to the software and setting the state value of the interrupt state register to the in-process state. When the status value of the interrupt status register is the in-process status, this means that hardware sends an interrupt notification corresponding to the current message to the software, so that the interrupt notification has been reported and has not been processed, and it is suitable to execute the descriptor reclamation operation associated with the packet descriptor of the previous message according to the second reclamation manner based on the interrupt notification. In this way, by turning off the interrupt enable of the hardware, the descriptor reclamation operation associated with the packet sending descriptor of the previous message can be performed in the second reclamation manner based on the interrupt notification by better matching with the software.
In some embodiments, the software initiates interrupt enablement of the hardware after performing a descriptor reclamation operation associated with a packet descriptor of the previous message in the first reclamation manner that is not based on the interrupt notification. When the software actively recovers, the software reads the interrupt state register to be used as a judgment basis for the subsequent specific operation. If the interrupt notification is not reported, i.e., when the status value of the interrupt status register is the unreported status, the hardware may automatically shut down the interrupt enable and set the status value of the interrupt status register to the unreported status. In this way, after the software executes the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the first reclamation mode which is not based on the interrupt notification, the interrupt enabling of the hardware is started, so that the interrupt times and the related expenditure of an interrupt processing mechanism are reduced, and the resource contention problem caused by simultaneous packet sending and reclamation is effectively solved.
In some embodiments, the software sets a state value of the interrupt status register to the unreported state and initiates interrupt enablement of the hardware after performing a descriptor reclamation operation associated with a packet descriptor of the previous message in the second reclamation manner based on the interrupt notification. When the status value of the interrupt status register is the in-process status, the software performs a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the second reclamation manner based on the interrupt notification. In this way, the software sets the state value of the interrupt state register to the unreported state and starts interrupt enabling of the hardware after executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message according to the second reclamation mode based on the interrupt notification. Therefore, the interrupt state register is utilized, and the problem of resource contention caused by simultaneous package sending and recovery is effectively solved by closing interrupt enabling by hardware and starting interrupt enabling by software aiming at the competing scene that the interrupt notification recovery is triggered by the overtime of the hardware package sending timer and the recovery is triggered by the software sending message.
In some embodiments, the software avoids concurrency conflicts between the packet reclamation associated with the first reclamation pattern and the interrupt reclamation associated with the second reclamation pattern by reading the status value of the interrupt status register. Thus, the problem of resource contention caused by simultaneous performance of the unpacking and recycling is effectively overcome.
In some embodiments, the software performs the first reclamation pattern associated with a packet reclamation and simultaneously avoids triggering the second reclamation pattern associated with an interrupt reclamation when the state value of the interrupt state register is the unreported state, and performs the second reclamation pattern associated with an interrupt reclamation and simultaneously avoids triggering the first reclamation pattern associated with a packet reclamation when the state value of the interrupt state register is the in-process state. Thus, the problem of resource contention caused by simultaneous performance of the unpacking and recycling is effectively overcome.
In some embodiments, the software sets a state value of the interrupt status register to the unreported state after performing interrupt reclamation associated with the second reclamation manner. Therefore, the interrupt state register is utilized to effectively solve the problem of resource contention caused by simultaneous packet sending and recovery aiming at the competing scene that the hardware packet sending timer triggers interrupt notification recovery and the software message sending triggers recovery.
In one possible implementation, the hardware modifies a packet descriptor of the previous message in the ring buffer to be used after the previous message is sent, and the hardware modifies a packet descriptor of the current message in the ring buffer to be used after the current message is sent. In this way, ring buffer based packet descriptor reclamation is achieved.
Fig. 3 is a schematic structural diagram of a computing device according to an embodiment of the present application, where the computing device 300 includes: one or more processors 310, a communication interface 320, and a memory 330. The processor 310, the communication interface 320 and the memory 330 are interconnected by a bus 340. Optionally, the computing device 300 may further include an input/output interface 350, where the input/output interface 350 is connected to an input/output device for receiving parameters set by a user, etc. The computing device 300 can be used to implement some or all of the functionality of the device embodiments or system embodiments of the present application described above; the processor 310 can also be used to implement some or all of the operational steps of the method embodiments described above in connection with the embodiments of the present application. For example, specific implementations of the computing device 300 performing various operations may refer to specific details in the above-described embodiments, such as the processor 310 being configured to perform some or all of the steps of the above-described method embodiments or some or all of the operations of the above-described method embodiments. For another example, in an embodiment of the present application, the computing device 300 may be configured to implement some or all of the functionality of one or more components of the apparatus embodiments described above, and the communication interface 320 may be configured to implement communication functions and the like necessary for the functionality of the apparatus, components, and the processor 310 may be configured to implement processing functions and the like necessary for the functionality of the apparatus, components.
It should be appreciated that the computing device 300 of fig. 3 may include one or more processors 310, and that the plurality of processors 310 may cooperatively provide processing power in a parallelized connection, a serialized connection, a serial-parallel connection, or any connection, or the plurality of processors 310 may constitute a processor sequence or processor array, or the plurality of processors 310 may be separated into primary and secondary processors, or the plurality of processors 310 may have different architectures such as employing heterogeneous computing architectures. In addition, the computing device 300 shown in FIG. 3, the associated structural and functional descriptions are exemplary and not limiting. In some example embodiments, computing device 300 may include more or fewer components than shown in fig. 3, or combine certain components, or split certain components, or have a different arrangement of components.
Processor 310 may take many specific forms, for example, processor 310 may include one or more combinations of a central processing unit (central processing unit, CPU), a graphics processor (graphic processing unit, GPU), a neural network processor (neural-network processing unit, NPU), a tensor processor (tensor processing unit, TPU), or a data processor (data processing unit, DPU), and embodiments of the present application are not limited in this respect. Processor 310 may also be a single-core processor or a multi-core processor. The processor 310 may be formed by a combination of a CPU and a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (FPGA) GATE ARRAY, generic array logic (GENERIC ARRAY logic, GAL), or any combination thereof. Processor 310 may also be implemented solely with logic devices incorporating processing logic, such as an FPGA or Digital Signal Processor (DSP), etc. The communication interface 320 may be a wired interface, which may be an ethernet interface, a local area network (local interconnect network, LIN), etc., or a wireless interface, which may be a cellular network interface, or use a wireless lan interface, etc., for communicating with other modules or devices.
The memory 330 may be a nonvolatile memory such as a read-only memory (ROM), a Programmable ROM (PROM), an erasable programmable ROM (erasable PROM, EPROM), an electrically erasable programmable EPROM (EEPROM), or a flash memory. Memory 330 may also be volatile memory, which may be random access memory (random access memory, RAM) used as external cache memory. By way of example, and not limitation, many forms of RAM are available, such as static random access memory (STATIC RAM, SRAM), dynamic random access memory (DYNAMIC RAM, DRAM), synchronous Dynamic Random Access Memory (SDRAM), double data rate synchronous dynamic random access memory (double DATA RATE SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (ENHANCED SDRAM, ESDRAM), synchronous link dynamic random access memory (SYNCHLINK DRAM, SLDRAM), and direct memory bus random access memory (direct rambus RAM, DR RAM). Memory 330 may also be used to store program code and data such that processor 310 invokes the program code stored in memory 330 to perform some or all of the operational steps of the method embodiments described above, or to perform corresponding functions in the apparatus embodiments described above. Moreover, computing device 300 may contain more or fewer components than shown in FIG. 3, or may have a different configuration of components.
Bus 340 may be a peripheral component interconnect express (PERIPHERAL COMPONENT INTERCONNECT EXPRESS, PCIe) bus, or an extended industry standard architecture (extended industry standard architecture, EISA) bus, a unified bus (unified bus, ubus or UB), a computer quick link (compute express link, CXL), a cache coherent interconnect protocol (cache coherent interconnect for accelerators, CCIX), or the like. The bus 340 may be divided into an address bus, a data bus, a control bus, and the like. The bus 340 may include a power bus, a control bus, a status signal bus, and the like in addition to a data bus. But is shown with only one bold line in fig. 3 for clarity of illustration, but does not represent only one bus or one type of bus.
The method and the device provided by the embodiment of the application are based on the same inventive concept, and because the principle of solving the problem by the method and the device is similar, the embodiment, the implementation, the example or the implementation of the method and the device can be mutually referred, and the repetition is not repeated. Embodiments of the present application also provide a system comprising a plurality of computing devices, each of which may be structured as described above. The functions or operations that may be implemented by the system may refer to specific implementation steps in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein.
Embodiments of the present application also provide a computer-readable storage medium having stored therein computer instructions which, when executed on a computer device (e.g., one or more processors), implement the method steps of the method embodiments described above. The specific implementation of the processor of the computer readable storage medium in executing the above method steps may refer to specific operations described in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein again.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. The application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Embodiments of the application may be implemented, in whole or in part, in software, hardware, firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The present application may take the form of a computer program product embodied on one or more computer-usable storage media having computer-usable program code embodied therein. The computer program product includes one or more computer instructions. When loaded or executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line), or wireless (e.g., infrared, wireless, microwave, etc.). Computer readable storage media can be any available media that can be accessed by a computer or data storage devices, such as servers, data centers, etc. that contain one or more collections of available media. Usable media may be magnetic media (e.g., floppy disks, hard disks, tape), optical media, or semiconductor media. The semiconductor medium may be a solid state disk, or may be a random access memory, flash memory, read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, register, or any other form of suitable storage medium.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the application. Each flow and/or block of the flowchart and/or block diagrams, and combinations of flows and/or blocks in the flowchart and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments. It will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments of the present application without departing from the spirit or scope of the embodiments of the application. The steps in the method of the embodiment of the application can be sequentially adjusted, combined or deleted according to actual needs; the modules in the system of the embodiment of the application can be divided, combined or deleted according to actual needs. The present application is also intended to include such modifications and alterations if they come within the scope of the claims and the equivalents thereof.

Claims (12)

1. A method for packet descriptor reclamation, the method comprising:
Executing, by software, a descriptor reclamation operation associated with a packet sending descriptor of a previous message relative to a current message in a ring buffer after writing the packet sending descriptor of the current message into the ring buffer, where the software is further configured to: after writing the packet sending descriptor of the previous message into the ring buffer, sending a doorbell notification corresponding to the previous message to hardware, and after writing the packet sending descriptor of the current message into the ring buffer, sending a doorbell notification corresponding to the current message to the hardware;
Judging whether to send an interrupt notification corresponding to the current message to the software based on a time interval between a doorbell notification corresponding to the current message and a doorbell notification corresponding to the last message from the software through the hardware, if so, sending the interrupt notification to the software and setting a state value of an interrupt state register as a processing state, wherein the state value of the interrupt state register is the processing state or a non-reporting state,
Wherein the software, at least prior to executing the descriptor reclamation operation associated with the packet sending descriptor of the previous message, selects to execute the descriptor reclamation operation associated with the packet sending descriptor of the previous message in a first reclamation manner not based on the interrupt notification or in a second reclamation manner based on the interrupt notification based on the state value of the interrupt state register,
When the status value of the interrupt status register is the unreported status, the software executes a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the first reclamation mode which is not based on the interrupt notification, and the method comprises the following steps: the software determines the position of the packet descriptor of the previous message in the ring buffer based on the position of the packet descriptor of the current message in the ring buffer, then judges whether the packet descriptor of the previous message is used or not, if so, recovers the packet descriptor of the previous message,
When the status value of the interrupt status register is the in-process status, the software performs a descriptor reclamation operation associated with a packet sending descriptor of the previous message according to the second reclamation manner based on the interrupt notification, including: the software determines the position of the packet sending descriptor of the current message in the ring buffer and the position of the packet sending descriptor of the last message in the ring buffer based on the context of the interrupt notification, and then, the packet sending descriptor of the current message and the packet sending descriptor of the last message are recovered.
2. The method of claim 1, wherein the hardware determines to send the interrupt notification to the software when a time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is greater than a time threshold, and wherein the hardware determines not to send the interrupt notification to the software when the time interval between the doorbell notification corresponding to the current message and the doorbell notification corresponding to the previous message is less than the time threshold.
3. The method of claim 1, wherein the software utilizes a first process and a first processor to perform a descriptor reclamation operation associated with a package descriptor of the previous message in the first reclamation manner that is not based on the interrupt notification, and wherein the software utilizes a second process and a second processor to perform a descriptor reclamation operation associated with a package descriptor of the previous message in the second reclamation manner that is based on the interrupt notification.
4. The method of claim 1, wherein the hardware turns off interrupt enablement of the hardware after sending the interrupt notification to the software and setting a state value of the interrupt state register to the in-process state.
5. The method of claim 4, wherein the software initiates interrupt enablement of the hardware after performing a descriptor reclamation operation associated with a package descriptor of the previous message in the first reclamation manner that is not based on the interrupt notification.
6. The method of claim 4, wherein the software sets the status value of the interrupt status register to the unreported status and initiates interrupt enablement of the hardware after performing a descriptor reclamation operation associated with a packet-sending descriptor of the previous message in the second reclamation manner based on the interrupt notification.
7. The method of claim 1, wherein the software avoids a concurrency conflict between the packet-wrap reclamation associated with the first reclamation pattern and the interrupt reclamation associated with the second reclamation pattern by reading a status value of the interrupt status register.
8. The method of claim 7, wherein the software performs the first reclamation pattern associated with a ping reclamation and simultaneously avoids triggering the second reclamation pattern associated with a ping reclamation when the status value of the interrupt status register is the unreported status, and wherein the software performs the second reclamation pattern associated with a ping reclamation and simultaneously avoids triggering the first reclamation pattern associated with a ping reclamation when the status value of the interrupt status register is the in-process status.
9. The method of claim 8, wherein the software sets the status value of the interrupt status register to the unreported status after performing interrupt reclamation associated with the second reclamation pattern.
10. The method of claim 1, wherein the hardware modifies a packet descriptor of the previous message in the ring buffer to be used after the previous message is sent, and wherein the hardware modifies a packet descriptor of the current message in the ring buffer to be used after the current message is sent.
11. A computer device, characterized in that it comprises a memory, a processor and a computer program stored on the memory and executable on the processor, which processor implements the method according to any of claims 1 to 10 when executing the computer program.
12. A computer readable storage medium storing computer instructions which, when run on a computer device, cause the computer device to perform the method of any one of claims 1 to 10.
CN202410501442.8A 2024-04-25 2024-04-25 Method, computer device and medium for packet descriptor reclamation Active CN118075220B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410501442.8A CN118075220B (en) 2024-04-25 2024-04-25 Method, computer device and medium for packet descriptor reclamation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410501442.8A CN118075220B (en) 2024-04-25 2024-04-25 Method, computer device and medium for packet descriptor reclamation

Publications (2)

Publication Number Publication Date
CN118075220A CN118075220A (en) 2024-05-24
CN118075220B true CN118075220B (en) 2024-07-09

Family

ID=91109486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410501442.8A Active CN118075220B (en) 2024-04-25 2024-04-25 Method, computer device and medium for packet descriptor reclamation

Country Status (1)

Country Link
CN (1) CN118075220B (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117729022A (en) * 2023-12-15 2024-03-19 无锡众星微系统技术有限公司 Software and hardware combined virtual machine anti-attack protection method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194670B2 (en) * 2009-06-30 2012-06-05 Oracle America, Inc. Upper layer based dynamic hardware transmit descriptor reclaiming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117729022A (en) * 2023-12-15 2024-03-19 无锡众星微系统技术有限公司 Software and hardware combined virtual machine anti-attack protection method and device

Also Published As

Publication number Publication date
CN118075220A (en) 2024-05-24

Similar Documents

Publication Publication Date Title
US10884786B2 (en) Switch device, switching method, and computer program product
CN109688058B (en) Message processing method and device and network equipment
TWI669620B (en) Database switching method, server, storage medium, electronic device and product
CN111190854B (en) Communication data processing methods, devices, equipment, systems and storage media
CN110750341A (en) Task scheduling method, device, system, terminal device and storage medium
US20170329655A1 (en) Method and apparatus of unloading out of memory processing flow to user space
US10305772B2 (en) Using a single work item to send multiple messages
CN117724874B (en) Method, computer device and medium for managing shared receive queues
CN116932454B (en) Data transmission method, device, electronic equipment and computer readable storage medium
CN112698959A (en) Multi-core communication method and device
CN115934625B (en) Doorbell knocking method, equipment and medium for remote direct memory access
CN117056258A (en) Data transmission method, device, equipment and storage medium
CN118075220B (en) Method, computer device and medium for packet descriptor reclamation
CN113157465A (en) Message sending method and device based on pointer linked list
CN117573602B (en) Method and computer device for remote direct memory access message transmission
CN114518833B (en) Method, electronic device and computer program product for storage management
CN116340246B (en) Data pre-reading method and medium for direct memory access read operation
CN112667270A (en) Voice processing resource updating method, computer equipment and storage device
CN111427806A (en) Method for sharing serial port by dual-core AMP system, storage medium and intelligent terminal
CN113609041B (en) Data transmission method and system
CN114531414B (en) Terminal migration acceleration method and device
CN117033276B (en) Bus communication method, system, electronic device and storage medium
CN114817088B (en) Data prefetching method and device for reducing direct memory access processing delay
CN115002020B (en) OSPF-based data processing method and device
CN115842873A (en) Message processing method, network card and server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant