[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141124101546.GE7996@ZenIV.linux.org.uk>
Date: Mon, 24 Nov 2014 10:15:46 +0000
From: Al Viro <viro@...IV.linux.org.uk>
To: Ben Hutchings <ben@...adent.org.uk>
Cc: David Miller <davem@...emloft.net>, torvalds@...ux-foundation.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
target-devel@...r.kernel.org, nab@...ux-iscsi.org,
hch@...radead.org
Subject: Re: [PATCH 08/17] {macvtap,tun}_get_user(): switch to iov_iter
On Mon, Nov 24, 2014 at 12:27:42AM +0000, Ben Hutchings wrote:
> > copylen = vnet_hdr.hdr_len ? vnet_hdr.hdr_len : GOODCOPY_LEN;
> > if (copylen > good_linear)
> > copylen = good_linear;
> > linear = copylen;
> > - if (iov_pages(iv, vnet_hdr_len + copylen, count)
> > - <= MAX_SKB_FRAGS)
> > + i = *from;
> > + iov_iter_advance(&i, copylen);
> > + if (iov_iter_npages(&i, INT_MAX) <= MAX_SKB_FRAGS)
>
> The maxpages argument should be MAX_SKB_FRAGS + 1 as we don't need the
> exact number.
In principle, that's true, but... Do we really care? It only buys you
anything if you have a monstrously fragmented iovec. And if you end up
spending too considerable amount of time in that loop in iov_iter_npages,
you are by definition on the slow path - it *will* fail, since we do not
even try to merge adjacent iovec segments. Never had...
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists