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

From: Halil Pasic <[email-masked]>
Date: Mon, 4 Nov 2024 17:42:15 +0100

On Thu, 31 Oct 2024 13:30:17 +0100
Halil Pasic <[email-masked]> wrote:

> On Sat, 26 Oct 2024 07:58:39 +0800
> Dust Li <[email-masked]> wrote:
> 
> > >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.    
> > 
> > Hi,
> > 
> > Have you tested other values, such as 64? In our internal version, we
> > have used 64 for some time.  
> 
> Yes we have, but I'm not sure the data is still to be found. Let me do
> some digging.
> 

We did some digging and according to that data 64 is not likely to cut
it on the TX end for highly parallel request-response workload. But we
will measure some more these days just to be on the safe side.

> > 
> > Increasing this to 256 will require a 36K continuous physical memory
> > allocation in smc_wr_alloc_link_mem(). Based on my experience, this may
> > fail on servers that have been running for a long time and have
> > fragmented memory.  
> 
> Good point! It is possible that I did not give sufficient thought to
> this aspect.
> 

The failing allocation would lead to a fallback to TCP I believe. Which
I don't consider a catastrophic failure.

But let us put this patch on hold and see if we can come up with
something better.

Regards,
Halil