On Fri, Mar 10, 2023 at 12:08:29AM +0900, Leesoo Ahn wrote: > > > On 23. 3. 9. 22:40, Simon Horman wrote: > > 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 > > Thank you for the review. > > The function must be called for only XDP_TX or XDP_REDIRECT cases. > So using a static key doesn't look good and the commit message is not clear > for 'why' as well. > I think that's why you suggested for using 'static key' by the latter > reason. Yes, my suggestion was based on the performance optimisation aspect of your patch. > I will edit the message and post v2 soon. Thanks