From: John Snow <jsnow@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: marc.mari.barcelo@gmail.com, afaerber@suse.de, stefanha@redhat.com
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 [thread overview]
Message-ID: <5548E664.4030903@redhat.com> (raw)
In-Reply-To: <55489D00.7050303@redhat.com>
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
>>
>> 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.
>
> 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?
>
> Paolo
>
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.
--js
next prev parent reply other threads:[~2015-05-05 15:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-01 19:55 [Qemu-devel] [PATCH v2 0/4] qtest: base64 r/w and faster memset John Snow
2015-05-01 19:55 ` [Qemu-devel] [PATCH v2 1/4] qtest: allow arbitrarily long sends John Snow
2015-05-01 19:55 ` [Qemu-devel] [PATCH v2 2/4] qtest: Add base64 encoded read/write John Snow
2015-05-01 19:55 ` [Qemu-devel] [PATCH v2 3/4] qtest: add memset to qtest protocol John Snow
2015-05-01 19:55 ` [Qemu-devel] [PATCH v2 4/4] libqos/ahci: Swap memread/write with bufread/write John Snow
2015-05-01 20:48 ` Paolo Bonzini
2015-05-01 21:04 ` John Snow
2015-05-02 0:13 ` John Snow
2015-05-05 10:35 ` Paolo Bonzini
2015-05-05 15:48 ` John Snow [this message]
2015-05-05 16:19 ` Paolo Bonzini
2015-05-05 16:26 ` John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5548E664.4030903@redhat.com \
--to=jsnow@redhat.com \
--cc=afaerber@suse.de \
--cc=marc.mari.barcelo@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.