On Fri, Jan 05, 2018 at 12:27:37PM -0800, Stephen Hemminger wrote: > On Thu, 4 Jan 2018 07:59:37 -0800 > Xiao Wang <xiao.w.w...@intel.com> wrote: > > > This patch adds dev_pause, dev_resume and inject_pkts api to allow > > driver to pause the worker thread and inject special packets into > > Tx queue. The next patch will be based on this. > > > > Signed-off-by: Xiao Wang <xiao.w.w...@intel.com> > > Why is this needed? It isn't obvious what the mechanism is trying to solve.
Xiao needs to use such mechanism to send some special packets (RARP packet) in the interrupt handler to implement the GUEST ANNOUNCE feature. To avoid the contention between user's Tx threads and the interrupt thread. He needs to pause user's Tx threads (by reusing the existing 'started' flag in `virtio_hw`) first, and call tx_burst() to send the RARP packet. He already provided the pause() and resume() functions, but the implementation of sending the RARP packet (add a field named as `rarp_buf` in `virtio_hw`, and check it in tx_burst() functions) is too specific. So I just suggested him to give rarp_buf a more generic name and provide a simple wrapper of tx_burst for internal use: http://dpdk.org/ml/archives/dev/2018-January/085213.html Is it OK to you? Or do you have any other suggestions? Thanks! PS. The latest version is v5, below is the link: http://dpdk.org/ml/archives/dev/2018-January/085354.html Best regards, Tiwei Bie