<div dir="ltr"><div class="gmail_default" style="font-family:monospace">I've made a DPDK test program that does the following on the same machine and for the same NIC. This is a test; it does nothing practical:<br><br>* Creates 1 RX queue then reads and pretty prints contents in a loop</div><div class="gmail_default" style="font-family:monospace">* Creates 1 TX queue then sends packets to a hardcoded IP address in a loop</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">When I run this program I include the command line arguments "--lcores=(0)@1,(1)@2" which is passed to 'rte_eal_init'. </div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">This means there's a lcore identified '0' run on CPU HW core 1, and lcore '1' run on CPU HW core 2.</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">As I understand it, the intent of the lcores argument is that this test program will eventually run the RX loop as lcore 0, and the TX loop as lcore 1 (or vice-versa). </div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">On the other hand after all the required DPDK setup is done --- memzones, mempools, queues, NIC devices initialized and started --- here's what DPDK has not done:</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">* It hasn't started an application thread for lcore 0 or lcore 1</div><div class="gmail_default" style="font-family:monospace">* DPDK doesn't know the function entry point for either loop so no loops are running.</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Which is totally fine ... DPDK isn't magic. If the application programmer wants a RX and TX application thread pinned to some CPU, it should create the threads, set the CPU affinity, and run the loop in the NUMA aligned way. This is trivial to do. That is, with the required DPDK setup done, all that's left is to do this trivial work ... and the test program is up and running: problem solved.</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">The --lcores doesn't and cannot do this application work. So what is the practical result of it? What does it do?</div></div>