Skip to content

Commit 3ac14b9

Browse files
GuangguanWangdavem330
authored andcommitted
net/smc: set rmb's SG_MAX_SINGLE_ALLOC limitation only when CONFIG_ARCH_NO_SG_CHAIN is defined
SG_MAX_SINGLE_ALLOC is used to limit maximum number of entries that will be allocated in one piece of scatterlist. When the entries of scatterlist exceeds SG_MAX_SINGLE_ALLOC, sg chain will be used. From commit 7c703e5 ("arch: switch the default on ARCH_HAS_SG_CHAIN"), we can know that the macro CONFIG_ARCH_NO_SG_CHAIN is used to identify whether sg chain is supported. So, SMC-R's rmb buffer should be limited by SG_MAX_SINGLE_ALLOC only when the macro CONFIG_ARCH_NO_SG_CHAIN is defined. Fixes: a3fe3d0 ("net/smc: introduce sg-logic for RMBs") Signed-off-by: Guangguan Wang <guangguan.wang@linux.alibaba.com> Co-developed-by: Wen Gu <guwen@linux.alibaba.com> Signed-off-by: Wen Gu <guwen@linux.alibaba.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent b5c0898 commit 3ac14b9

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

net/smc/smc_core.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,7 +2015,6 @@ int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini)
20152015
*/
20162016
static u8 smc_compress_bufsize(int size, bool is_smcd, bool is_rmb)
20172017
{
2018-
const unsigned int max_scat = SG_MAX_SINGLE_ALLOC * PAGE_SIZE;
20192018
u8 compressed;
20202019

20212020
if (size <= SMC_BUF_MIN_SIZE)
@@ -2025,9 +2024,11 @@ static u8 smc_compress_bufsize(int size, bool is_smcd, bool is_rmb)
20252024
compressed = min_t(u8, ilog2(size) + 1,
20262025
is_smcd ? SMCD_DMBE_SIZES : SMCR_RMBE_SIZES);
20272026

2027+
#ifdef CONFIG_ARCH_NO_SG_CHAIN
20282028
if (!is_smcd && is_rmb)
20292029
/* RMBs are backed by & limited to max size of scatterlists */
2030-
compressed = min_t(u8, compressed, ilog2(max_scat >> 14));
2030+
compressed = min_t(u8, compressed, ilog2((SG_MAX_SINGLE_ALLOC * PAGE_SIZE) >> 14));
2031+
#endif
20312032

20322033
return compressed;
20332034
}

0 commit comments

Comments
 (0)