mbox series

[net,v2,0/2] fix unexpected SMC_CLC_DECL_ERR_REGRMB error

Message ID 1646226968-2315-1-git-send-email-alibuda@linux.alibaba.com (mailing list archive)
Headers show
Series fix unexpected SMC_CLC_DECL_ERR_REGRMB error | expand

Message

D. Wythe March 2, 2022, 1:16 p.m. UTC
From: "D. Wythe" <alibuda@linux.alibaba.com>

We can easily trigger the SMC_CLC_DECL_ERR_REGRMB exception within
following script:

server: smc_run nginx
client: smc_run  ./wrk -c 2000 -t 8 -d 20 http://smc-server

And we can clearly see that this error is also divided into two types:

1. 0x09990003
2. 0x05000000/0x09990003

Which has the same root causes, but the immediate causes vary.

The root cause of this issues is that remove connections from link group
is not synchronous with add/delete rtoken entry,  which means that even
the number of connections is less that SMC_RMBS_PER_LGR_MAX, it does not
mean that the connection can register rtoken successfully later. In
other words, the rtoken entry may released, This will cause an
unexpected SMC_CLC_DECL_ERR_REGRMB to be reported, and then this SMC 
connections have to fallback to TCP.

This patch set handles two types of SMC_CLC_DECL_ERR_REGRMB exceptions
from different perspectives.

Patch 1: fix the 0x05000000/0x09990003 error.
Patch 2: fix the 0x09990003 error.

After those patches, there is no SMC_CLC_DECL_ERR_REGRMB exceptions in my
test case any more.

D. Wythe (2):
  net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by
    client
  net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server

 net/smc/smc_core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)