[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype |
Date: |
Sun, 10 Mar 2013 12:09:25 +0100 |
On Sun, Mar 10, 2013 at 11:38 AM, Dietmar Maurer <address@hidden> wrote:
>> > I can see the advantage to move the code out of qemu, but I want to
>> > avoid that overhead by all means. So are there any other ideas to avoid the
>> overhead of a socket based IPC?
>>
>> There are enough avenues to investigate better performance that I think the
>> solution is to just profile and optimize a little.
>
> I know that I can optimize, but I always thought it is better to avoid
> overhead
> it is possible. Socket based IPC involves copying large amount of data, and
> you
> cannot optimize that away.
I have attached the top of the perf -a -g profile for my RFC series.
Observations:
* Disk encryption is the biggest CPU hog (19%)
* QEMU memmove takes 4.64%, haven't figured out where it gets called from
* buffer_is_zero() takes 1.47%, that's less than cpuidle (system has 4 cores).
* Python and QEMU together only take 1.57% for
copy_user_enhanced_fast_string() (used for sendmsg/recvmsg)
Socket memcpy overhead is lower than the unidentified memmove() in QEMU.
The vma-writer.c code you posted has several memcpy(), I don't think
the socket memcpy makes up for a big percentage. Rather, lowering the
frequency of messages and employing pipelining will let the system get
more work done with less communication.
Stefan
report.txt
Description: Text document
- [Qemu-devel] [RFC 5/8] Add nbd server Python module, (continued)
- [Qemu-devel] [RFC 5/8] Add nbd server Python module, Stefan Hajnoczi, 2013/03/09
- [Qemu-devel] [RFC 6/8] Add VMA backup archive writer Python module, Stefan Hajnoczi, 2013/03/09
- [Qemu-devel] [RFC 7/8] Add vma-writer.py tool, Stefan Hajnoczi, 2013/03/09
- [Qemu-devel] [RFC 8/8] Add backup.py tool, Stefan Hajnoczi, 2013/03/09
- [Qemu-devel] [RFC 3/8] backup: write to BlockDriverState instead of BackupDumpFunc, Stefan Hajnoczi, 2013/03/09
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/10
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Stefan Hajnoczi, 2013/03/10
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/10
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Stefan Hajnoczi, 2013/03/10
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/11
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/11
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Stefan Hajnoczi, 2013/03/11
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/11
- Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Stefan Hajnoczi, 2013/03/11
Re: [Qemu-devel] [RFC 0/8] block: Live backup prototype, Dietmar Maurer, 2013/03/10