On 2019-05-02 22:40, Jeff Kirsher wrote:
On Thu, 2019-05-02 at 22:29 +0200, Björn Töpel wrote:
On 2019-05-02 16:47, Daniel Borkmann wrote:
On 04/29/2019 09:16 PM, Jeff Kirsher wrote:
From: Björn Töpel <bjorn.to...@intel.com>

GCC will generate jump tables for switch-statements with more than 5
case statements. An entry into the jump table is an indirect call,
which means that for CONFIG_RETPOLINE builds, this is rather
expensive.

This commit replaces the switch-statement that acts on the XDP
program
result with an if-clause.

The if-clause was also refactored into a common function that can be
used by AF_XDP zero-copy and non-zero-copy code.

Isn't it fixed upstream by now already (also in gcc)?

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ce02ef06fcf7a399a6276adb83f37373d10cbbe1
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a9d57ef15cbe327fe54416dd194ee0ea66ae53a4


Hmm, given that Daniel's work is upstream, this patch doesn't really
make sense any more. OTOH it can stay in the series, and be cleaned up
later.

I'll leave it for you to decide, Jeff!

I am already making revisions to the series due to another patch, so if
these changes are no longer needed to improve performance in RETPOLINE
builds, then lets drop it.

Björn, can you confirm that with or without these changes, XDP performance
stays the same for RETPOLINE builds?


Confirmed (on i40e using xdp1 and xdpsock samples); Same performance
with/without this patch.

IOW, please drop this from your next spin.


Thanks,
Björn

Reply via email to