On 2020/11/27 3:24, Jason Gunthorpe wrote: > On Thu, Nov 19, 2020 at 06:15:42AM +0000, liweihang wrote: >> On 2020/11/19 3:11, Jason Gunthorpe wrote: >>> On Mon, Nov 16, 2020 at 07:33:28PM +0800, Weihang Li wrote: >>>> @@ -503,7 +581,23 @@ static inline int set_ud_wqe(struct hns_roce_qp *qp, >>>> if (ret) >>>> return ret; >>>> >>>> - set_extend_sge(qp, wr, &curr_idx, valid_num_sge); >>>> + if (wr->send_flags & IB_SEND_INLINE) { >>>> + ret = set_ud_inl(qp, wr, ud_sq_wqe, &curr_idx); >>>> + if (ret) >>>> + return ret; >>> >>> Why are you implementing this in the kernel? No kernel ULP sets this >>> flag? >> >> Sorry, I don't understand. Some kernel users may set IB_SEND_INLINE >> when using UD, some may not, we just check this flag to decide how >> to fill the data into UD SQ WQE here. > > I mean if you 'git grep IB_SEND_INLINE' nothing uses it. > > This is all dead code. > > How did you test it? > > Jason > Hi Jason, We have tested it with our own tools. After running 'git grep IB_SEND_INLINE', I found following drivers refer to this flag: bnxt_re/cxgb4/i40iw/mlx5/ocrdma/qedr/rxe/siw So I'm still a bit confused. Do you mean that no kernel ULP uses UD inline or the IB_SEND_INLINE flag? Should current related codes be removed? I also found a very old discussion about removing this flag, but there was no futher information: https://lists.openfabrics.org/pipermail/general/2007-August/039826.html I will appreciate it if you can give us more detailed suggestions. Thanks Weihang