Re: [PATCH net-next] net/smc: increase SMC_WR_BUF_CNT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 25, 2024 at 09:46:19AM +0200, Wenjia Zhang wrote:
> From: Halil Pasic <pasic@xxxxxxxxxxxxx>
> 
> The current value of SMC_WR_BUF_CNT is 16 which leads to heavy
> contention on the wr_tx_wait workqueue of the SMC-R linkgroup and its
> spinlock when many connections are  competing for the buffer. Currently
> up to 256 connections per linkgroup are supported.
> 
> To make things worse when finally a buffer becomes available and
> smc_wr_tx_put_slot() signals the linkgroup's wr_tx_wait wq, because
> WQ_FLAG_EXCLUSIVE is not used all the waiters get woken up, most of the
> time a single one can proceed, and the rest is contending on the
> spinlock of the wq to go to sleep again.
> 
> For some reason include/linux/wait.h does not offer a top level wrapper
> macro for wait_event with interruptible, exclusive and timeout. I did
> not spend too many cycles on thinking if that is even a combination that
> makes sense (on the quick I don't see why not) and conversely I
> refrained from making an attempt to accomplish the interruptible,
> exclusive and timeout combo by using the abstraction-wise lower
> level __wait_event interface.
> 
> To alleviate the tx performance bottleneck and the CPU overhead due to
> the spinlock contention, let us increase SMC_WR_BUF_CNT to 256.
> 
> Signed-off-by: Halil Pasic <pasic@xxxxxxxxxxxxx>
> Reported-by: Nils Hoppmann <niho@xxxxxxxxxxxxx>
> Reviewed-by: Wenjia Zhang <wenjia@xxxxxxxxxxxxx>
> Signed-off-by: Wenjia Zhang <wenjia@xxxxxxxxxxxxx>

Reviewed-by: Simon Horman <horms@xxxxxxxxxx>





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux