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

From: Christophe Leroy
Date: Sun Sep 06 2020 - 14:52:08 EST




Le 06/09/2020 à 20:38, Pavel Machek a écrit :
On Sun 2020-09-06 20:35:38, Christophe Leroy wrote:
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:

Oops. That was not on an 8xx but on an 8321 running at 333MHz, sorry.


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

Actually... that does not seem like a huge deal. read(/dev/zero) is
not that common operation.

That's 14% more. It is not negligeable.

I think I need to measure the /dev/zero read standalone. I guess the write to /dev/null flatters the result.


Are you getting similar speedups on normal hardware?


Do you regard powerpc embedded devices as abnormal ?
AFAIK the 832x is embedded in millions of ADSL boxes.
What processor do you have in mind as normal hardware ?

Christophe