arm64: Implement optimised checksum routine

Bug #1882336 reported by Fred Kimmy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
kunpeng920
Fix Released
Undecided
Unassigned
Ubuntu-18.04-hwe
Won't Fix
Undecided
Unassigned
Ubuntu-20.04
Won't Fix
Undecided
Unassigned
Ubuntu-20.04-hwe
Fix Released
Undecided
Unassigned
Upstream-kernel
Fix Released
Undecided
Unassigned

Bug Description

[Bug Description]
Apparently there exist certain workloads which rely heavily on software
checksumming, for which the generic do_csum() implementation becomes a
significant bottleneck. Therefore let's give arm64 its own optimised
version - for ease of maintenance this foregoes assembly or intrisics,
and is thus not actually arm64-specific, but does rely heavily on C
idioms that translate well to the A64 ISA and the typical load/store
capabilities of most ARMv8 CPU cores.

The resulting increase in checksum throughput scales nicely with buffer
size, tending towards 4x for a small in-order core (Cortex-A53), and up
to 6x or more for an aggressive big core (Ampere eMAG).

[Steps to Reproduce]
  1)
  2)
  3)

[Actual Results]

[Expected Results]

[Reproducibility]

[Additional information]
  (Firmware version, kernel version, affected hardware, etc. if required):

[Resolution]
v5.6 5777eaed566a arm64: Implement optimised checksum routine

Revision history for this message
Andrew Cloke (andrew-cloke) wrote :

This patch does not meet the criteria for SRU.

Ike Panhc (ikepanhc)
description: updated
Revision history for this message
Taihsiang Ho (tai271828) wrote :

The commit is in focal hwe-5.8 kernel tree. tag: Ubuntu-hwe-5.8-5.8.0-25.26_20.04.1

Changed in kunpeng920:
status: New → Fix Committed
Revision history for this message
Ike Panhc (ikepanhc) wrote :

Patch hits 20.04.2 HWE kernel.

Changed in kunpeng920:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.