On Sun, May 22, 2022 at 11:23:43AM +0100, Matthew Wilcox wrote: > On Sun, May 22, 2022 at 09:45:09AM +0200, Christoph Hellwig wrote: > > On Sat, May 21, 2022 at 04:14:07PM -0600, Jens Axboe wrote: > > > Then we're almost on par, and it looks like we just need to special case > > > iov_iter_advance() for the nr_segs == 1 as well to be on par. This is on > > > top of your patch as well, fwiw. > > > > > > It might make sense to special case the single segment cases, for both > > > setup, iteration, and advancing. With that, I think we'll be where we > > > want to be, and there will be no discernable difference between the iter > > > paths and the old style paths. > > > > A while ago willy posted patches to support a new ITER type for direct > > userspace pointer without iov. It might be worth looking through the > > archives and test that. > > https://lore.kernel.org/linux-fsdevel/Yba+YSF6mkM%2FGYlK@xxxxxxxxxxxxxxxxxxxx/ Direct kernel pointer, surely? And from a quick look, iov_iter_is_kaddr() checks for the wrong value...