CN113472571B - Intelligent network card device and bypass detection method of intelligent network card device - Google Patents

Intelligent network card device and bypass detection method of intelligent network card device Download PDF

Info

Publication number
CN113472571B
CN113472571B CN202110719781.XA CN202110719781A CN113472571B CN 113472571 B CN113472571 B CN 113472571B CN 202110719781 A CN202110719781 A CN 202110719781A CN 113472571 B CN113472571 B CN 113472571B
Authority
CN
China
Prior art keywords
memory access
virtual
ring table
base address
network card
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
CN202110719781.XA
Other languages
Chinese (zh)
Other versions
CN113472571A (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.)
Beijing Huijun Technology Co ltd
Original Assignee
Beijing Huijun 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 Beijing Huijun Technology Co ltd filed Critical Beijing Huijun Technology Co ltd
Priority to CN202110719781.XA priority Critical patent/CN113472571B/en
Publication of CN113472571A publication Critical patent/CN113472571A/en
Application granted granted Critical
Publication of CN113472571B publication Critical patent/CN113472571B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

The disclosure provides an intelligent network card device and a bypass detection method of the intelligent network card device. Wherein, intelligent network card equipment includes: the virtual machine runs with a front end driver; the virtual functional unit is arranged in the controller and corresponds to the front end driver; a virtual queue unit including a plurality of virtual queues; wherein each virtual function unit registers at least one virtual queue, the virtual queue including virtual address parameters; and the bypass detection unit is respectively connected with the controller and the virtual queue unit and is used for determining the target virtual function unit to be detected and the virtual queue corresponding to the target virtual function unit to be detected in the virtual function unit, initiating corresponding memory access read operation and further determining the detection result. According to the intelligent network card device, the bypass detection unit can correspondingly initiate memory access read operation, so that the controller and the virtual queue unit are detected, and faults occurring when the intelligent network card device is applied are conveniently located.

Description

