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

Christophe Leroy
2020-09-06T18:47:24Z

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@csgroup.eu>
>>>>>> Signed-off-by: Christoph Hellwig <hch@lst.de>
>>>>>
>>>>> Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
>>>>
>>>> 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