From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E1159C282C4 for ; Tue, 5 Feb 2019 00:05:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AE50F2083B for ; Tue, 5 Feb 2019 00:05:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="woyd+rHy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727737AbfBEAFI (ORCPT ); Mon, 4 Feb 2019 19:05:08 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:34078 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727655AbfBEAFD (ORCPT ); Mon, 4 Feb 2019 19:05:03 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x1503Qhh139593; Tue, 5 Feb 2019 00:05:01 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; s=corp-2018-07-02; bh=Svww3RCBjLp4/gVfTmlh7PlTa6eUJzVN4aohIgPBYCw=; b=woyd+rHyYbvZayDEpbv5LwQKrMy8YpKSFHNtfwecsnkqZXy32iwmPm9tYdD2UlD4V+1l glHjPTem13Eu383l2pKP8puGsoyIFE9QQ++gWJ2hyrbI+ILvSjSpVGWQNrp9YYzgbHCn 1n23V9X+Ol8t5w2oKb8BozzkEwli7YVy/Dk2rdaM5Nc6gfR1RRU1OfRO0jMNEd9x3x4S Uk6skyCxxxnDp2j9m59y5lQQMTmMai38RiZuQERc4tgBR0vCDMbDA7sR3znuKVXzIZ5e gAxem6DfM+Ch/EqqFZQqgzfCyyjowY78nTxnEoYAgU7S04PEkAiwXS5pXObgv9kHyLZo 7w== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2130.oracle.com with ESMTP id 2qd9ar88jy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 05 Feb 2019 00:05:00 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x15050tV014425 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 Feb 2019 00:05:00 GMT Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x15050Ge010784; Tue, 5 Feb 2019 00:05:00 GMT Received: from aserv0022.oracle.com (/10.11.38.116) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 05 Feb 2019 00:04:59 +0000 From: Santosh Shilimkar To: netdev@vger.kernel.org, davem@davemloft.net Cc: yanjun.zhu@oracle.com, santosh.shilimkar@oracle.com Subject: [net-next][PATCH 4/5] rds: add transport specific tos_map hook Date: Mon, 4 Feb 2019 16:04:48 -0800 Message-Id: <1549325089-16572-5-git-send-email-santosh.shilimkar@oracle.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1549325089-16572-1-git-send-email-santosh.shilimkar@oracle.com> References: <1549325089-16572-1-git-send-email-santosh.shilimkar@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9157 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=969 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902040178 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RDMA transport maps user tos to underline virtual lanes(VL) for IB or DSCP values. RDMA CM transport abstract thats for RDS. TCP transport makes use of default priority 0 and maps all user tos values to it. Reviewed-by: Sowmini Varadhan Signed-off-by: Santosh Shilimkar [yanjun.zhu@oracle.com: Adapted original patch with ipv6 changes] Signed-off-by: Zhu Yanjun --- net/rds/af_rds.c | 10 ++++++---- net/rds/ib.c | 10 ++++++++++ net/rds/rds.h | 1 + net/rds/tcp.c | 7 +++++++ 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c index 9045158..d6cc97f 100644 --- a/net/rds/af_rds.c +++ b/net/rds/af_rds.c @@ -255,16 +255,18 @@ static __poll_t rds_poll(struct file *file, struct socket *sock, static int rds_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) { struct rds_sock *rs = rds_sk_to_rs(sock->sk); - rds_tos_t tos; + rds_tos_t utos, tos = 0; switch (cmd) { case SIOCRDSSETTOS: - if (get_user(tos, (rds_tos_t __user *)arg)) + if (get_user(utos, (rds_tos_t __user *)arg)) return -EFAULT; if (rs->rs_transport && - rs->rs_transport->t_type == RDS_TRANS_TCP) - tos = 0; + rs->rs_transport->get_tos_map) + tos = rs->rs_transport->get_tos_map(utos); + else + return -ENOIOCTLCMD; spin_lock_bh(&rds_sock_lock); if (rs->rs_tos || rs->rs_conn) { diff --git a/net/rds/ib.c b/net/rds/ib.c index 21b6588..2da9b75 100644 --- a/net/rds/ib.c +++ b/net/rds/ib.c @@ -515,6 +515,15 @@ void rds_ib_exit(void) rds_ib_mr_exit(); } +static u8 rds_ib_get_tos_map(u8 tos) +{ + /* 1:1 user to transport map for RDMA transport. + * In future, if custom map is desired, hook can export + * user configurable map. + */ + return tos; +} + struct rds_transport rds_ib_transport = { .laddr_check = rds_ib_laddr_check, .xmit_path_complete = rds_ib_xmit_path_complete, @@ -537,6 +546,7 @@ struct rds_transport rds_ib_transport = { .sync_mr = rds_ib_sync_mr, .free_mr = rds_ib_free_mr, .flush_mrs = rds_ib_flush_mrs, + .get_tos_map = rds_ib_get_tos_map, .t_owner = THIS_MODULE, .t_name = "infiniband", .t_unloading = rds_ib_is_unloading, diff --git a/net/rds/rds.h b/net/rds/rds.h index 7e52b92..0d8f67c 100644 --- a/net/rds/rds.h +++ b/net/rds/rds.h @@ -574,6 +574,7 @@ struct rds_transport { void (*free_mr)(void *trans_private, int invalidate); void (*flush_mrs)(void); bool (*t_unloading)(struct rds_connection *conn); + u8 (*get_tos_map)(u8 tos); }; /* Bind hash table key length. It is the sum of the size of a struct diff --git a/net/rds/tcp.c b/net/rds/tcp.c index eb68519..fd26941 100644 --- a/net/rds/tcp.c +++ b/net/rds/tcp.c @@ -453,6 +453,12 @@ static void rds_tcp_destroy_conns(void) static void rds_tcp_exit(void); +static u8 rds_tcp_get_tos_map(u8 tos) +{ + /* all user tos mapped to default 0 for TCP transport */ + return 0; +} + struct rds_transport rds_tcp_transport = { .laddr_check = rds_tcp_laddr_check, .xmit_path_prepare = rds_tcp_xmit_path_prepare, @@ -467,6 +473,7 @@ struct rds_transport rds_tcp_transport = { .inc_free = rds_tcp_inc_free, .stats_info_copy = rds_tcp_stats_info_copy, .exit = rds_tcp_exit, + .get_tos_map = rds_tcp_get_tos_map, .t_owner = THIS_MODULE, .t_name = "tcp", .t_type = RDS_TRANS_TCP, -- 1.9.1