[dpdk-dev] [Bug 280] X710 PF Reset Issue with DPDK VF Driver

bugzilla at dpdk.org bugzilla at dpdk.org
Thu May 16 12:40:05 CEST 2019


https://bugs.dpdk.org/show_bug.cgi?id=280

            Bug ID: 280
           Summary: X710 PF Reset Issue with DPDK VF Driver
           Product: DPDK
           Version: 19.05
          Hardware: Other
                OS: Linux
            Status: CONFIRMED
          Severity: major
          Priority: Normal
         Component: doc
          Assignee: dev at dpdk.org
          Reporter: vipin.varghese at intel.com
  Target Milestone: ---

LOGS:
[93011.069202] i40e 0000:82:00.2: VF 11 successfully unset unicast promiscuous
mode
[95318.521782] i40e 0000:82:00.2: Malicious Driver Detection event 0x00 on TX
queue 141 PF number 0x02 VF number 0x4d
[95318.521787] i40e 0000:82:00.2: TX driver issue detected, PF reset issued
[95318.521801] i40e 0000:82:00.2: TX driver issue detected on VF 13
[95318.521803] i40e 0000:82:00.2: Too many MDD events on VF 13, disabled
[95318.521804] i40e 0000:82:00.2: Use PF Control I/F to re-enable the VF
[95895.281551] i40e 0000:82:00.2: read: 0x000e648c = 0x0007f3fd
[96380.723377] i40e 0000:82:00.2: VF 13 successfully set multicast promiscuous
mode
[96380.723382] i40e 0000:82:00.2: VF 13 successfully unset unicast promiscuous
mode
[96380.787648] i40e 0000:82:00.3: VF 15 successfully set multicast promiscuous
mode
[96380.787650] i40e 0000:82:00.3: VF 15 successfully unset unicast promiscuous
mode

ROOT CAUSE: Sending incorrect packet size through TX queue causes the MDD
failure.

Solution:
static uint16_t
precheck_pkts(uint8_t port __rte_unused, uint16_t qidx __rte_unused,
                struct rte_mbuf **pkts, uint16_t nb_pkts, void *_ __rte_unused)
{
        if (unlikely(nb_pkts == 0))
                return nb_pkts;

        int i, j, k;
        struct rte_mbuf *ptr;
        struct rte_mbuf *replace[nb_pkts];

        for (i = 0, j = 0, k = 0; i < nb_pkts; i++)
        {
                ptr = pkts[i];

                if (ptr->pkt_len < 17) {
                        replace[k++] = ptr;
                } else if (!(ptr->ol_flags & PKT_TX_TCP_SEG)) {
                        if (ptr->nb_segs > 8 ||
                                        ptr->pkt_len > 9728)
                                replace[k++] = ptr;
                        else
                                pkts[j++] = ptr;
                } else if (ptr->nb_segs > 8 ||
                                ptr->tso_segsz < 256 ||
                                ptr->tso_segsz > 9674 ||
                                ptr->pkt_len > 262144) {
                        replace[k++] = ptr;
                } else {
                        pkts[j++] = ptr;
                }
        }

        for (i = 0; i < k; i++)
                rte_pktmbuf_free(replace[i]);

        //printf(" Port (%u) Queue (%u) nb_pkts - old (%u) new (%u) drop
(%u)\n", port, qidx, nb_pkts, j, k);
        return j;
}

issue: neither `DPDK Release 19.05` nor `Known Issues and Limitations in Legacy
Releases`

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the dev mailing list