On Sun, Mar 26, 2017 at 11:42 PM, Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx> wrote: > On Sun, Mar 26, 2017 at 07:17:13PM +0300, Erez Shitrit wrote: > >> > be computed once instead of computed for every split packet. The >> > downside here is that it may be very complicated to store a kref in a >> > skb pseudo header and properly unref it at all the right times.. >> >> It is an optimization, and still we need to get the ah even at the >> middle of GSO, for each skb, or to keep it somewhere, also will need >> to keep more space in the skb, more processing. > > GSO is done in a way where the pseudo header is retained but not > recomputed for every fragment, much like for ethernet. > > Does mlx5 even need a 'AH'? Maybe allowing the driver to provide some > bytes in the pseudo header that match the HW SQE is an overall more > efficient direction. For mlx5/mlx4, the details from the ah are required, (in order to build the datagram segment in the wqe(, but the ref count is seamless since the ah is not a hw resource, I can put that instead of the pseudo header in the driver start_xmit need to check if it pays with performance degradation. will check and update. > >> > The other is to factor out the AH extraction from ipoib_start_xmit >> > into a helper function and have all the rn drivers call it to get the >> > AH. >> >> We will pay with performance degradation for each send. > > Eh? Having ndo->ipoib->driver or ndo->driver->ipoib as a call chain > doesn't really matter one bit. I meant that the extra call is time consuming, if we need one more function (to extract the ah) that needs to be exported. Anyway, will try with the first option. > > Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html