On Tue, Jan 28, 2025 at 05:37:39PM +0800, Oliver Sang wrote: > > Just to make sure it's not a geniune change of logics somewhere, > > could you compare d000e073ca2a, 893598979838 and d000e073ca2a with the > > delta below? That delta provably is an equivalent transformation - all > > exits from do_pollfd() go through the return in the end, so that just > > shifts the last assignment in there into the caller. > > the 'd000e073ca2a with the delta below' has just very similar score as > d000e073ca2a as below. Not a change of logics, then... AFAICS, the only differences in code generation here are different spills and conditional fput() not taken out of line. I'm somewhat surprised by the amount of slowdowns, TBH... Is there any chance to get per-insn profiles for those? How much time is spent in each insn of do_poll()/do_pollfd()?