Re: [PATCH 02/11] mm: call import_iovec() instead of rw_copy_check_uvector() in process_vm_rw()

From: Al Viro
Date: Mon Sep 21 2020 - 11:29:48 EST


On Mon, Sep 21, 2020 at 03:21:35PM +0000, David Laight wrote:

> You really don't want to be looping through the array twice.

Profiles, please.

> I think the 'length' check can be optimised to do something like:
> for (...) {
> ssize_t len = (ssize_t)iov[seg].iov_len;
> ret += len;
> len_hi += (unsigned long)len >> 20;
> }
> if (len_hi) {
> /* Something potentially odd in the lengths.
> * Might just be a very long fragment.
> * Check the individial values. */
> Add the exiting loop here.
> }

Far too ugly to live.