0

I am using Linux v 4.4.1 to test the network perf on a manycore system. The Tx packet steering i.e. XPS is enabled and configured ( CONFIG_XPS y), however, the queues are not assigned using the get_xps_queue() function in the net/core/dev.c, and the skb_tx_hash is simply used to choose the queue_index for the tx queue. The system has n cores and n tx queues, so I aim to achieve a 1-1 mapping between the cpu and tx queue, i.e a unique tx queue for each core.

if anyone has an idea about what is happening in this case, please help!

Ramneek
  • 11
  • 3
  • Have you verified you've got more than 1 tx queue? How are you configuring your queues in `/sys/class/net//queues/tx-/xps_cpus`? Have you made sure you're checking the first packet of a flow? Can you set a breakpoint on `netif_set_xps_queue` and see if affinity is set in the first place? – Michael Foukarakis Apr 27 '18 at 13:45
  • Looks like https://elixir.bootlin.com/linux/v4.4.1/source/net/core/dev.c#L2970 can hit the following case --> if (unlikely(queue_index >= dev->real_num_tx_queues)) queue_index = -1; – Chaitanya Lala Apr 28 '18 at 20:19

0 Answers0