RE: [PATCH] /dev/zero: also implement ->read

From: David Laight
Date: Sun Sep 06 2020 - 16:52:48 EST


From: Christophe Leroy
> Sent: 06 September 2020 19:36
> Hi,
>
> Le 06/09/2020 à 20:21, Pavel Machek a écrit :
> > Hi!
> >
> >>>> Christophe reported a major speedup due to avoiding the iov_iter
> >>>> overhead, so just add this trivial function. Note that /dev/zero
> >>>> already implements both an iter and non-iter writes so this just
> >>>> makes it more symmetric.
> >>>>
> >>>> Christophe Leroy <christophe.leroy@xxxxxxxxxx>
> >>>> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> >>>
> >>> Tested-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
> >>
> >> Any idea what has happened to make the 'iter' version so bad?
> >
> > Exactly. Also it would be nice to note how the speedup was measured
> > and what the speedup is.
> >
>
> Was measured on an 8xx powerpc running at 132MHz with:
>
> dd if=/dev/zero of=/dev/null count=1M
>
> With the patch, dd displays a throughput of 113.5MB/s
> Without the patch it is 99.9MB/s

That in itself isn't a problem.
What was the throughput before any of these patches?

I just remember another thread about the same test running
a lot slower after one of the related changes.
While this speeds up read /dev/zero (which is uncommon)
if this is needed to get near the old performance then
the changes to the 'iter' code will affect real workloads.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)