From: Yuval Shaia <yuval.shaia@oracle.com>
To: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] hw/pvrdma: Post CQE when receive invalid gid index
Date: Sun, 13 Jan 2019 21:19:02 +0200 [thread overview]
Message-ID: <20190113191901.GA10017@lap1> (raw)
In-Reply-To: <7b754432-7c1e-8f22-3410-d95c426c2d0b@gmail.com>
On Sat, Jan 12, 2019 at 05:11:39PM +0200, Marcel Apfelbaum wrote:
>
>
> On 1/9/19 10:15 PM, Yuval Shaia wrote:
> > This error should propagate back to guest.
> >
> > Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
> > ---
> > hw/rdma/rdma_backend.h | 1 +
> > hw/rdma/vmw/pvrdma_qp_ops.c | 6 ++++--
> > 2 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/rdma/rdma_backend.h b/hw/rdma/rdma_backend.h
> > index a9ba40ae48..5114c90e67 100644
> > --- a/hw/rdma/rdma_backend.h
> > +++ b/hw/rdma/rdma_backend.h
> > @@ -32,6 +32,7 @@
> > #define VENDOR_ERR_INVLKEY 0x207
> > #define VENDOR_ERR_MR_SMALL 0x208
> > #define VENDOR_ERR_INV_MAD_BUFF 0x209
> > +#define VENDOR_ERR_INV_GID_IDX 0x210
> > /* Add definition for QP0 and QP1 as there is no userspace enums for them */
> > enum ibv_special_qp_type {
> > diff --git a/hw/rdma/vmw/pvrdma_qp_ops.c b/hw/rdma/vmw/pvrdma_qp_ops.c
> > index 465bee8641..0565eba981 100644
> > --- a/hw/rdma/vmw/pvrdma_qp_ops.c
> > +++ b/hw/rdma/vmw/pvrdma_qp_ops.c
> > @@ -178,7 +178,8 @@ int pvrdma_qp_send(PVRDMADev *dev, uint32_t qp_handle)
> > sgid = rdma_rm_get_gid(&dev->rdma_dev_res, wqe->hdr.wr.ud.av.gid_index);
> > if (!sgid) {
> > pr_dbg("Fail to get gid for idx %d\n", wqe->hdr.wr.ud.av.gid_index);
> > - return -EIO;
> > + complete_with_error(VENDOR_ERR_INV_GID_IDX, comp_ctx);
>
> Informing the guest is OK, but are you sure it makes sense
> to continue sending the other work requests?
Yes, it is exactly what is expected. RDMA application (or driver) would
usually push several work requests to ring (optimally populating the entire
ring) and then ring the doorbell.
An error in a specific WR does not means all WRs in ring should not be
processed.
> Is maybe safer to return with error as before?
And what about the remaining WR in the ring? any way the device would have
to process them on next doorbell.
>
> > + continue;
> > }
> > pr_dbg("sgid_id=%d, sgid=0x%llx\n", wqe->hdr.wr.ud.av.gid_index,
> > sgid->global.interface_id);
> > @@ -189,7 +190,8 @@ int pvrdma_qp_send(PVRDMADev *dev, uint32_t qp_handle)
> > if (sgid_idx <= 0) {
> > pr_dbg("Fail to get bk sgid_idx for sgid_idx %d\n",
> > wqe->hdr.wr.ud.av.gid_index);
> > - return -EIO;
> > + complete_with_error(VENDOR_ERR_INV_GID_IDX, comp_ctx);
> > + continue;
>
> Same question here.
>
> Thanks,
> Marcel
> > }
> > if (wqe->hdr.num_sge > dev->dev_attr.max_sge) {
>
next prev parent reply other threads:[~2019-01-13 19:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-09 20:15 [Qemu-devel] [PATCH] hw/pvrdma: Post CQE when receive invalid gid index Yuval Shaia
2019-01-12 15:11 ` Marcel Apfelbaum
2019-01-13 19:19 ` Yuval Shaia [this message]
2019-01-18 13:04 ` Marcel Apfelbaum
2019-01-18 13:55 ` Marcel Apfelbaum
2019-01-18 16:23 ` Yuval Shaia
2019-01-19 9:42 ` Marcel Apfelbaum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190113191901.GA10017@lap1 \
--to=yuval.shaia@oracle.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).