From patchwork Wed Apr 17 15:00:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bernard Metzler X-Patchwork-Id: 10905465 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EDF8117E0 for ; Wed, 17 Apr 2019 15:01:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7A0A28BF4 for ; Wed, 17 Apr 2019 15:01:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CBB3328BF7; Wed, 17 Apr 2019 15:01:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F140A28BDF for ; Wed, 17 Apr 2019 15:01:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732372AbfDQPBP (ORCPT ); Wed, 17 Apr 2019 11:01:15 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:42806 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731996AbfDQPBP (ORCPT ); Wed, 17 Apr 2019 11:01:15 -0400 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3HEt0Ke036196 for ; Wed, 17 Apr 2019 11:01:14 -0400 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2rx3h203j3-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 17 Apr 2019 11:01:14 -0400 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 17 Apr 2019 16:01:09 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp04.uk.ibm.com (192.168.101.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Wed, 17 Apr 2019 16:01:09 +0100 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x3HF17Fa48431208 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Apr 2019 15:01:07 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7AA6B11C073; Wed, 17 Apr 2019 15:01:07 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6156E11C05E; Wed, 17 Apr 2019 15:01:07 +0000 (GMT) Received: from spoke.zurich.ibm.com (unknown [9.4.69.152]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Wed, 17 Apr 2019 15:01:07 +0000 (GMT) From: Bernard Metzler To: linux-rdma@vger.kernel.org Cc: Bernard Metzler Subject: [PATCH v7 00/12] SIW: Request for Comments Date: Wed, 17 Apr 2019 17:00:39 +0200 X-Mailer: git-send-email 2.17.2 X-TM-AS-GCONF: 00 x-cbid: 19041715-0016-0000-0000-0000026FE998 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19041715-0017-0000-0000-000032CC3BE6 Message-Id: <20190417150051.365-1-bmt@zurich.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-04-17_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904170102 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch set contributes version 7 of the SoftiWarp driver, as originally introduced to the list Oct 6th, 2017. SoftiWarp (siw) implements the iWarp RDMA protocol over kernel TCP sockets. The driver integrates with the linux-rdma framework. Mainly in response to the various helpful feedback, I fixed the following issues: 1. The code now relies on proper object management provided by the RDMA midlayer. With that, reference counting for PD's, CQ's and SRQ's got dropped. The corresponding files siw_obj.[ch] are removed. 2. The code now supports multiple user mmap operations of the same object (CQ, SQ, RQ, SRQ array) during its lifetime. To efficiently maintain the potentially large number of objects, those are now kept in a user context private cyclic xarray. 3. siw private memory access flags definition got dropped in favor of ib_access_flags. 4. Added code to consistently check complete STag during memory access - checking the user controlled 8 bit 'key' field was inconsistent and partially missing. We maintain a snapshot of the current code at https://github.com/zrlio/softiwarp-for-linux-rdma.git within branch 'siw-for-rdma-next-v7'. The matching siw user library is maintained at https://github.com/zrlio/softiwarp-user-for-linux-rdma.git. The relevant branch name is 'siw-for-rdma-next-v7'. As always, I highly appreciate your feedback. Thanks very much for your time and help! Bernard. Bernard Metzler (12): iWarp wire packet format SIW main include file SIW network and RDMA core interface SIW connection management SIW application interface SIW application buffer management SIW queue pair methods SIW transmit path SIW receive path SIW completion queue methods SIW debugging SIW addition to kernel build environment MAINTAINERS | 579 ++++-- drivers/infiniband/Kconfig | 1 + drivers/infiniband/sw/Makefile | 1 + drivers/infiniband/sw/siw/Kconfig | 17 + drivers/infiniband/sw/siw/Makefile | 12 + drivers/infiniband/sw/siw/iwarp.h | 379 ++++ drivers/infiniband/sw/siw/siw.h | 733 ++++++++ drivers/infiniband/sw/siw/siw_cm.c | 2106 ++++++++++++++++++++++ drivers/infiniband/sw/siw/siw_cm.h | 121 ++ drivers/infiniband/sw/siw/siw_cq.c | 109 ++ drivers/infiniband/sw/siw/siw_debug.c | 91 + drivers/infiniband/sw/siw/siw_debug.h | 40 + drivers/infiniband/sw/siw/siw_main.c | 711 ++++++++ drivers/infiniband/sw/siw/siw_mem.c | 464 +++++ drivers/infiniband/sw/siw/siw_mem.h | 53 + drivers/infiniband/sw/siw/siw_qp.c | 1354 ++++++++++++++ drivers/infiniband/sw/siw/siw_qp_rx.c | 1520 ++++++++++++++++ drivers/infiniband/sw/siw/siw_qp_tx.c | 1289 +++++++++++++ drivers/infiniband/sw/siw/siw_verbs.c | 1841 +++++++++++++++++++ drivers/infiniband/sw/siw/siw_verbs.h | 84 + include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + include/uapi/rdma/siw_user.h | 186 ++ 22 files changed, 11559 insertions(+), 133 deletions(-) create mode 100644 drivers/infiniband/sw/siw/Kconfig create mode 100644 drivers/infiniband/sw/siw/Makefile create mode 100644 drivers/infiniband/sw/siw/iwarp.h create mode 100644 drivers/infiniband/sw/siw/siw.h create mode 100644 drivers/infiniband/sw/siw/siw_cm.c create mode 100644 drivers/infiniband/sw/siw/siw_cm.h create mode 100644 drivers/infiniband/sw/siw/siw_cq.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.c create mode 100644 drivers/infiniband/sw/siw/siw_debug.h create mode 100644 drivers/infiniband/sw/siw/siw_main.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.c create mode 100644 drivers/infiniband/sw/siw/siw_mem.h create mode 100644 drivers/infiniband/sw/siw/siw_qp.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_rx.c create mode 100644 drivers/infiniband/sw/siw/siw_qp_tx.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.c create mode 100644 drivers/infiniband/sw/siw/siw_verbs.h create mode 100644 include/uapi/rdma/siw_user.h