From patchwork Mon Jul 11 11:02:09 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dotan Barak X-Patchwork-Id: 963962 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p6BB2bRK018167 for ; Mon, 11 Jul 2011 11:02:37 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754725Ab1GKLC1 (ORCPT ); Mon, 11 Jul 2011 07:02:27 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:59334 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754511Ab1GKLCZ (ORCPT ); Mon, 11 Jul 2011 07:02:25 -0400 Received: by wyg8 with SMTP id 8so2491196wyg.19 for ; Mon, 11 Jul 2011 04:02:24 -0700 (PDT) Received: by 10.216.229.165 with SMTP id h37mr2865757weq.69.1310382143958; Mon, 11 Jul 2011 04:02:23 -0700 (PDT) Received: from vnc11.lab.mtl.com ([82.166.227.17]) by mx.google.com with ESMTPS id fc2sm2539077wbb.1.2011.07.11.04.02.22 (version=SSLv3 cipher=OTHER); Mon, 11 Jul 2011 04:02:23 -0700 (PDT) From: Dotan Barak To: roland@kernel.org Subject: [PATCH/libmlx4] Use BlueFlame for RDMA_WRITE_WITH_IMM without data requests too Date: Mon, 11 Jul 2011 14:02:09 +0300 User-Agent: KMail/1.9.4 Cc: linux-rdma@vger.kernel.org MIME-Version: 1.0 Content-Disposition: inline Message-Id: <201107111402.10897.dotanb@sw.voltaire.com> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Mon, 11 Jul 2011 11:03:25 +0000 (UTC) Use BlueFlame for RDMA Write with immediate without any data (no s/g) too. This improves latency. Signed-off-by: Dotan Barak Reviewed-by: Jack Morgenstein --- src/qp.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/qp.c b/src/qp.c index e046da1..10ccbff 100644 --- a/src/qp.c +++ b/src/qp.c @@ -283,8 +283,11 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr, case IBV_WR_RDMA_READ: inl = 1; /* fall through */ - case IBV_WR_RDMA_WRITE: case IBV_WR_RDMA_WRITE_WITH_IMM: + if (!wr->num_sge) + inl = 1; + /* fall through */ + case IBV_WR_RDMA_WRITE: set_raddr_seg(wqe, wr->wr.rdma.remote_addr, wr->wr.rdma.rkey); wqe += sizeof (struct mlx4_wqe_raddr_seg);