On Thu, Aug 06, 2020 at 12:51:15PM -0700, Sagi Grimberg wrote: > > > I reviewed this patch and didn't find any justification for performance > > claim, can you please provide us numbers before/after so we will be able > > to decide based on reliable data? It will help us to review our drivers > > and improve them even more. > > I don't see any reason to find evidence in justification here. It's a > fastpath call, which is unlikely to fail, and these macros are > considered common practice. > > There is no reason to make Max to go and quantify a micro-optimization. Unfortunately Max didn't try to see if these likely/unlikely macros change something, but I did. Simple objdump -d before and after shows that GCC 9 generates same ISERT code before and after this patch. It is expected and there are a lot of reasons for that, but all of them can be reduced to two: * First, GCC is awesome in building profiled code with right predictions for standard flows. * Second, likely/unlikely is intended to be used when input/output is random from GCC point of view. So as a summary, there is no optimization here, just misuse of unlikely macro. BTW, old GCCs behave the same and kernel full of wrong copy/paste. Thanks