qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 4/4] libqos/ahci: Swap memread/write with buf


From: John Snow
Subject: Re: [Qemu-devel] [PATCH v2 4/4] libqos/ahci: Swap memread/write with bufread/write
Date: Fri, 01 May 2015 20:13:38 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0



On 05/01/2015 04:48 PM, Paolo Bonzini wrote:


On 01/05/2015 21:55, John Snow wrote:
Where it makes sense, use the new faster primitives.
For generally small reads/writes such as for the PRDT
and FIS packets, stick with the more wasteful but
easier to debug memread/memwrite.

For ahci-test;
With this patch:
real    0m4.802s
user    0m3.506s
sys     0m2.393s

Without this series:
real    0m14.171s
user    0m12.072s
sys     0m12.527s

The overhead of memread is 2, the overhead of base64 is 1.33, also
base64 should have a larger cost of computing each byte.  It doesn't add up.

Could it be simply that calling qtest_send (and hence
vsnprintf+qemu_chr_fe_write_all, neither of which are speed demons) once
per byte is hideously inefficient? :)

Paolo


I wrote a loop to batch the ascii-hex conversion instead of letting printf do it; then ran some more very, very scientific tests:

memset alone:
real    0m10.888s
user    0m9.303s
sys     0m9.146s

send-batching:
real    0m6.541s
user    0m5.027s
sys     0m4.941s

memset+batching+b64:
real    0m3.675s
user    0m2.582s
sys     0m1.718s

So it still seems as if the b64 batching is a strict improvement speed-wise. I'll send the non-b64 batching patch separately later, unless you have thoughts otherwise.

--js



reply via email to

[Prev in Thread] Current Thread [Next in Thread]