Re: [PATCH net-next] net: stmmac: call stmmac_finalize_xdp_rx() on a condition

From: Simon Horman
Date: Thu Mar 09 2023 - 08:40:58 EST


On Thu, Mar 09, 2023 at 01:26:18AM +0900, Leesoo Ahn wrote:
> The current codebase calls the function no matter net device has XDP
> programs or not. So the finalize function is being called everytime when RX
> bottom-half in progress. It needs a few machine instructions for nothing
> in the case that XDP programs are not attached at all.
>
> Lets it call the function on a condition that if xdp_status variable has
> not zero value. That means XDP programs are attached to the net device
> and it should be finalized based on the variable.
>
> The following instructions show that it's better than calling the function
> unconditionally.
>
> 0.31 │6b8: ldr w0, [sp, #196]
> │ ┌──cbz w0, 6cc
> │ │ mov x1, x0
> │ │ mov x0, x27
> │ │→ bl stmmac_finalize_xdp_rx
> │6cc:└─→ldr x1, [sp, #176]
>
> with 'if (xdp_status)' statement, jump to '6cc' label if xdp_status has
> zero value.
>
> Signed-off-by: Leesoo Ahn <lsahn@xxxxxxxxxx>

Hi Leesoo,

I am curious to know if you considered going a step further and using
a static key.

Link: https://www.kernel.org/doc/html/latest/staging/static-keys.html