On 08/17/2016 12:35 AM, Marcelo Ricardo Leitner wrote:
Because otherwise when crc computation is still needed it's way more
expensive than on a linear buffer to the point that it affects
performance.
It's so expensive that netperf test gives a perf output as below:
Overhead Shared Object Symbol
69,44% [kernel] [k] gf2_matrix_square
2,84% [kernel] [k] crc32_generic_combine.part.0
2,78% [kernel] [k] _raw_spin_lock_bh
What kernel is this, seems not net kernel?
$ git grep -n gf2_matrix_square
$ git grep -n crc32_generic_combine
$
Maybe RHEL? Did you consider backporting 6d514b4e7737 et al?
And performance goes from 2Gbit/s to 0.5Gbit/s on this test. Doing the
linearization before checksumming is enough to restore it.
Fixes: 3acb50c18d8d ("sctp: delay as much as possible skb_linearize")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>