[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-1.7?] the calculation of bytes_xfer in qemu_
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH for-1.7?] the calculation of bytes_xfer in qemu_put_buffer() is wrong |
Date: |
Wed, 20 Nov 2013 11:37:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 20/11/2013 06:28, Wangting (Kathy) ha scritto:
> Hi Paolo and Stefan,
>
> I am really sorry for my email before that I didn't say clearly about
> the bug fix.
>
> f->bytes_xfer means the number of bytes which is send from source to
> destination during the migration. It is limited by the f->xfer_limit
> which is converted from bandwidth. That means if bytes_xfer is larger
> than the limit, the current iteration will not do block and memory
> migration util the next iteration.
>
> But in function qemu_put_buffer, the statistics is wrong. The size of
> block migration is 1MB for each block, but the buffer size for
> sending is IO_BUF_SIZE(32768bytes). When it need to be send, 1MB
> block will be divided into small trunks, so f->bytes_xfer should be
> increased by the size of the small trunks every time which is
> actually send, in function qemu_put_buffer it should be the variable
> "l".
>
> Otherwise, f->bytes_xfer will be increased by (small trunks number *
> 1MB) while sending 1MB block, it is much larger than the size which
> is actually send, and it will soon be reached to the size of
> f->xfer_limit, so the current iteration will send less data blocks
> than expected.
>
> If you have any questions, please let me know, thank you very much.
Thank you very much. Juan, I guess you need to prepare another pull
request.
Paolo