Re: [PATCH] x86: Optimize tail handling for copy_user

From: Linus Torvalds
Date: Mon Jul 28 2008 - 11:52:40 EST




On Mon, 28 Jul 2008, Vitaly Mayatskikh wrote:
>
> Reduce protection faults count in copy_user_handle_tail routine by
> limiting clear length to the end of page as was suggested by Linus.

No, you did it wrong.

The page _clearing_ has to be to the end of the copy. Yes, in practice, I
don't think the kernel actually very often does "copy_from_user()" calls
that are page crossers in the kernel, but they do happen.

It's the _copy_ part that needn't cross pages, because we know that
something faulted, and we _know_ that it wasn't the clearing.

Really: the clearing should be just a "memset()" with no limitations. It
can never fault without it being a serious bug, and then we should not fix
it up, but we should oops!

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/