Hi, On Tuesday, October 24, 2017 4:52 PM, Nélio Laranjeiro wrote: > > On Mon, Oct 23, 2017 at 02:21:57PM +0000, Ophir Munk wrote: > > From: Matan Azrad <ma...@mellanox.com> > > > > Merge tx_burst and mlx4_post_send functions to prevent double asking > > about WQ remain space. > > > > This should improve performance. > > > > Signed-off-by: Matan Azrad <ma...@mellanox.com> > > --- > > drivers/net/mlx4/mlx4_rxtx.c | 353 > > +++++++++++++++++++++---------------------- > > 1 file changed, 170 insertions(+), 183 deletions(-) > > What are the real expectation you have on the remaining patches of the > series? > > According to the comment of this commit log "This should improve > performance" there are too many barriers at each packet/segment level to > improve something. > > The point is, mlx4_burst_tx() should write all the WQE without any barrier as > it is processing a burst of packets (whereas Verbs functions which may only > process a single packet).
> The lonely barrier which should be present is the > one to ensure that all the host memory is flushed before triggering the Tx > doorbell. > There is a known ConnectX-3 HW limitation: the first 4 bytes of every TXWBB (64 bytes chunks) should be written in a reversed order (from last TXWBB to first TXWBB). The last 60 bytes of any TXWBB can be written in any order (before writing the first 4 bytes). Is your last statement (using lonely barrier) is in accordance with this limitation? Please explain. > There is also too many cases handled which are useless in bursts situation, > this function needs to be re-written to its minimal use case i.e. processing > a > valid burst of packets/segments and triggering at the end of the burst the Tx > doorbell. > > Regards, > > -- > Nélio Laranjeiro > 6WIND