Patchwork scp during migration with vhost fails

login
register
mail settings
Submitter Michael S. Tsirkin
Date Feb. 20, 2013, 4:48 p.m.
Message ID <20130220164859.GA26265@redhat.com>
Download mbox | patch
Permalink /patch/222120/
State New
Headers show

Comments

Michael S. Tsirkin - Feb. 20, 2013, 4:48 p.m.
On Wed, Feb 20, 2013 at 04:23:52PM +0200, Michael S. Tsirkin wrote:
> On Fri, Feb 01, 2013 at 06:03:32PM +0800, Jason Wang wrote:
> > Hello all:
> > 
> > During testing, I find doing scp during migration with vhost fails with 
> > warnings in guest like:
> > 
> > Corrupted MAC on input.
> > Disconnecting: Packet corrupt.
> > lost connection
> > 
> > Here's the bisect result:
> > 
> > Commit a01672d3968cf91208666d371784110bfde9d4f8 kvm: convert to MemoryListener 
> > API is the last commit that works well.
> > 
> > With commit 04097f7c5957273c578f72b9bd603ba6b1d69e33 vhost: convert to 
> > MemoryListener API, guest network is unusable with warning of "bad gso type"
> > 
> > With commit d743c382861eaa1e13f503b05aba5a382a7e7f7c vhost: fix incorrect 
> > userspace address, guest network is available, but scp during migration may 
> > fail.
> > 
> > Looks like the issue is related to memory api, any thoughts?
> > 
> > Thanks
> 
> Tried to reproduce this for a while without success.
> Which command line was used?
> 
> 
> -- 
> MST

Could be we are not syncing all that we should?
Does the following hack make the problem go away?
Jason Wang - Feb. 21, 2013, 9:57 a.m.
On 02/21/2013 12:48 AM, Michael S. Tsirkin wrote:
> On Wed, Feb 20, 2013 at 04:23:52PM +0200, Michael S. Tsirkin wrote:
>> On Fri, Feb 01, 2013 at 06:03:32PM +0800, Jason Wang wrote:
>>> Hello all:
>>>
>>> During testing, I find doing scp during migration with vhost fails with 
>>> warnings in guest like:
>>>
>>> Corrupted MAC on input.
>>> Disconnecting: Packet corrupt.
>>> lost connection
>>>
>>> Here's the bisect result:
>>>
>>> Commit a01672d3968cf91208666d371784110bfde9d4f8 kvm: convert to MemoryListener 
>>> API is the last commit that works well.
>>>
>>> With commit 04097f7c5957273c578f72b9bd603ba6b1d69e33 vhost: convert to 
>>> MemoryListener API, guest network is unusable with warning of "bad gso type"
>>>
>>> With commit d743c382861eaa1e13f503b05aba5a382a7e7f7c vhost: fix incorrect 
>>> userspace address, guest network is available, but scp during migration may 
>>> fail.
>>>
>>> Looks like the issue is related to memory api, any thoughts?
>>>
>>> Thanks
>> Tried to reproduce this for a while without success.
>> Which command line was used?
>>
>>
>> -- 
>> MST
> Could be we are not syncing all that we should?
> Does the following hack make the problem go away?
>
> diff --git a/hw/vhost.c b/hw/vhost.c
> index 8d41fdb..a7a0412 100644
> --- a/hw/vhost.c
> +++ b/hw/vhost.c
> @@ -69,6 +69,8 @@ static int vhost_sync_dirty_bitmap(struct vhost_dev *dev,
>                                     hwaddr end_addr)
>  {
>      int i;
> +    start_addr = 0x0;
> +    end_addr = ~0x0ull;
>  
>      if (!dev->log_enabled || !dev->started) {
>          return 0;
>

Still can reproduce with this. From the bisect result, the vhost dirty
bitmap sync itself looks ok but something wrong when converting to
memory listener.

Patch

diff --git a/hw/vhost.c b/hw/vhost.c
index 8d41fdb..a7a0412 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -69,6 +69,8 @@  static int vhost_sync_dirty_bitmap(struct vhost_dev *dev,
                                    hwaddr end_addr)
 {
     int i;
+    start_addr = 0x0;
+    end_addr = ~0x0ull;
 
     if (!dev->log_enabled || !dev->started) {
         return 0;