[dpdk-dev] net/ena: traffic lock

Rajesh Kumar rajeshthepro at gmail.com
Tue Dec 22 10:37:18 CET 2020


Dpdk: 19.11

Driver: ena



During longevity(after 24+ hrs) testing at 10Gbps, one of tx-queue is
getting into unrecoverable state ( its not able to find enough
tx-descriptor nor its freeing up).



So for every tx-burst, eth_ena_xmit_pkts() neither finds free tx-descriptor
nor able to free txd (ena_com_tx_comp_req_id_get() is always returning
ENA_COM_TRY_AGAIN).



We see eth_ena_xmit_pkts() has been refactored in latest LTS version, is
there any related issue got fixed ? Can you help





(gdb) p *(struct ena_ring *) rte_eth_devices[2].data->tx_queues[5]

$14 = {

  next_to_use = 4979,

  next_to_clean = 3958,

  type = ENA_RING_TYPE_TX,

  tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_DEV,

  {

    empty_tx_reqs = 0x11e406b00,

    empty_rx_reqs = 0x11e406b00

  },

  {

    tx_buffer_info = 0x11d2dfc80,

    rx_buffer_info = 0x11d2dfc80

  },

 rx_refill_buffer = 0x0,

  ring_size = 1024,

  ena_com_io_cq = 0x11e40e640,

  ena_com_io_sq = 0x11e4168c0,

  ena_bufs = {{

      len = 0,

      req_id = 0

    } <repeats 17 times>},

  mb_pool = 0x0,

  port_id = 2,

  id = 5,

  tx_max_header_size = 96 '`',

 configured = 1,

  push_buf_intermediate_buf = 0x11e406a00 "",

  adapter = 0x11e40e040,

  offloads = 2,

  sgl_size = 17,

  {

    rx_stats = {

      cnt = 4979,

      bytes = 417580,

      refill_partial = 35426,

      bad_csum = 0,

      mbuf_alloc_fail = 0,

      bad_desc_num = 38603,

---Type <return> to continue, or q <return> to quit---

      bad_req_id = 3178

    },

    tx_stats = {

      cnt = 4979,

      bytes = 417580,

      prepare_ctx_err = 35426, ß Errors

      linearize = 0,

      linearize_failed = 0,

      tx_poll = 38603,

      doorbells = 3178,

      bad_req_id = 0,

      available_desc = 2 <<-- No free descriptor

    }

  },

  numa_socket_id = 0

}



Thanks,

*-Rajesh*


More information about the dev mailing list