From patchwork Mon Apr 29 23:37:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Santosh Shilimkar X-Patchwork-Id: 1092899 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.b="yFnYsmlj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44tLg92BSyz9sB8 for ; Tue, 30 Apr 2019 09:37:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729220AbfD2Xhj (ORCPT ); Mon, 29 Apr 2019 19:37:39 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:58932 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729063AbfD2Xhi (ORCPT ); Mon, 29 Apr 2019 19:37:38 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3TNZEnR189994; Mon, 29 Apr 2019 23:37:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=mD1Is/O3MiRW3O/EUNcHOv5j5rXcN7oJuM4O+nRBzdY=; b=yFnYsmljRry7Gtfn4CqZr8nA3S/UI7u8EQZt3QW1QmYMyn3vO/8exhsia8DNbKRtajTR 0LIGT1fEgoTP+n0FHydeZo7YTPxFh2aLxN6cmSTy0omD3P7AbBsq37GoEEauaj0325Q7 RgpmQ1K93IcYlP9MJKxrzzUK03U1wPj+G/CnY1YQwhFkWTLRTL1+eP0ErTiooX/LzkIF z6NkdbBCFm8M6y2QnE5LhMGxCwXkQNKwAGuVSkIAbLqXLME2dHMonnsjK7M0QDh+fq1J MWIUQU8S/EDu3VhraPf6f+FP697p2hJKiNJwp/U9RFSRjd2VslGlpYC3GrZ8FLNkPf5w XQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2120.oracle.com with ESMTP id 2s4fqq1aup-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Apr 2019 23:37:34 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3TNbYNe153501; Mon, 29 Apr 2019 23:37:34 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3030.oracle.com with ESMTP id 2s4yy97wbr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Apr 2019 23:37:33 +0000 Received: from abhmp0015.oracle.com (abhmp0015.oracle.com [141.146.116.21]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x3TNbQsi014498; Mon, 29 Apr 2019 23:37:26 GMT Received: from userv0022.oracle.com (/10.11.38.116) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 29 Apr 2019 16:37:26 -0700 From: Santosh Shilimkar To: netdev@vger.kernel.org, davem@davemloft.net Cc: santosh.shilimkar@oracle.com Subject: [net-next][PATCH v2 1/2] rds: handle unsupported rdma request to fs dax memory Date: Mon, 29 Apr 2019 16:37:19 -0700 Message-Id: <1556581040-4812-2-git-send-email-santosh.shilimkar@oracle.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1556581040-4812-1-git-send-email-santosh.shilimkar@oracle.com> References: <1556581040-4812-1-git-send-email-santosh.shilimkar@oracle.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9242 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904290153 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9242 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default 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-1904290153 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Hans Westgaard Ry RDS doesn't support RDMA on memory apertures that require On Demand Paging (ODP), such as FS DAX memory. User applications can try to use RDS to perform RDMA over such memories and since it doesn't report any failure, it can lead to unexpected issues like memory corruption when a couple of out of sync file system operations like ftruncate etc. are performed. The patch adds a check so that such an attempt to RDMA to/from memory apertures requiring ODP will fail. Reviewed-by: Håkon Bugge Reviewed-tested-by: Zhu Yanjun Signed-off-by: Hans Westgaard Ry Signed-off-by: Santosh Shilimkar --- net/rds/rdma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/rds/rdma.c b/net/rds/rdma.c index 182ab84..e0a6b72 100644 --- a/net/rds/rdma.c +++ b/net/rds/rdma.c @@ -158,8 +158,9 @@ static int rds_pin_pages(unsigned long user_addr, unsigned int nr_pages, { int ret; - ret = get_user_pages_fast(user_addr, nr_pages, write, pages); - + /* get_user_pages return -EOPNOTSUPP for fs_dax memory */ + ret = get_user_pages_longterm(user_addr, nr_pages, + write, pages, NULL); if (ret >= 0 && ret < nr_pages) { while (ret--) put_page(pages[ret]); From patchwork Mon Apr 29 23:37:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Santosh Shilimkar X-Patchwork-Id: 1092900 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.b="tWXB5Cfy"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44tLgB3RKcz9s9G for ; Tue, 30 Apr 2019 09:37:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729205AbfD2Xhj (ORCPT ); Mon, 29 Apr 2019 19:37:39 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:58930 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728748AbfD2Xhi (ORCPT ); Mon, 29 Apr 2019 19:37:38 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3TNZB9K189983; Mon, 29 Apr 2019 23:37:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=6hGEu2HZD/8YP3WoOCHTAZ2nyJdSrukF5yTJrl/RG7M=; b=tWXB5CfyM3dhTDNHDRLT0QeQJvUwNZDzpfPnkBqh/byAmNNxZGW5qBYPVptDxubPpJzD taJiUB07nU8hhQRmagcmykLj8PLkzerNkTntJKE/FfR6xBPzoLPGTuABAhmExPRNJm7j 2mqutg3oSL7ndQTbZyZUA6CGSuyNjRxwTmYbbne8qyT0WM0UknFkZgswYHJVXpyveEK0 r7xRbzH0OTKEHwxPImUy81YG4O27U7Hn2b5XwXMmpzUflp4Su0sdwHjKtJ6U+diBBnmP m3XdmC6P8ZfTAvQ/0gMxuKjD75GJFjesRFOy37Bh0wNHFZ/nyw8jLyvCzNTZgWPFbW1z aQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2s4fqq1aud-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Apr 2019 23:37:30 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3TNbTFe116698; Mon, 29 Apr 2019 23:37:29 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userp3020.oracle.com with ESMTP id 2s5u50nwjv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Apr 2019 23:37:29 +0000 Received: from abhmp0015.oracle.com (abhmp0015.oracle.com [141.146.116.21]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x3TNbQTF032565; Mon, 29 Apr 2019 23:37:26 GMT Received: from userv0022.oracle.com (/10.11.38.116) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 29 Apr 2019 16:37:26 -0700 From: Santosh Shilimkar To: netdev@vger.kernel.org, davem@davemloft.net Cc: santosh.shilimkar@oracle.com Subject: [net-next][PATCH v2 2/2] rds: add sysctl for rds support of On-Demand-Paging Date: Mon, 29 Apr 2019 16:37:20 -0700 Message-Id: <1556581040-4812-3-git-send-email-santosh.shilimkar@oracle.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1556581040-4812-1-git-send-email-santosh.shilimkar@oracle.com> References: <1556581040-4812-1-git-send-email-santosh.shilimkar@oracle.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9242 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904290153 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9242 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default 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-1904290153 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RDS doesn't support RDMA on memory apertures that require On Demand Paging (ODP), such as FS DAX memory. A sysctl is added to indicate whether RDMA requiring ODP is supported. Reviewed-by: Håkon Bugge Reviewed-tested-by: Zhu Yanjun Signed-off-by: Hans Westgaard Ry Signed-off-by: Santosh Shilimkar --- net/rds/ib.h | 1 + net/rds/ib_sysctl.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/net/rds/ib.h b/net/rds/ib.h index 67a715b..80e11ef 100644 --- a/net/rds/ib.h +++ b/net/rds/ib.h @@ -457,5 +457,6 @@ unsigned int rds_ib_stats_info_copy(struct rds_info_iterator *iter, extern unsigned long rds_ib_sysctl_max_unsig_bytes; extern unsigned long rds_ib_sysctl_max_recv_allocation; extern unsigned int rds_ib_sysctl_flow_control; +extern unsigned int rds_ib_sysctl_odp_support; #endif diff --git a/net/rds/ib_sysctl.c b/net/rds/ib_sysctl.c index e4e41b3..7cc02cd 100644 --- a/net/rds/ib_sysctl.c +++ b/net/rds/ib_sysctl.c @@ -60,6 +60,7 @@ * will cause credits to be added before protocol negotiation. */ unsigned int rds_ib_sysctl_flow_control = 0; +unsigned int rds_ib_sysctl_odp_support; static struct ctl_table rds_ib_sysctl_table[] = { { @@ -103,6 +104,13 @@ .mode = 0644, .proc_handler = proc_dointvec, }, + { + .procname = "odp_support", + .data = &rds_ib_sysctl_odp_support, + .maxlen = sizeof(rds_ib_sysctl_odp_support), + .mode = 0444, + .proc_handler = proc_dointvec, + }, { } };