making x86 clear_user not suck, was Re: [PATCH] tmpfs: fix regressions from wider use of ZERO_PAGE

From: Christoph Hellwig
Date: Tue Apr 12 2022 - 00:58:10 EST


On Fri, Apr 08, 2022 at 11:08:29PM -0700, Hugh Dickins wrote:
> >
> > Either way I'd rather do this optimization in iov_iter_zero rather
> > than hiding it in tmpfs.
>
> Let's see what others say. I think we would all prefer clear_user() to be
> enhanced, and hack around it neither here in tmpfs nor in iov_iter_zero().
> But that careful work won't get done by magic, nor by me.

I agree with that.

> And iov_iter_zero() has to deal with a wider range of possibilities,
> when pulling in cache lines of ZERO_PAGE(0) will be less advantageous,
> than in tmpfs doing a large dd - the case I'm aiming not to regress here
> (tmpfs has been copying ZERO_PAGE(0) like this for years).

Maybe. OTOH I'd hate to have iov_iter_zero not used much because it
sucks too much.

So how can we entice someone with the right knowledge to implement a
decent clear_user for x86?