]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "RDS: Make message size limit compliant with spec"
authorAvinash Repaka <avinash.repaka@oracle.com>
Tue, 14 Feb 2017 03:53:13 +0000 (19:53 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 17 Feb 2017 04:36:56 +0000 (20:36 -0800)
This change *partially* reverts commit
3a0891b9a49e42d05519a2f8b33c86267eb63d35

This partial revert is needed due to regression with some RDS
applications. It reverts RDS message size limit changes but retains the
QOS related changes in the data send path.

Orabug: 25472193

Tested-by: Efrain Galaviz <efrain.galaviz@oracle.com>
Signed-off-by: Avinash Repaka <avinash.repaka@oracle.com>
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
net/rds/rdma.c
net/rds/rds.h
net/rds/send.c

index 9fe3bc342ef58573f1ccf336ef65f11fa9ec18cd..37b99465ab77bea19ade0a1ad35adffad69a873a 100644 (file)
@@ -39,6 +39,7 @@
 /*
  * XXX
  *  - build with sparse
+ *  - should we limit the size of a mr region?  let transport return failure?
  *  - should we detect duplicate keys on a socket?  hmm.
  *  - an rdma is an mlock, apply rlimit?
  */
@@ -199,15 +200,6 @@ static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args,
                goto out;
        }
 
-       /*
-        * we restrict the size of mr irrespective of underlying transport
-        * To account for unaligned mr regions, we subtract one from nr_pages
-        */
-       if ((nr_pages - 1) > (RDS_MAX_MSG_SIZE >> PAGE_SHIFT)) {
-               ret = -EMSGSIZE;
-               goto out;
-       }
-
        rdsdebug("RDS: get_mr addr %llx len %llu nr_pages %u\n",
                args->vec.addr, args->vec.bytes, nr_pages);
 
index 4f1012c893633ec815569a5ad7ac22844e5a2c67..abfa291c0296c6dc91f4d63df9c957aa63625c51 100644 (file)
@@ -99,9 +99,6 @@ enum {
 #define RDS_FRAG_SIZE  ((unsigned int)(1 << RDS_FRAG_SHIFT))
 #define RDS_MAX_FRAG_SIZE      SZ_16K
 
-/* Used to limit both RDMA and non-RDMA RDS message to 1MB */
-#define RDS_MAX_MSG_SIZE       ((unsigned int)(1 << 20))
-
 #define RDS_CONG_MAP_BYTES     (65536 / 8)
 #define RDS_CONG_PAGE_SIZE     (1UL << 12)
 #define RDS_CONG_MAP_LONGS     (RDS_CONG_MAP_BYTES / sizeof(unsigned long))
index cb90d3beda14f7a68e38261f10827d49bdf4a79d..dcc17db88272056ce3dedd1894d5a437d747a300 100644 (file)
@@ -1245,11 +1245,6 @@ int rds_sendmsg(struct socket *sock, struct msghdr *msg, size_t payload_len)
        if (ret)
                goto out;
 
-       if (max_t(size_t, payload_len, rdma_payload_len) > RDS_MAX_MSG_SIZE) {
-               ret = -EMSGSIZE;
-               goto out;
-       }
-
        if (payload_len > rds_sk_sndbuf(rs)) {
                ret = -EMSGSIZE;
                goto out;