WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] netif_suspend / resume

To: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] netif_suspend / resume
From: Jacob Gorm Hansen <jacobg@xxxxxxx>
Date: Fri, 20 May 2005 15:30:38 -0700
Cc: Xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 20 May 2005 22:30:37 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <A95E2296287EAD4EB592B5DEEFCE0E9D1E40E7@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <A95E2296287EAD4EB592B5DEEFCE0E9D1E40E7@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0 (X11/20050302)
Ian Pratt wrote:

The guest keeps its own shadow copy of the state as regards which pfn's
it has queued as {free, rx, tx}bufs. After a resume it 'gathers' those
pages and requeues the free and tx bufs to the new backend.
We currently junk any outstanding rxbufs, but in reality there almost
never are any as the vif interrupt will be serviced before the suspend
thread gets to run. When we switch over to grant tables we'll be able to
process these on the destination too, as we'll know the memory has been
syncronized. It won't make difference, though.

With the latest unstable, I am trying to do this:

    __cli();

    netif_suspend();
    time_suspend();
    ctrl_if_suspend();
    irq_suspend();


    irq_resume();
    ctrl_if_resume();
    time_resume();
    netif_resume();


    __sti();

(The domU has no blockdev support compiled in).

But I immediately crash trying to reference 0x050d4286 in network_tx_buf_gc(), at the last instruction in the disasm below:

c0222e20 <network_tx_buf_gc>:
c0222e20:   55                      push   %ebp
c0222e21:   57                      push   %edi
c0222e22:   56                      push   %esi
c0222e23:   53                      push   %ebx
c0222e24:   83 ec 04                sub    $0x4,%esp
c0222e27:   8b 44 24 18             mov    0x18(%esp),%eax
c0222e2b:   89 04 24                mov    %eax,(%esp)
c0222e2e:   89 c6                   mov    %eax,%esi
c0222e30:   81 c6 20 02 00 00       add    $0x220,%esi
c0222e36:   83 be 88 00 00 00 02    cmpl   $0x2,0x88(%esi)
c0222e3d:   74 06                   je     c0222e45 <network_tx_buf_gc+0x25>
c0222e3f:   58                      pop    %eax
c0222e40:   5b                      pop    %ebx
c0222e41:   5e                      pop    %esi
c0222e42:   5f                      pop    %edi
c0222e43:   5d                      pop    %ebp
c0222e44:   c3                      ret
c0222e45:   8b 56 74                mov    0x74(%esi),%edx
c0222e48:   90                      nop
c0222e49:   8d b4 26 00 00 00 00    lea    0x0(%esi),%esi
c0222e50:   8b 7a 08                mov    0x8(%edx),%edi
c0222e53:   f0 83 44 24 00 00       lock addl $0x0,0x0(%esp)
c0222e59:   8b 5e 6c                mov    0x6c(%esi),%ebx
c0222e5c:   39 fb                   cmp    %edi,%ebx
c0222e5e:   74 42                   je     c0222ea2 <network_tx_buf_gc+0x82>
c0222e60:   0f b6 c3                movzbl %bl,%eax
c0222e63:   8b 6e 74                mov    0x74(%esi),%ebp
c0222e66:   8d 04 40                lea    (%eax,%eax,2),%eax
c0222e69:   c1 e0 02                shl    $0x2,%eax
c0222e6c:   8b 96 a8 00 00 00       mov    0xa8(%esi),%edx
c0222e72:   01 e8                   add    %ebp,%eax
c0222e74:   0f b7 40 10             movzwl 0x10(%eax),%eax
c0222e78:   8b 8c 86 a8 00 00 00    mov    0xa8(%esi,%eax,4),%ecx
c0222e7f:   89 94 86 a8 00 00 00    mov    %edx,0xa8(%esi,%eax,4)
c0222e86:   89 86 a8 00 00 00       mov    %eax,0xa8(%esi)
c0222e8c:   ff 89 84 00 00 00       decl   0x84(%ecx)
                                           ^^^^^^^^^^
Any hints for debugging this?

thanks,
Jacob

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>