Re: [lkp-robot] [fs] 3deb642f0d: will-it-scale.per_process_ops -8.8% regression

From: Al Viro
Date: Fri Jun 22 2018 - 08:17:33 EST


On Fri, Jun 22, 2018 at 02:07:39PM +0200, Christoph Hellwig wrote:
> On Fri, Jun 22, 2018 at 12:56:13PM +0100, Al Viro wrote:
> > So mark that in ->f_mode - I strongly suspect that
> > sk_can_busy_loop(sock->sk) can't change while an opened file is there.
> > And lift that (conditional on new FMODE_BUSY_LOOP) into do_poll()
> > and do_select() - we *already* have bits of pieces of that logics in
> > there and that way they'd at least be gathered in one place.
>
> The problem is that call to sk_busy_loop(), which is going to be indirect
> no matter what.

if ->f_poll_head is NULL {
use ->poll
} else {
if can ll_poll (checked in ->f_mode)
call ->ll_poll(), if it returns what we want - we are done
add to ->f_poll_head
call ->poll_mask()
}