在 2022/5/6 下午3:58, Wen Gu 写道:
Thanks for your analysis.
1) Is the patch more appropriate to 'net' ?
That's my mistake.
2) The refcnt of smc link will be
- initilized to 1 in smcr_link_init();
- increased when connections assigned to the link;
eg. smc_conn_create() or smc_switch_link_and_count();
- decreased when connections removed from the link or link is cleared,
eg. smc_conn_free(), smc_switch_link_and_count(), smcr_link_clear().
I see the theoretical race between smcr_link_hold() and
smcr_link_put(). Have you encountered this
issue in actual test, such as triggering WARN of refcount_inc()?
Because IMHO the race window is small
(link state will turned to SMC_LNK_UNUSED after smcr_link_put() and
connections will not be assigned to it).
Got your point, this race may happened with our another radical change.
At present, this patch may not be needed.
Thanks.
D. Wythe