From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: "Wei Hu (Xavier)" <xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
lijun_nudt-9Onoh4P/yGk@public.gmane.org,
oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
charles.chenxin-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
liuyixian-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
xushaobo2-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
zhangxiping3-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
xavier.huwei-9Onoh4P/yGk@public.gmane.org,
linuxarm-hv44wF8Li93QT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH for-next 05/20] RDMA/hns: Add command queue support for hip08 RoCE driver
Date: Mon, 25 Sep 2017 13:06:53 -0400 [thread overview]
Message-ID: <1506359213.120853.75.camel@redhat.com> (raw)
In-Reply-To: <1504084998-64397-6-git-send-email-xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
On Wed, 2017-08-30 at 17:23 +0800, Wei Hu (Xavier) wrote:
So, we set the send timeout limit here:
> + /* Setup Tx write back timeout */
> + priv->cmq.tx_timeout = HNS_ROCE_CMQ_TX_TIMEOUT;
> +
[ snip ]
> +int hns_roce_cmq_send(struct hns_roce_dev *hr_dev,
> + struct hns_roce_cmq_desc *desc, int num)
> +{
> + struct hns_roce_v2_priv *priv = (struct hns_roce_v2_priv
> *)hr_dev->priv;
> + struct hns_roce_v2_cmq_ring *csq = &priv->cmq.csq;
> + struct hns_roce_cmq_desc *desc_to_use;
> + bool complete = false;
> + u32 timeout = 0;
> + int handle = 0;
> + u16 desc_ret;
> + int ret = 0;
> + int ntc;
> +
> + spin_lock_bh(&csq->lock);
and we take a bh lock here...
> + if (num > hns_roce_cmq_space(csq)) {
> + spin_unlock_bh(&csq->lock);
> + return -EBUSY;
> + }
> +
> + /*
> + * Record the location of desc in the cmq for this time
> + * which will be use for hardware to write back
> + */
> + ntc = csq->next_to_use;
> +
> + while (handle < num) {
> + desc_to_use = &csq->desc[csq->next_to_use];
> + *desc_to_use = desc[handle];
> + dev_dbg(hr_dev->dev, "set cmq desc:\n");
> + csq->next_to_use++;
> + if (csq->next_to_use == csq->desc_num)
> + csq->next_to_use = 0;
> + handle++;
> + }
> +
> + /* Write to hardware */
> + roce_write(hr_dev, ROCEE_TX_CMQ_TAIL_REG, csq->next_to_use);
> +
> + /*
> + * If the command is sync, wait for the firmware to write
> back,
> + * if multi descriptors to be sent, use the first one to
> check
> + */
> + if ((desc->flag) & HNS_ROCE_CMD_FLAG_NO_INTR) {
> + do {
> + if (hns_roce_cmq_csq_done(hr_dev))
> + break;
> + usleep_range(1000, 2000);
> + timeout++;
> + } while (timeout < priv->cmq.tx_timeout);
> + }
then we spin here for a maximum amount of time between 200 and 400ms,
so 1/4 to 1/2 a second. All the time we are holding the bh lock on
this CPU. That seems excessive to me. If we are going to spin that
long, can you find a way to allocate/reserve your resources, send the
command, then drop the bh lock while you spin, and retake it before you
complete once the spinning is done?
> +#define HNS_ROCE_CMQ_TX_TIMEOUT 200
or you could reduce the size of this define...
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-09-25 17:06 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-30 9:22 [PATCH for-next 00/20] RDMA/hns: Add hip08 RoCE driver support Wei Hu (Xavier)
[not found] ` <1504084998-64397-1-git-send-email-xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-08-30 9:22 ` [PATCH for-next 01/20] RDMA/hns: Split hw v1 driver from hns roce driver Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 02/20] RDMA/hns: Move priv in order to add multiple hns_roce support Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 03/20] RDMA/hns: Initialize the PCI device for hip08 RoCE Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 04/20] RDMA/hns: Modify assignment device variable to support both PCI device and platform device Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 05/20] RDMA/hns: Add command queue support for hip08 RoCE driver Wei Hu (Xavier)
[not found] ` <1504084998-64397-6-git-send-email-xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-25 17:06 ` Doug Ledford [this message]
[not found] ` <1506359213.120853.75.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-25 17:18 ` Leon Romanovsky
[not found] ` <20170925171821.GQ25094-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-25 17:36 ` Doug Ledford
[not found] ` <1506361015.120853.81.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-26 5:15 ` Leon Romanovsky
2017-09-26 13:13 ` Wei Hu (Xavier)
[not found] ` <59CA5261.80209-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-26 15:24 ` Wei Hu (Xavier)
[not found] ` <e99f8917-1906-697b-3dcd-5f024b444750-WVlzvzqoTvw@public.gmane.org>
2017-09-26 15:51 ` Leon Romanovsky
[not found] ` <20170926155149.GE6816-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-26 16:13 ` Wei Hu (Xavier)
[not found] ` <5514bf6d-3a98-a6fe-ea90-476f5ae1f623-WVlzvzqoTvw@public.gmane.org>
2017-09-26 21:12 ` Wei Hu (Xavier)
2017-09-26 16:18 ` Doug Ledford
[not found] ` <81dd332d-e060-d7e3-bec9-1791511c5470-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-27 2:46 ` Wei Hu (Xavier)
2017-09-27 2:46 ` Wei Hu (Xavier)
[not found] ` <9172f8c5-3dd6-a573-8e28-1b3ae4b1726b-WVlzvzqoTvw@public.gmane.org>
2017-09-27 12:21 ` Doug Ledford
2017-09-27 12:21 ` Doug Ledford
[not found] ` <1b8bda3b-c514-7e46-08bf-3ea50ea68096-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-27 12:41 ` Doug Ledford
2017-09-27 12:41 ` Doug Ledford
2017-09-28 4:34 ` Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 06/20] RDMA/hns: Add profile support for hip08 driver Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 07/20] RDMA/hns: Add mailbox's implementation for hip08 RoCE driver Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 08/20] RDMA/hns: Add the interfaces to support multi hop addressing for the contexts in hip08 Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 09/20] RDMA/hns: Configure BT BA and BT attribute " Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 10/20] RDMA/hns: Update the interfaces for MTT/CQE multi hop addressing " Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 11/20] RDMA/hns: Split CQE from MTT " Wei Hu (Xavier)
[not found] ` <1504084998-64397-12-git-send-email-xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-13 17:52 ` Leon Romanovsky
[not found] ` <20170913175259.GW3405-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-15 1:09 ` Wei Hu (Xavier)
[not found] ` <59BB2848.6080802-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-20 2:48 ` Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 12/20] RDMA/hns: Support multi hop addressing for PBL " Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 13/20] RDMA/hns: Configure mac&gid and user access region for hip08 RoCE driver Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 14/20] RDMA/hns: Add CQ operations support " Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 15/20] RDMA/hns: Add QP operations support for hip08 SoC Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 16/20] RDMA/hns: Add support for processing send wr and receive wr Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 17/20] RDMA/hns: Configure the MTPT in hip08 Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 18/20] RDMA/hns: Add releasing resource operation in error branch Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 19/20] RDMA/hns: Replace condition statement using hardware version information Wei Hu (Xavier)
2017-08-30 9:23 ` [PATCH for-next 20/20] RDMA/hns: Fix inconsistent warning Wei Hu (Xavier)
2017-09-13 17:55 ` [PATCH for-next 00/20] RDMA/hns: Add hip08 RoCE driver support Leon Romanovsky
[not found] ` <20170913175554.GX3405-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-14 7:45 ` Wei Hu (Xavier)
[not found] ` <59BA33B1.8030300-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-14 12:43 ` Leon Romanovsky
[not found] ` <20170914124341.GY3405-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-09-15 1:12 ` Wei Hu (Xavier)
[not found] ` <59BB28F1.9040007-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-20 2:50 ` Wei Hu (Xavier)
2017-09-25 6:18 ` Wei Hu (Xavier)
[not found] ` <59C89FD0.9050606-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-09-25 15:57 ` Doug Ledford
[not found] ` <1506355051.120853.70.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-09-25 17:37 ` Doug Ledford
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=1506359213.120853.75.camel@redhat.com \
--to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=charles.chenxin-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=lijun_nudt-9Onoh4P/yGk@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linuxarm-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=liuyixian-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=xavier.huwei-9Onoh4P/yGk@public.gmane.org \
--cc=xavier.huwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=xushaobo2-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=zhangxiping3-hv44wF8Li93QT0dZR+AlfA@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.