lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <OF7426A1EE.BBD67937-ONC12578B2.003B466D-C12578B2.004E3647@ch.ibm.com>
Date:	Fri, 17 Jun 2011 16:14:16 +0200
From:	Bernard Metzler <BMT@...ich.ibm.com>
To:	Steve Wise <swise@...ngridcomputing.com>
Cc:	linux-rdma@...r.kernel.org, linux-rdma-owner@...r.kernel.org,
	netdev@...r.kernel.org
Subject: Re: [PATCH 05/14] SIWv2: User interface: siw_verbs.h, siw_verbs.c, siw_user.h, siw_ae.c

Steve,
we currently do not support inline data for kernel clients since
we copy those data into a malloc'd buffer, where kmalloc()
might block. Using an explicit buffer comes from experiments
to allow for larger blocks of inlined data.
I could put the inline data directly into the wqe restricting it
to some 200 bytes or less (dependent on wqe size which
is mainly determined by numer of sge's supported).
would that make sense? maybe it would better reflect the
intended nature of inline data - put some bytes out w/o
doing memory registration...

thanks,
Bernard

linux-rdma-owner@...r.kernel.org wrote on 06/16/2011 05:53:32 PM:

>
> <snip>
>
> > +
> > +/*
> > + * siw_create_qp()
> > + *
> > + * Create QP of requested size on given device.
> > + *
> > + * @ofa_pd:   OFA PD contained in siw PD
> > + * @attrs:   Initial QP attributes.
> > + * @udata:   used to provide QP ID, SQ and RQ size back to user.
> > + */
> > +
> > +struct ib_qp *siw_create_qp(struct ib_pd *ofa_pd,
> > +             struct ib_qp_init_attr *attrs,
> > +             struct ib_udata *udata)
> > +{
> > +   struct siw_qp         *qp = NULL;
> > +   struct siw_pd         *pd = siw_pd_ofa2siw(ofa_pd);
> > +   struct ib_device      *ofa_dev = ofa_pd->device;
> > +   struct siw_dev         *dev = siw_dev_ofa2siw(ofa_dev);
> > +   struct siw_cq         *scq = NULL, *rcq = NULL;
> > +   struct siw_iwarp_tx      *c_tx;
> > +   struct siw_iwarp_rx      *c_rx;
> > +   struct siw_uresp_create_qp   uresp;
> > +
> > +   unsigned long flags;
> > +   int kernel_verbs = ofa_pd->uobject ? 0 : 1;
> > +   int rv = 0;
> > +
> > +   dprint(DBG_OBJ|DBG_CM, ": new QP on device %s\n",
> > +      ofa_dev->name);
> > +
> > +   if (atomic_inc_return(&dev->num_qp)>  SIW_MAX_QP) {
> > +      dprint(DBG_ON, ": Out of QP's\n");
> > +      rv = -ENOMEM;
> > +      goto err_out;
> > +   }
> > +   if (attrs->qp_type != IB_QPT_RC) {
> > +      dprint(DBG_ON, ": Only RC QP's supported\n");
> > +      rv = -EINVAL;
> > +      goto err_out;
> > +   }
> > +   if ((attrs->cap.max_send_wr>  SIW_MAX_QP_WR) ||
> > +       (attrs->cap.max_recv_wr>  SIW_MAX_QP_WR) ||
> > +       (attrs->cap.max_send_sge>  SIW_MAX_SGE)  ||
> > +       (attrs->cap.max_recv_sge>  SIW_MAX_SGE)) {
> > +      dprint(DBG_ON, ": QP Size!\n");
> > +      rv = -EINVAL;
> > +      goto err_out;
> > +   }
> > +   if (attrs->cap.max_inline_data>  SIW_MAX_INLINE ||
> > +       (kernel_verbs&&  attrs->cap.max_inline_data != 0)) {
> > +      dprint(DBG_ON, ": Max Inline Send %d>  %d!\n",
> > +             attrs->cap.max_inline_data, SIW_MAX_INLINE);
> > +      rv = -EINVAL;
> > +      goto err_out;
>
> Why no inline support for kernel users?
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