[Top][All Lists]

[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: Tue, 05 May 2015 11:48:52 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

On 05/05/2015 06:35 AM, Paolo Bonzini wrote:

On 02/05/2015 02:13, John Snow wrote:

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

real    0m6.541s
user    0m5.027s
sys    0m4.941s

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.

Ok, this is more similar to what I'd expect (3.6 * 6 / 4 = 5.4, I'm not
sure if you have the memset optimization in the send-batching test).

I did, yes. Hence the "very, very scientific" warning. I just pushed patches down my stack and tested with each new optimization.

Unoptimized is still ~14s.

Hex is obviously more debuggable compared to Base64 (unless you starred
in the Matrix movies), so I'm a bit undecided about this one.  Anyone
can break the tie?


I specifically left things that alter control flow using hex nibbles -- such as the FIS packets, PRD tables, and all other existing tests. I only use the b64 encoding for raw data patterns, which don't really need to be debugged. Either they match or they don't: any particular values are uninteresting.

Any future test can be switched to/from hex/b64 by just altering "mem{read,write}()" to "buf{read,write}()" as desired. I specifically opted not to alter *all* qtest IO for this very reason.

Does that help? :)

If you're not opposed to the rest of this series, I will send a v2 including the hex batching optimization.


reply via email to

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