On Wed, Sep 07, 2016 at 03:42:22PM +0300, Saeed Mahameed wrote: > From: Tariq Toukan <tar...@mellanox.com> > > To improve the memory consumption scheme, we omit the flow that > demands and splits high-order pages in Striding RQ, and stay > with a single Striding RQ flow that uses order-0 pages. > > Moving to fragmented memory allows the use of larger MPWQEs, > which reduces the number of UMR posts and filler CQEs. > > Moving to a single flow allows several optimizations that improve > performance, especially in production servers where we would > anyway fallback to order-0 allocations: > - inline functions that were called via function pointers. > - improve the UMR post process. > > This patch alone is expected to give a slight performance reduction. > However, the new memory scheme gives the possibility to use a page-cache > of a fair size, that doesn't inflate the memory footprint, which will > dramatically fix the reduction and even give a huge gain. > > We ran pktgen single-stream benchmarks, with iptables-raw-drop: > > Single stride, 64 bytes: > * 4,739,057 - baseline > * 4,749,550 - this patch > no reduction > > Larger packets, no page cross, 1024 bytes: > * 3,982,361 - baseline > * 3,845,682 - this patch > 3.5% reduction > > Larger packets, every 3rd packet crosses a page, 1500 bytes: > * 3,731,189 - baseline > * 3,579,414 - this patch > 4% reduction
imo it's not a realistic use case, but would be good to mention that patch 3 brings performance back for this use case anyway.