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] xm pause causing lockup

To: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] xm pause causing lockup
From: Kip Macy <kip.macy@xxxxxxxxx>
Date: Fri, 15 Apr 2005 14:04:00 -0700
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 15 Apr 2005 21:03:55 +0000
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=OTfymfvULWeGbSs3bZs/X1TMDS5dI+Q/wgIQUaG2MWTPkF2imoze/rS3PwI3ydqg0WJELrxa9AvnpqCOJCf8+uPHQ4L8nHoVHDk6d3knK3V5Co+7J8S9Z4CHFZkDJIaEfprAwSn34iwMhXQry3JOwRXt1lvtzJZwmft+9wweqUU=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <A95E2296287EAD4EB592B5DEEFCE0E9D1E3BC6@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: <A95E2296287EAD4EB592B5DEEFCE0E9D1E3BC6@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Reply-to: Kip Macy <kip.macy@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> Does this happen if you boot with 'nosmp'? I don't really believe it's a
> race, but might be worth checking.

Yes, it still happens. It would have found it quite astonishing if it
were a race.
(XEN) EIP:    0808:[<fc52d5a3>]
(gdb) x/i 0xfc52d5a3
0xfc52d5a3 <get_page_type+265>: mov    0x14(%eax),%eax
(gdb) info line *0xfc52d5a3
Line 1236 of "mm.c" starts at address 0xfc52d5a0 <get_page_type+262>
and ends at 0xfc52d5b0 <get_page_type+278>.
(gdb) 

Line 1236-1240 of local mm.c:
            while ( (y = page->u.inuse.type_info) == x )
                cpu_relax();
            counter++;
            printk("page was not validated");
            goto again;

> Also, it's worth adding a printk into this loop just to check that that
> is where you're getting caught.

Obviously wasn't thinking and stuck it in the wrong place.
Nonetheless, even without the printk I think I've proven my point.


> 
>             /* Someone else is updating validation of this page. Wait...
> */
>             while ( (y = page->u.inuse.type_info) == x )
>                 cpu_relax();
>             goto again;

Yep.

> 
> We need to figure out how the type count managed to get to one without
> the page being validated. I presume you're doing a debug=y build of Xen?

Correct. Nothing comes out on the console apart from debug output from FreeBSD.

> Do you get any warnings about illegal mmu_update attempts when you boot
> FreeBSD?

No, I don't. This is the offending code snippet from pmap_pinit:

        /* install self-referential address mapping entry(s) */
        for (i = 0; i < NPGPTD; i++) {
                ma = xpmap_ptom(VM_PAGE_TO_PHYS(ptdpg[i]));
                pmap->pm_pdir[PTDPTDI + i] = ma | PG_V | PG_A | PG_M;
#ifdef PAE
                pmap->pm_pdpt[i] = ma | PG_V;
#endif
                /* re-map page directory read-only */
                PT_SET_MA(pmap->pm_pdir, *vtopte((vm_offset_t)pmap->pm_pdir) & 
~PG_RW);
                xen_pgd_pin(ma);
        }

PT_SET_MA is just a wrapper for update_va_mapping. Have there been any
recent changes to the page typing code that would cause it to get
confused by a self-referential mapping?

                          -Kip

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