Intelligent network card device and bypass detection method of intelligent network card device
Technical Field
The disclosure relates to the technical field of cloud computing, in particular to an intelligent network card device and a bypass detection method of the intelligent network card device.
Background
In the virtualization technology of cloud computing, in order to enable multiple virtual machine systems to be independent of a physical machine system and to run on the same hardware, a virtualization layer is generally required to be added to implement the virtualization technology. Accordingly, paravirtualization techniques have evolved.
The general paravirtualized I/O framework mainly comprises: front-end drivers, back-end devices, and virtual queues. And the front-end driver and the back-end equipment interact data through the virtual queue. Typically, the aforementioned paravirtualized I/O framework is utilized in conjunction with a single I/O virtualization technique to implement paravirtualization of cloud computing. Correspondingly, problems or disadvantages of implementing paravirtualization of cloud computing include that when a fault occurs during debugging, running or operation and maintenance, there is a problem of inconvenience in locating the fault.
Disclosure of Invention
Aiming at the problems in the prior art, the embodiment of the disclosure provides intelligent network card equipment and a bypass detection method of the intelligent network card equipment.
The present disclosure provides an intelligent network card device, comprising:
the virtual machine runs with a front end driver;
the virtual function unit is arranged in the controller, and the front end driver is arranged corresponding to the virtual function unit;
a virtual queue unit including a plurality of virtual queues; wherein each virtual function unit registers at least one virtual queue, and the virtual queue comprises virtual address parameters;
the bypass detection unit is respectively connected with the controller and the virtual queue unit, and is used for determining a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function unit, initiating corresponding memory access read operation to obtain a memory access result, and determining a detection result based on the memory access result.
According to the intelligent network card device provided by the disclosure, the virtual address parameters include: a descriptor list, an available ring table, and a used ring table;
the descriptor list comprises data entries with the same number of corresponding data bits, and is used for storing associated data of a scattered aggregation array in the data entries; the associated data comprises base addresses, lengths, index marks and first pointers pointing to the next data entry of a plurality of messages corresponding to the scattered aggregation array;
the available ring table is used for storing a second pointer pointing to any item in the descriptor list, and the available ring table comprises a plurality of base addresses;
the used ring table is used for storing a third pointer to any one of the entries in the descriptor list, and the used ring table includes a plurality of base addresses.
According to the intelligent network card device provided by the present disclosure, the bypass detection unit includes: a virtual device number selection register, a virtual queue number selection register, and a parameter type selection register;
the virtual equipment number selection register is used for determining the target virtual function unit to be detected in the virtual function units;
the virtual queue number selection register is used for setting the virtual queue corresponding to the target virtual function unit to be detected;
the parameter type selection register is configured to set a descriptor list base address, an available ring table base address, and a used ring table base address of the virtual address parameter in the virtual queue corresponding to the target virtual function unit, and read contents corresponding to the descriptor list base address, the available ring table base address, and the used ring table base address, respectively.
According to the intelligent network card device provided by the present disclosure, the bypass detection unit further includes: a memory access command register, a memory access data register, and a memory access status register;
the memory access command register is used for receiving a memory access request and initiating a memory access read operation to obtain a memory access result;
the memory access status register is configured to determine the detection result based on the memory access result;
the memory access data register is used for receiving and storing the returned data in the memory.
According to the intelligent network card device provided by the present disclosure, the intelligent network card device further includes: a back-end equipment unit;
the back-end equipment unit and the virtual function unit realize data interaction through the virtual queue;
the back-end equipment unit is used for initiating memory access operation under the condition that the memory access request sent by the front-end drive is received, and reading and sending corresponding data in the memory.
The present disclosure also provides a bypass detection method of an intelligent network card device, which is used for the intelligent network card device as described in any one of the above, and the method includes:
determining a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function units through a bypass detection unit, and initiating corresponding memory access read operation to obtain a memory access result;
and determining a detection result based on the memory access result through the bypass detection unit.
According to the bypass detection method of the intelligent network card device provided by the present disclosure, the determining, by the bypass detection unit, a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function unit, and initiating a corresponding memory access read operation, to obtain a memory access result, includes:
determining the target virtual function unit to be detected in the virtual function units based on a virtual device number selection register in the bypass detection unit;
setting the virtual queue corresponding to the target virtual function unit to be detected based on a virtual queue number selection register in the bypass detection unit;
setting a descriptor list base address, an available ring table base address and a used ring table base address of the virtual address parameter in the virtual queue corresponding to the target virtual function unit based on a parameter type selection register in the bypass detection unit, respectively reading contents corresponding to the descriptor list base address, the available ring table base address and the used ring table base address, generating a memory access request based on the contents corresponding to the descriptor list base address, the available ring table base address and the used ring table base address respectively, and sending the memory access request to a memory access command register in the bypass detection unit; wherein the virtual address parameters include a descriptor list, an available ring table, and a used ring table;
and receiving the memory access request based on the memory access command register in the bypass detection unit, and initiating a memory access read operation based on the memory access request to obtain the memory access result.
According to the bypass detection method of the intelligent network card device provided by the present disclosure, the determining, by the bypass detection unit, a detection result based on the memory access result includes:
determining a detection result based on the memory access result through a memory access status register in the bypass detection unit;
and receiving and storing the returned data in the memory based on the memory access data register in the bypass detection unit.
According to the bypass detection method of the intelligent network card device provided by the present disclosure, the determining the detection result based on the memory access result includes:
determining the actual times of initiating the memory access read operation, and judging whether the actual times are larger than a preset time threshold value or not and whether the memory access result contains memory data read by executing the memory access read operation or not;
if the actual times are not greater than the times threshold, and the memory access result contains memory data read by executing the memory access read operation, determining that the detection is successful;
and if the actual times are greater than the times threshold, or the memory access result does not contain the memory data read by executing the memory access read operation, determining that the detection fails.
According to the bypass detection method of the intelligent network card equipment, the method further comprises the following steps:
receiving the memory access request based on a back-end equipment unit;
and based on the memory access request, initiating memory access operation, and reading and sending corresponding data in the memory.
The intelligent network card device and the bypass detection method of the intelligent network card device provided by the disclosure operate front-end drivers by utilizing virtual machines; setting the virtual function unit in the controller and setting the virtual function unit corresponding to the front end driver; and the bypass detection unit is respectively connected with the controller and the virtual queue unit, a target virtual function unit to be detected and a virtual queue corresponding to the virtual function unit are determined in the virtual function unit through the bypass detection unit, a corresponding memory access read operation is initiated, a memory access result is obtained, and a detection result is determined based on the memory access result. According to the intelligent network card device, the bypass detection unit can correspondingly initiate memory access read operation, so that the controller and the virtual queue unit are detected, and faults occurring when the intelligent network card device is applied are conveniently located.
Drawings
In order to more clearly illustrate the present disclosure or the prior art solutions, a brief description will be given below of the drawings that are needed in the embodiments or prior art descriptions, it being apparent that the drawings in the following description are some embodiments of the present disclosure and that other drawings may be obtained from these drawings without inventive effort to a person of ordinary skill in the art.
Fig. 1 is a schematic core structure of an intelligent network card device according to an embodiment of the present disclosure;
fig. 2 is a schematic diagram of the composition of virtual address parameters in the intelligent network card device according to the embodiment of the present disclosure;
fig. 3 is a schematic diagram of an intelligent network card device according to an embodiment of the present disclosure when performing data interaction using virtual address parameters;
fig. 4 is a schematic diagram of a complete structure of an intelligent network card device according to an embodiment of the present disclosure;
fig. 5 is an application scenario schematic diagram of an intelligent network card device provided in an embodiment of the present disclosure;
fig. 6 is a flowchart of a bypass detection method of an intelligent network card device according to an embodiment of the disclosure.
Detailed Description
For the purposes of making the objects, technical solutions and advantages of the present disclosure more apparent, the technical solutions in the present disclosure will be clearly and completely described below with reference to the accompanying drawings in which it is apparent that the described embodiments are some, but not all, embodiments of the present disclosure. All other embodiments, which can be made by one of ordinary skill in the art without inventive effort, based on the embodiments in this disclosure are intended to be within the scope of this disclosure.
The figures are merely examples and are not drawn to scale. As used herein, the term "preferred" and similar terms are used as a table approximation, not as a table degree, and are intended to illustrate inherent deviations in measured or calculated values that would be recognized by one of ordinary skill in the art. It should be noted that in this specification, the expressions "first", "second", "third", etc. are used only to distinguish one feature from another feature, and do not denote any limitation of the features, particularly do not denote any order of precedence.
It will be further understood that terms such as "comprises," "comprising," "includes," "including," and/or "having," are intended to be inclusive and not to open ended as defined in the specification, and to exclude the presence of other features, elements, components, and/or groups thereof. Furthermore, when describing embodiments of the application, use of "may" means "one or more embodiments of the application. Also, the term "exemplary" is intended to refer to an example or illustration.
Unless otherwise defined, all terms (including engineering and technical terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application pertains. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
In order to solve the problems in the prior art, embodiments of the present disclosure provide an intelligent network card device and a bypass detection method of the intelligent network card device.
Fig. 1 is a schematic core structure of an intelligent network card device according to an embodiment of the present disclosure. Fig. 1 shows a virtual machine 100, a front end driver 110, a controller 120, a virtual function unit 130, a virtual queue unit 140, and a bypass detection unit 150.
The virtual machine 100 runs with a front end driver 110.
The virtual function unit 130 is disposed in the controller 120, and the front end driver 110 is disposed corresponding to the virtual function unit 130.
The virtual queue unit 140 includes a plurality of virtual queues; wherein each virtual function unit 130 registers at least one virtual queue, the virtual queue including virtual address parameters.
The bypass detection unit 150 is respectively connected to the controller 120 and the virtual queue unit 140, and is configured to determine a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function units, initiate a corresponding memory access read operation, obtain a memory access result, and determine a detection result based on the memory access result.
Correspondingly, the bypass detection unit 150 includes: a virtual device number selection register, a virtual queue number selection register, and a parameter type selection register.
A virtual device number selection register for determining a target virtual function unit to be probed in the virtual function unit 130.
And the virtual queue number selection register is used for setting a virtual queue corresponding to the target virtual functional unit to be detected.
And the parameter type selection register is used for setting the descriptor list base address, the available ring table base address and the used ring table base address of the virtual address parameters in the virtual queue corresponding to the target virtual functional unit, and respectively reading the contents corresponding to the descriptor list base address, the available ring table base address and the used ring table base address.
Further, the bypass detection unit 150 further includes: a memory access command register, a memory access data register, and a memory access status register.
And the memory access command register is used for receiving the memory access request and initiating memory access reading operation to obtain a memory access result.
And the memory access state register is used for determining a detection result based on the memory access result.
And the memory access data register is used for receiving and storing the returned data in the memory.
In summary, based on the above embodiments, according to the intelligent network card device provided by the present disclosure, through the bypass detection unit, a memory access read operation may be initiated, so as to detect the controller and the virtual queue unit, thereby facilitating positioning of faults occurring when the intelligent network card device is applied, and increasing convenience in managing and maintaining the intelligent network card device.
Furthermore, the virtual address parameter in the above embodiment includes a plurality of parts according to the specification of the virtualized input/output.
Based on the above embodiments, fig. 2 is a schematic diagram of the composition of virtual address parameters in an intelligent network card device according to an embodiment of the present disclosure. Fig. 2 shows virtual address parameters 200, descriptor list 210, available ring table 220, and used ring table 230.
As shown in fig. 2, the virtual address parameters 200 include: a list of descriptors 210, a list of available loops 220, and a list of used loops 230.
Specifically, the descriptor list 210 includes the same number of data entries as the corresponding data bits, and the descriptor list 210 is used to store the associated data of the scatter gather array in the data entries; the associated data comprises base addresses, lengths, index marks and first pointers pointing to the next data entry of a plurality of messages corresponding to the scattered aggregation array.
An available ring table 220 for storing a second pointer to any one of the entries in the descriptor list 210, and the available ring table 220 includes a plurality of base addresses.
The used ring table 230 is used to store a third pointer to any one of the entries in the descriptor list 210, and the used ring table 230 includes a plurality of base addresses.
It should be noted that, in practical applications, the data interaction may be performed within the virtual address parameter 200.
Preferably, based on the above embodiment, the description of the case where the virtual address parameter performs data interaction may be implemented by combining the virtual address parameter with a related component in the intelligent network card device.
Based on the above embodiments, fig. 3 is a schematic diagram of an intelligent network card device according to an embodiment of the present disclosure when performing data interaction using virtual address parameters. Fig. 3 shows a front end driver 300, an available ring table 310, a descriptor list 320, and a used ring table 330.
As shown in fig. 3, the descriptor list 320 includes the same number of data entries as the corresponding number of data bits, and the descriptor list 320 is used for storing the associated data of the scatter gather array in the data entries; the associated data comprises base addresses, lengths, index marks and first pointers pointing to the next data entry of a plurality of messages corresponding to the scattered aggregation array.
An available ring table 310 for storing a second pointer to any one of the entries in the descriptor list 320, and the available ring table 310 includes a plurality of base addresses.
The used ring table 330 is used to store a third pointer to any one of the entries in the descriptor list 320, and the used ring table 330 includes a plurality of base addresses.
It should be noted that, since the descriptor list 320 stores a plurality of pieces of message data, performing data interaction in the intelligent network card device by using the virtual address parameter includes sending the message data and receiving the message data.
Correspondingly, when sending message data, determining a first message to be sent. The front end driver 300 obtains the index mark corresponding to the first message in the descriptor list 320 through the second pointer of the available ring table 310, and determines the message content of the first message and other associated data except the index mark according to the index mark. The first message is forwarded, and after the first message is forwarded, the used ring table 330 obtains the first message from the descriptor list 320 through the third pointer, and stores it.
Upon receiving the message data, the front end driver 300 creates a target index flag corresponding to the message to be received in the descriptor list 320 through the second pointer of the available ring table 310. And receiving a second message based on the created target index mark. And after receiving the second message, the used ring table 330 obtains the second message from the descriptor list 320 through the third pointer and stores it.
In addition, the intelligent network card device further comprises a back-end device unit.
Fig. 4 is a schematic diagram of a complete structure of an intelligent network card device according to an embodiment of the present disclosure. Fig. 4 shows a virtual machine 400, a front end driver 410, a controller 420, a virtual function unit 430, a virtual queue unit 440, a bypass detection unit 450, and a back end equipment unit 460.
Virtual machine 400 runs with front end drivers 410.
The virtual function unit 430 is disposed in the controller 420, and the front end driver 410 is disposed corresponding to the virtual function unit 430.
The virtual queue unit 440 includes a plurality of virtual queues; wherein each virtual function unit 430 registers at least one virtual queue, the virtual queue including virtual address parameters.
The bypass detection unit 450 is respectively connected to the controller 420 and the virtual queue unit 440, and is configured to determine a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function units, initiate a corresponding memory access read operation, obtain a memory access result, and determine a detection result based on the memory access result.
Correspondingly, the bypass detection unit 450 includes: a virtual device number selection register, a virtual queue number selection register, and a parameter type selection register.
A virtual device number selection register for determining a target virtual function unit to be probed in the virtual function unit 430.
And the virtual queue number selection register is used for setting a virtual queue corresponding to the target virtual functional unit to be detected.
And the parameter type selection register is used for setting the descriptor list base address, the available ring table base address and the used ring table base address of the virtual address parameters in the virtual queue corresponding to the target virtual functional unit, and respectively reading the contents corresponding to the descriptor list base address, the available ring table base address and the used ring table base address.
Further, the bypass detection unit 450 further includes: a memory access command register, a memory access data register, and a memory access status register.
And the memory access command register is used for receiving the memory access request and initiating memory access reading operation to obtain a memory access result.
And the memory access state register is used for determining a detection result based on the memory access result.
And the memory access data register is used for receiving and storing the returned data in the memory.
The back-end device unit 460 and the virtual function unit 430 implement data interaction through the virtual queue. Meanwhile, the back-end device unit 460 is configured to initiate a memory access operation when receiving a memory access request sent by the front-end driver 410, and read and send corresponding data in the memory.
In summary, based on the above embodiments, according to the intelligent network card device provided by the present disclosure, when the back-end device unit and the virtual function unit implement data interaction through the virtual queue, the memory access read operation can be correspondingly initiated through the bypass detection unit, so as to determine the detection result, thereby facilitating the positioning of faults occurring when the intelligent network card device is applied, and increasing convenience in managing and maintaining the intelligent network card device.
Preferably, the intelligent network card device can be applied to a server, and the intelligent network card device is applied to the server; furthermore, based on the above embodiments, an application scenario of the intelligent network card device is described.
Based on the above embodiments, fig. 5 is an application scenario schematic diagram of an intelligent network card device according to an embodiment of the present disclosure. Fig. 5 shows a server 500, intelligent network card device 510, network card logic 520, and management software 530.
The intelligent network card device 510 is installed on the server 500, and the intelligent network card device 510 is provided with network card logic 520; meanwhile, the management software 530 runs on a processor of the intelligent network card device 510. It should be noted that the network card logic 520 may include a plurality of types, and the disclosure is not limited thereto. Preferably, in the present disclosure, network card logic 520 is implemented by an FPGA (Field Programmable Gate Array programmable logic array).
Specifically, multiple virtual machines are running simultaneously on the intelligent network card device 510. A front end driver runs on the virtual machine. Wherein, in one virtual machine, a plurality of front-end drivers can be simultaneously operated.
Preferably, the controller of the intelligent network card device 510 is selected in this disclosure to be a PCI-E controller. The PCI-E controller may be virtualized into multiple virtual functional units by SR-IOV (Single input/output virtualization) technology.
Correspondingly, the virtual function unit is arranged in the controller, and the front end driver is arranged corresponding to the virtual function unit.
Further, the virtual queue unit includes a plurality of virtual queues; wherein each virtual functional unit registers at least one virtual queue, the virtual queue including virtual address parameters. Wherein the virtual address parameters include: descriptor list, available ring table, and used ring table.
The descriptor list comprises data entries with the same number of corresponding data bits, and is used for storing the associated data of the scattered aggregation array in the data entries; the associated data comprises base addresses, lengths, index marks and first pointers pointing to the next data entry of a plurality of messages corresponding to the scattered aggregation array.
An available ring table for storing a second pointer to any one of the entries in the descriptor list, and the available ring table including a plurality of base addresses.
The used ring table is used for storing a third pointer to any one of the entries in the descriptor list, and the used ring table includes a plurality of base addresses.
Further, the bypass detection unit is respectively connected with the PCI-E controller and the virtual queue unit, and is used for determining a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function unit, initiating corresponding memory access read operation to obtain a memory access result, and determining a detection result based on the memory access result.
Further, the back-end equipment unit and the virtual function unit realize data interaction through the virtual queue. And the back-end equipment unit is used for initiating memory access operation under the condition of receiving a memory access request sent by the front-end drive, and reading and sending corresponding data in the memory.
In summary, when the back-end equipment unit and the virtual function unit realize data interaction through the virtual queue, the bypass detection unit can be used for performing bypass detection on the PCI-E controller and the virtual queue unit.
By way of example, the target virtual functional unit to be probed is determined in the virtual functional unit by bypassing a virtual device number selection register in the probing unit.
And setting a virtual queue corresponding to the target virtual function unit to be detected through a virtual queue number selection register in the bypass detection unit.
And setting a descriptor list base address, an available ring list base address and a used ring list base address of virtual address parameters in a virtual queue corresponding to the target virtual functional unit through a parameter type selection register in the bypass detection unit, and respectively reading the contents corresponding to the descriptor list base address, the available ring list base address and the used ring list base address.
And receiving a memory access request sent by the management software 530 through a memory access command register in the bypass detection unit, and initiating a memory access read operation to obtain a memory access result.
And determining a detection result based on the memory access result by bypassing a memory access status register in the detection unit.
And receiving and storing the returned data in the memory by bypassing the memory access data register in the detection unit.
In summary, based on the above embodiments, when the back-end device unit and the virtual function unit implement data interaction through the virtual queue, the intelligent network card device provided by the present disclosure may correspondingly initiate a memory access read operation through the bypass detection unit, so as to determine a detection result, thereby facilitating positioning of a fault occurring when the intelligent network card device is applied, and increasing convenience in managing and maintaining the intelligent network card device.
Fig. 6 is a flowchart of a bypass detection method of an intelligent network card device according to an embodiment of the present disclosure. The bypass detection method of the intelligent network card device is used for the intelligent network card device in any embodiment. As shown in fig. 6, the method includes:
in step 601, the bypass detection unit determines a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function units, and initiates a corresponding memory access read operation to obtain a memory access result.
Specifically, step 601 includes:
step S11, a target virtual function unit to be detected is determined in the virtual function units based on the virtual device number selection register in the bypass detection unit.
Step S12, a virtual queue corresponding to the target virtual function unit to be detected is set based on a virtual queue number selection register in the bypass detection unit.
Step S13, setting a descriptor list base address, an available ring list base address and a used ring list base address of virtual address parameters in a virtual queue corresponding to a target virtual function unit based on a parameter type selection register in a bypass detection unit, respectively reading contents corresponding to the descriptor list base address, the available ring list base address and the used ring list base address, generating a memory access request based on the contents corresponding to the descriptor list base address, the available ring list base address and the used ring list base address respectively, and sending the memory access request to a memory access command register in the bypass detection unit.
Wherein the virtual address parameters include a descriptor list, an available ring table, and a used ring table.
Step S14, based on the memory access command register in the bypass detection unit, a memory access request is received, and based on the memory access request, a memory access read operation is initiated to obtain a memory access result.
Specifically, the memory access result in step S14 refers to whether the memory access read operation is performed to read the data in the memory.
In step 602, the detection result is determined by the bypass detection unit based on the memory access result.
Specifically, the detection result in step 602 refers to whether the detection performed by the bypass detection unit on the controller and/or the virtual queue unit is successful.
Correspondingly, step 602 includes:
step S21, determining a detection result based on the memory access result by bypassing the memory access status register in the detection unit.
Step S22, based on the memory access data register in the bypass detection unit, the data returned in the memory is received and stored.
Further, step S21 further includes:
step S211, determining the actual number of times of initiating the memory access read operation, and determining whether the actual number of times is greater than a preset number of times threshold and whether the memory access result contains memory data read by executing the memory access read operation.
Specifically, in step S211, determining whether the memory access result includes the memory data read by performing the memory access read operation refers to determining whether the state value corresponding to the memory access state register in the bypass detection unit is 1.
When the bypass detection unit is used to initiate the corresponding memory access read operation, if the data in the memory is read, the read data is stored in the memory access data register in the bypass detection unit, meanwhile, the state value corresponding to the memory access state register in the bypass detection unit is set to 1, and the state value corresponding to the memory access state register in the bypass detection unit is set to 0 in a normal state.
Further, when the actual number of times of initiating the memory access read operation is not greater than the preset number of times threshold, the step of judging whether the memory access result contains the memory data read by executing the memory access read operation is continuously executed.
In step S212, if the actual number of times is not greater than the number of times threshold, and the memory access result includes the memory data read by executing the memory access read operation, it is determined that the detection is successful.
Specifically, in step S212, successful detection means that the data in the memory is read when the corresponding memory access read operation is initiated.
In step S213, if the actual number of times is greater than the number of times threshold, or the memory access result does not include the memory data read by executing the memory access read operation, the detection failure is determined.
Specifically, in step S213, the failure detection refers to that the data in the memory is not read when the corresponding memory access read operation is initiated.
Correspondingly, after the detection failure is determined, a state value corresponding to the detection failure is returned.
Furthermore, the method comprises the following steps: based on the back-end equipment unit, receiving a memory access request; based on the memory access request, memory access operation is initiated, and corresponding data in the memory is read and sent.
In summary, based on the foregoing embodiments, according to the bypass detection method of the intelligent network card device provided by the present disclosure, when the back-end device unit and the virtual function unit implement data interaction through the virtual queue, the memory access read operation can be correspondingly initiated through the bypass detection unit, so as to determine the detection result, thereby facilitating positioning of faults occurring when the intelligent network card device is applied, and increasing convenience in managing and maintaining the intelligent network card device.
Finally, it should be noted that: the above embodiments are merely for illustrating the technical solution of the present disclosure, and are not limiting thereof; although the present disclosure has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present disclosure.

Claims (10)

1. An intelligent network card device, comprising:
the virtual machine runs with a front end driver;
the virtual function unit is arranged in the controller, and the front end driver is arranged corresponding to the virtual function unit;
a virtual queue unit including a plurality of virtual queues; wherein each virtual function unit registers at least one virtual queue, the virtual queue comprises virtual address parameters, and the virtual address parameters comprise a descriptor list, an available ring table and a used ring table;
the bypass detection unit is respectively connected with the controller and the virtual queue unit, and is used for determining a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in the virtual function unit, setting a descriptor list base address, an available ring table base address and a used ring table base address of the virtual address parameter in the virtual queue corresponding to the target virtual function unit, respectively reading the base address of the descriptor list of the virtual address parameter, the base address of the available ring table and the content corresponding to the base address of the used ring table, initiating corresponding memory access read operation based on the read content to obtain a memory access result, and determining a detection result based on the memory access result.
2. The intelligent network card device according to claim 1, wherein the descriptor list includes data entries having the same number of data bits as the descriptor list, and the descriptor list is configured to store association data of a scatter gather array in the data entries; the associated data comprises base addresses, lengths, index marks and first pointers pointing to the next data entry of a plurality of messages corresponding to the scattered aggregation array;
the available ring table is used for storing a second pointer pointing to any item in the descriptor list, and the available ring table comprises a plurality of base addresses;
the used ring table is used for storing a third pointer to any one of the entries in the descriptor list, and the used ring table includes a plurality of base addresses.
3. The intelligent network card device according to claim 1, wherein the bypass detection unit includes: a virtual device number selection register, a virtual queue number selection register, and a parameter type selection register;
the virtual equipment number selection register is used for determining the target virtual function unit to be detected in the virtual function units;
the virtual queue number selection register is used for setting the virtual queue corresponding to the target virtual function unit to be detected;
the parameter type selection register is configured to set a base address of a descriptor list of the virtual address parameter, a base address of an available ring table, and a base address of a used ring table in the virtual queue corresponding to the target virtual function unit, and read contents corresponding to the base address of the descriptor list of the virtual address parameter, the base address of the available ring table, and the base address of the used ring table, respectively.
4. The intelligent network card device of claim 1, wherein the bypass detection unit further comprises: a memory access command register, a memory access data register, and a memory access status register;
the memory access command register is used for receiving a memory access request and initiating a memory access read operation to obtain a memory access result;
the memory access status register is configured to determine the detection result based on the memory access result;
the memory access data register is used for receiving and storing the returned data in the memory.
5. The intelligent network card device of claim 1, wherein the intelligent network card device further comprises: a back-end equipment unit;
the back-end equipment unit and the virtual function unit realize data interaction through the virtual queue;
the back-end equipment unit is used for initiating memory access operation under the condition that the memory access request sent by the front-end drive is received, and reading and sending corresponding data in the memory.
6. A bypass detection method of an intelligent network card device, for an intelligent network card device according to any one of claims 1-5, the method comprising:
determining a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit in a virtual function unit through a bypass detection unit, wherein the virtual queue comprises virtual address parameters, the virtual address parameters comprise a descriptor list, an available ring table and a used ring table, setting a descriptor list base address, an available ring table base address and a used ring table base address of the virtual address parameters in the virtual queue corresponding to the target virtual function unit, respectively reading the base address of the descriptor list, the base address of the available ring table and the content corresponding to the base address of the used ring table of the virtual address parameters, and initiating corresponding memory access read operation based on the read content to obtain a memory access result;
and determining a detection result based on the memory access result through the bypass detection unit.
7. The bypass detection method of an intelligent network card device according to claim 6, wherein the determining, by the bypass detection unit, a target virtual function unit to be detected and a virtual queue corresponding to the target virtual function unit, where the virtual queue includes virtual address parameters, where the virtual address parameters include a descriptor list, an available ring table, and a used ring table, setting a descriptor list base address, an available ring table base address, and a used ring table base address of the virtual address parameters in the virtual queue corresponding to the target virtual function unit, and reading contents corresponding to the descriptor list base address, the available ring table base address, and the used ring table base address of the virtual address parameters, respectively, and initiating a corresponding memory access read operation based on the read contents, to obtain a memory access result, including:
determining the target virtual function unit to be detected in the virtual function units based on a virtual device number selection register in the bypass detection unit;
setting the virtual queue corresponding to the target virtual function unit to be detected based on a virtual queue number selection register in the bypass detection unit;
setting a descriptor list base address, an available ring table base address and a used ring table base address of the virtual address parameter in the virtual queue corresponding to the target virtual function unit based on a parameter type selection register in the bypass detection unit, respectively reading the base address of the descriptor list of the virtual address parameter, the base address of the available ring table and the content corresponding to the base address of the used ring table, generating a memory access request based on the base address of the descriptor list of the virtual address parameter, the base address of the available ring table and the content corresponding to the base address of the used ring table respectively, and sending the memory access request to a memory access command register in the bypass detection unit;
and receiving the memory access request based on the memory access command register in the bypass detection unit, and initiating a memory access read operation based on the memory access request to obtain the memory access result.
8. The bypass detection method of the intelligent network card device according to claim 6, wherein the determining, by the bypass detection unit, a detection result based on the memory access result includes:
determining a detection result based on the memory access result through a memory access status register in the bypass detection unit;
and receiving and storing the returned data in the memory based on the memory access data register in the bypass detection unit.
9. The bypass detection method of the intelligent network card device according to claim 8, wherein the determining the detection result based on the memory access result includes:
determining the actual times of initiating the memory access read operation, and judging whether the actual times are larger than a preset time threshold value or not and whether the memory access result contains memory data read by executing the memory access read operation or not;
if the actual times are not greater than the times threshold, and the memory access result contains memory data read by executing the memory access read operation, determining that the detection is successful;
and if the actual times are greater than the times threshold, or the memory access result does not contain the memory data read by executing the memory access read operation, determining that the detection fails.
10. The bypass detection method of the intelligent network card device according to claim 6, wherein the method further comprises:
receiving the memory access request based on a back-end equipment unit;
and based on the memory access request, initiating memory access operation, and reading and sending corresponding data in the memory.
CN202110719781.XA 2021-06-28 2021-06-28 Intelligent network card device and bypass detection method of intelligent network card device Active CN113472571B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110719781.XA CN113472571B (en) 2021-06-28 2021-06-28 Intelligent network card device and bypass detection method of intelligent network card device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110719781.XA CN113472571B (en) 2021-06-28 2021-06-28 Intelligent network card device and bypass detection method of intelligent network card device

Publications (2)

Publication Number Publication Date
CN113472571A CN113472571A (en) 2021-10-01
CN113472571B true CN113472571B (en) 2023-11-03

Family

ID=77873534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110719781.XA Active CN113472571B (en) 2021-06-28 2021-06-28 Intelligent network card device and bypass detection method of intelligent network card device

Country Status (1)

Country Link
CN (1) CN113472571B (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032179A (en) * 1996-08-14 2000-02-29 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
CN102819465A (en) * 2012-06-29 2012-12-12 华中科技大学 Failure recovery method in virtualization environment
CN103870311A (en) * 2012-12-10 2014-06-18 华为技术有限公司 Method of accessing to hardware by virtue of para-virtualized drive, back-end drive and front-end drive
CN104579695A (en) * 2013-10-23 2015-04-29 杭州华三通信技术有限公司 Data forwarding device and method
CN109739618A (en) * 2018-12-10 2019-05-10 新华三云计算技术有限公司 Virtual machine migration method and device
CN109923528A (en) * 2017-09-25 2019-06-21 华为技术有限公司 A kind of method and apparatus of data access
CN112612574A (en) * 2020-12-18 2021-04-06 海光信息技术股份有限公司 Memory access management unit, system and address conversion method of input and output equipment
CN112948063A (en) * 2021-05-17 2021-06-11 北京汇钧科技有限公司 Cloud platform creation method and device, cloud platform and cloud platform implementation system
CN113032103A (en) * 2021-04-14 2021-06-25 中南大学 VF (variable frequency) resource dynamic scheduling method based on SR-IOV (scheduling request-input/output) function of high-speed network card

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114675B2 (en) * 2015-03-31 2018-10-30 Toshiba Memory Corporation Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
US10318334B2 (en) * 2017-07-07 2019-06-11 Netronome Systems, Inc. Virtio relay

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032179A (en) * 1996-08-14 2000-02-29 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
CN102819465A (en) * 2012-06-29 2012-12-12 华中科技大学 Failure recovery method in virtualization environment
CN103870311A (en) * 2012-12-10 2014-06-18 华为技术有限公司 Method of accessing to hardware by virtue of para-virtualized drive, back-end drive and front-end drive
CN104579695A (en) * 2013-10-23 2015-04-29 杭州华三通信技术有限公司 Data forwarding device and method
CN109923528A (en) * 2017-09-25 2019-06-21 华为技术有限公司 A kind of method and apparatus of data access
CN109739618A (en) * 2018-12-10 2019-05-10 新华三云计算技术有限公司 Virtual machine migration method and device
CN112612574A (en) * 2020-12-18 2021-04-06 海光信息技术股份有限公司 Memory access management unit, system and address conversion method of input and output equipment
CN113032103A (en) * 2021-04-14 2021-06-25 中南大学 VF (variable frequency) resource dynamic scheduling method based on SR-IOV (scheduling request-input/output) function of high-speed network card
CN112948063A (en) * 2021-05-17 2021-06-11 北京汇钧科技有限公司 Cloud platform creation method and device, cloud platform and cloud platform implementation system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
半虚拟化框架Virtio的网络请求性能优化;刘禹燕;牛保宁;;小型微型计算机系统(第01期);全文 *

Also Published As

Publication number Publication date
CN113472571A (en) 2021-10-01

Similar Documents

Publication Publication Date Title
US10620832B1 (en) Method and apparatus to abort a command
JP4917175B2 (en) Computer program, apparatus, and method for determining state of I / O operation
US8954788B2 (en) Methods and structure for single root input/output virtualization enhancement in peripheral component interconnect express systems
US7783867B2 (en) Controlling instruction execution in a processing environment
US20080235757A1 (en) Detecting attempts to change memory
US9069485B2 (en) Doorbell backpressure avoidance mechanism on a host channel adapter
US10606659B2 (en) Acquiring location information for logical partition within virtual machine
US9038080B2 (en) Method and system for heterogeneous filtering framework for shared memory data access hazard reports
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
BRPI0902504A2 (en) thread ordering techniques
US10063425B1 (en) Event-based in-band host registration
CN111563014A (en) Interface service performance test method, device, equipment and storage medium
CN108073451B (en) Interrupt processing method and device between heterogeneous operating systems on multi-core CPU
US8990472B2 (en) Methods and systems for running network protocols over peripheral component interconnect express
US8799716B2 (en) Heap dump occurrence detection
US20180157605A1 (en) Configuration of a memory controller for copy-on-write
EP3274896A1 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN113472571B (en) Intelligent network card device and bypass detection method of intelligent network card device
CN106021046A (en) Hard disk performance comparison method, device and server
US9767048B2 (en) Initializing I/O devices
US20230131198A1 (en) Featureless machine enhancement discovery and verification
US8671186B2 (en) Computer system management method and management apparatus
US10007564B2 (en) Information processing apparatus and operation verifying method
US20170154142A1 (en) Method and apparatus for simulating slow storage disk
EP3519966A1 (en) Non-coupled software lockstep

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