mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
Merge branch 'net-small-csum-optimizations'
Eric Dumazet says: ==================== net: small csum optimizations After recent x86 csum_partial() optimizations, we can more easily see in kernel profiles costs of add/adc operations that could be avoided, by feeding a non zero third argument to csum_partial() ==================== Link: https://lore.kernel.org/r/20211124202446.2917972-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
35bf8c86ee
@ -3485,7 +3485,11 @@ __skb_postpull_rcsum(struct sk_buff *skb, const void *start, unsigned int len,
|
||||
static inline void skb_postpull_rcsum(struct sk_buff *skb,
|
||||
const void *start, unsigned int len)
|
||||
{
|
||||
__skb_postpull_rcsum(skb, start, len, 0);
|
||||
if (skb->ip_summed == CHECKSUM_COMPLETE)
|
||||
skb->csum = ~csum_partial(start, len, ~skb->csum);
|
||||
else if (skb->ip_summed == CHECKSUM_PARTIAL &&
|
||||
skb_checksum_start_offset(skb) < 0)
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
}
|
||||
|
||||
static __always_inline void
|
||||
|
@ -173,8 +173,8 @@ static inline void skb_gro_postpull_rcsum(struct sk_buff *skb,
|
||||
const void *start, unsigned int len)
|
||||
{
|
||||
if (NAPI_GRO_CB(skb)->csum_valid)
|
||||
NAPI_GRO_CB(skb)->csum = csum_sub(NAPI_GRO_CB(skb)->csum,
|
||||
csum_partial(start, len, 0));
|
||||
NAPI_GRO_CB(skb)->csum = ~csum_partial(start, len,
|
||||
~NAPI_GRO_CB(skb)->csum);
|
||||
}
|
||||
|
||||
/* GRO checksum functions. These are logical equivalents of the normal
|
||||
|
Loading…
Reference in New Issue
Block a user