Hi Stan, SRQ patch for mlx4 driver does not introduces a new feature, just fixes a bug.
Thanks, Alex. > -----Original Message----- > From: Smith, Stan [mailto:[EMAIL PROTECTED] > Sent: Sunday, October 05, 2008 5:41 PM > To: Leonid Keller; Alex Estrin > Cc: [email protected] > Subject: RE: [ofw][mlx4] SRQ attached QP issue > > Leonid Keller wrote: > > Hi Stan, > > What is the policy wrt RC2 branch ? > > Do we have to add new patches to it or just to the trunk ? > > Hello, > Thanks for asking. The WOF2-0 'branch' @ > gen1\branches\WOF2-0\ is functionality frozen and open only > for bug fixes. > > Stan. > > > >> -----Original Message----- > >> From: Alex Estrin [mailto:[EMAIL PROTECTED] > >> Sent: Thursday, October 02, 2008 3:33 PM > >> To: Leonid Keller > >> Cc: [email protected] > >> Subject: RE: [ofw][mlx4] SRQ attached QP issue > >> > >> Do you think it makes sense to propagate the fix to 2.0 branch? > >> Thanks, Alex. > >> > >>> -----Original Message----- > >>> From: Leonid Keller [mailto:[EMAIL PROTECTED] > >>> Sent: Thursday, October 02, 2008 5:27 AM > >>> To: Alex Estrin > >>> Cc: [email protected] > >>> Subject: RE: [ofw][mlx4] SRQ attached QP issue > >>> > >>> Right. > >>> Returned to your variant. > >>> Fixed in 1627, thank you. > >>> > >>>> -----Original Message----- > >>>> From: Alex Estrin [mailto:[EMAIL PROTECTED] > >>>> Sent: Monday, September 29, 2008 3:01 PM > >>>> To: Leonid Keller > >>>> Cc: [email protected] > >>>> Subject: RE: [ofw][mlx4] SRQ attached QP issue > >>>> > >>>> Hello, > >>>> > >>>> Your version of the patch won't work because for the SRQ > case this > >>>> will always be 'TRUE': > >>>>> - if (!qp->sq.wrid || !qp->rq.wrid) { > >>>>> - err = -ENOMEM; > >>>>> - goto err_wrid; > >>>> > >>>> Thanks, > >>>> Alex. > >>>> > >>>>> -----Original Message----- > >>>>> From: Leonid Keller [mailto:[EMAIL PROTECTED] > >>>>> Sent: Sunday, September 28, 2008 11:13 AM > >>>>> To: Alex Estrin > >>>>> Cc: [email protected] > >>>>> Subject: RE: [ofw][mlx4] SRQ attached QP issue > >>>>> > >>>>> Applied with some changes in 1625, thank you. > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: Alex Estrin [mailto:[EMAIL PROTECTED] > >>>>>> Sent: Saturday, September 27, 2008 1:20 AM > >>>>>> To: Leonid Keller > >>>>>> Cc: [email protected] > >>>>>> Subject: [ofw][mlx4] SRQ attached QP issue > >>>>>> > >>>>>> Hello, > >>>>>> > >>>>>> This patch seem fixed the create-QP-attached-to-SRQ issue. > >>>>>> I didn't verify though, if code allowes send queue zero size. > >>>>>> Included check anyway. Please review. > >>>>>> > >>>>>> Thanks, > >>>>>> Alex. > >>>>>> > >>>>>> Index: mlx4/kernel/bus/ib/qp.c > >>>>>> > >>>> > >> =================================================================== > >>>>>> --- mlx4/kernel/bus/ib/qp.c (revision 1622) > >>>>>> +++ mlx4/kernel/bus/ib/qp.c (working copy) > >>>>>> @@ -411,14 +411,20 @@ > >>>>>> err = mlx4_buf_write_mtt(dev->dev, &qp->mtt, > >>>>>> &qp->buf); if (err) goto > >>>>>> err_mtt; - > >>>>>> - qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof > >>>>>> (u64), GFP_KERNEL); > >>>>>> - qp->rq.wrid = kmalloc(qp->rq.wqe_cnt * sizeof > >>>>>> (u64), GFP_KERNEL); - > >>>>>> - if (!qp->sq.wrid || !qp->rq.wrid) { > >>>>>> - err = -ENOMEM; > >>>>>> - goto err_wrid; > >>>>>> + if (qp->sq.wqe_cnt) { > >>>>>> + qp->sq.wrid = > >>> kmalloc(qp->sq.wqe_cnt * sizeof > >>>>>> (u64), GFP_KERNEL); > >>>>>> + if (!qp->sq.wrid) { > >>>>>> + err = -ENOMEM; > >>>>>> + goto err_wrid; > >>>>>> + } > >>>>>> } > >>>>>> + if (qp->rq.wqe_cnt) { > >>>>>> + qp->rq.wrid = > >>> kmalloc(qp->rq.wqe_cnt * sizeof > >>>>>> (u64), GFP_KERNEL); > >>>>>> + if (!qp->rq.wrid) { > >>>>>> + err = -ENOMEM; > >>>>>> + goto err_wrid; > >>>>>> + } > >>>>>> + } > >>>>>> } > >>>>>> > >>>>>> if (!sqpn) > >>>>>> @@ -452,8 +458,10 @@ > >>>>>> > >>> mlx4_ib_db_unmap_user(to_mucontext(pd->p_uctx), > >>>>>> &qp->db); } > >>>>>> else { > >>>>>> - kfree(qp->sq.wrid); > >>>>>> - kfree(qp->rq.wrid); > >>>>>> + if (qp->sq.wrid) > >>>>>> + kfree(qp->sq.wrid); > >>>>>> + if (qp->rq.wrid) > >>>>>> + kfree(qp->rq.wrid); > >>>>>> } > >>>>>> > >>>>>> err_mtt: > >>>>>> > >>>>>> > >>>>>> > >>>>>>> Hello, > >>>>>>> > >>>>>>> It seem there is a controversy exist in mlx4 driver that won't > >>>>>>> allow to create QP if it was attached to SRQ. > >>>>>>> > >>>>>>> At first it doesn't allow to set any recv queue size (which is > >>>>>>> fine) > >>>>>>> > >>>>>>> mlx4\kernel\bus\ib\qp.c@ line 219: > >>>>>>> if (cap->max_recv_wr) > >>>>>>> return -EINVAL; > >>>>>>> > >>>>>>> qp->rq.wqe_cnt = qp->rq.max_gs = 0; > >>>>>>> > >>>>>>> But then there is assertion for zero size memory request in > >>>>>>> 'kmalloc': mlx4\kernel\bus\ib\qp.c @ line 416: > >>>>>>> > >>>>>>> qp->rq.wrid = kmalloc(qp->rq.wqe_cnt * sizeof > >>>>>>> (u64), GFP_KERNEL); > >>>>>>> > >>>>>>> mlx4\kernel\inc\l2w_memory.h @ line 81: > >>>>>>> > >>>>>>> static inline void * kmalloc( SIZE_T bsize, gfp_t > >>>>>>> gfp_mask) { void *ptr; > >>>>>>> ASSERT( KeGetCurrentIrql() <= > >>>>>>> DISPATCH_LEVEL); ASSERT(bsize); > >>>>>>> ..... > >>>>>>> > >>>>>>> I believe it was added for a reason. > >>>>>>> Please let me know if I missed anything. > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Alex. > > _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
