On 5/29/2023 3:26 AM, Jie Hai wrote: > > Each stream has a read-only "disabled" field that control if this > stream should be used to forward. This field depends on states > of Rx/Tx queues, please see > commit 3c4426db54fc ("app/testpmd: do not poll stopped queues"). > > Currently, the testpmd and DPDK frameworks maintain queue state > separately. That of the primary process of testpmd are set by > deferred_start in the queue configuration. And that of the > framework(dev->data->rx_queue_state or dev->data->tx_queue_state) > is set when the driver enables/disables the queue, and it is > shared between the primary/secondary process. > > If the deferred_start is set, the queue is disabled and the > corresponding queue state in the framework changes to stopped. > However, the queue state in the framework does not only come from > this. If the primary/secondary process stops a queue, the related > queue state will change, too. However, the primary process of > testpmd does not know the change brought by this operation. > Therefore, setting the queue state in the primary testpmd by only > the deferred_start is unsafe. > > For example, Rx/Tx queues who are stopped before the operations of > stopping and starting port cannot forward packets after these > operations on primary process. > > Therefore, the primary process should getting the queue state from > of the framework as the secondary process does, please see commit > e065c9aa3e05 ("app/testpmd: fix secondary process packet forwarding"). > > Fixes: 3c4426db54fc ("app/testpmd: do not poll stopped queues") > Cc: sta...@dpdk.org > > Signed-off-by: Jie Hai <haij...@huawei.com> > --- > v1->v2: > 1. Fix misspelled word 'deferred'. > 2. Fix incorrect format of reference to commits. > > v2->v3 > 1. Fix incorrect format of reference to commits.
Hi Jie, Problem is not clear for me. Can you please describe more what is not working?