• Kai Shen's avatar
    net/smc: Use percpu ref for wr tx reference · 79a22238
    Kai Shen authored
    The refcount wr_tx_refcnt may cause cache thrashing problems among
    cores and we can use percpu ref to mitigate this issue here. We
    gain some performance improvement with percpu ref here on our
    customized smc-r verion. Applying cache alignment may also mitigate
    this problem but it seem more reasonable to use percpu ref here.
    We can also replace wr_reg_refcnt with one percpu reference like
    wr_tx_refcnt.
    
    redis-benchmark on smc-r with atomic wr_tx_refcnt:
    SET: 525707.06 requests per second, p50=0.087 msec
    GET: 554877.38 requests per second, p50=0.087 msec
    
    redis-benchmark on the percpu_ref version:
    SET: 540482.06 requests per second, p50=0.087 msec
    GET: 570711.12 requests per second, p50=0.079 msec
    
    Cases are like "redis-benchmark -h x.x.x.x -q -t set,get -P 1 -n
    5000000 -c 50 -d 10 --threads 4".
    Signed-off-by: default avatarKai Shen <KaiShen@linux.alibaba.com>
    Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    79a22238
smc_wr.h 4 KB