[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160208201234.8569.qmail@ns.horizon.com>
Date: 8 Feb 2016 15:12:34 -0500
From: "George Spelvin" <linux@...izon.com>
To: David.Laight@...LAB.COM, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org, tom@...bertland.com
Cc: mingo@...nel.org
Subject: Re: [PATCH v3 net-next] net: Implement fast csum_partial for x86_64
David Laight wrote:
> I'd need convincing that unrolling the loop like that gives any significant gain.
> You have a dependency chain on the carry flag so have delays between the 'adcq'
> instructions (these may be more significant than the memory reads from l1 cache).
If the carry chain is a bottleneck, on Broadwell+ (feature flag
X86_FEATURE_ADX), there are the ADCX and ADOX instructions, which use
separate flag bits for their carry chains and so can be interleaved.
I don't have such a machine to test on, but if someone who does
would like to do a little benchmarking, that would be an interesting
data point.
Unfortunately, that means yet another version of the main loop,
but if there's a significant benefit...
Powered by blists - more mailing lists