All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kip Macy <kip.macy@gmail.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel <xen-devel@lists.xensource.com>
Subject: Re: xm pause causing lockup
Date: Thu, 14 Apr 2005 21:36:12 -0700	[thread overview]
Message-ID: <b1fa2917050414213614285de5@mail.gmail.com> (raw)
In-Reply-To: <b1fa291705041414043da7e3cf@mail.gmail.com>

To further check this I added:
 printk("%s %d %d %d %d %d\n", __FUNCTION__, op->cmd, op->mfn, count,
success_count, domid);
to HYPERVISOR_mmuext_op and something similar to mmu_update.


HYPERVISOR_mmu_update 0xc0200ba0 1 0 32752
HYPERVISOR_mmu_update 0xc0200ba0 1 0 32752
HYPERVISOR_mmuext_op 7 -1069543424 1 0 32752
HYPERVISOR_mmu_update 0xc0200ba0 1 0 32752
HYPERVISOR_mmu_update 0xc0200ba0 1 0 32752
HYPERVISOR_mmuext_op 7 -955666432 1 0 32752
HYPERVISOR_mmuext_op 1 25359 1 0 32752
<lockup>

I'm not sure where I could add printks to
get_page_and_type_from_pagenr without making DOM0 take forever to
boot. Suggestions are welcome. Alternatively you could do me a favor
and just run my FreeBSD binary locally.


On 4/14/05, Kip Macy <kip.macy@gmail.com> wrote:
> I think there may be a bug in your page pinning validation logic - the
> lockup occurs when stepping through xen_pgd_pin. I don't know if I'm
> really passing in 0, as register locals can quickly get overwritten,
> but it is certainly worth checking.
> 
> Breakpoint 15, pmap_pinit (pmap=0xc06900c0) at
> ../../../i386-xen/i386-xen/pmap.c:1206
> 1206                    xen_pgd_pin(ma);
> (gdb)
> Continuing.
> 
> Breakpoint 8, xen_pgd_pin (ma=0x0) at
> ../../../i386-xen/i386-xen/xen_machdep.c:490
> 490         op.cmd = MMUEXT_PIN_L2_TABLE;
> (gdb) s
> 491         op.mfn = ma >> PAGE_SHIFT;
> (gdb)
> 492         xen_flush_queue();
> (gdb)
> 
> Breakpoint 4, xen_flush_queue () at ../../../i386-xen/i386-xen/xen_machdep.c:431
> 431         if (XPQ_IDX != 0) _xen_flush_queue();
> (gdb)
> 432     }
> (gdb)
> xen_pgd_pin (ma=0x630f) at hypervisor.h:72
> 72      {
> (gdb)
> 76          __asm__ __volatile__ (
> (gdb)
> 
> 
> On 4/14/05, Kip Macy <kip.macy@gmail.com> wrote:
> > I haven't tracked down the problem yet, but I thought the following
> > was sufficiently interesting to post:
> >
> > kmacy@curly while (1)
> > while? xm list
> > while? sleep 5
> > while? end
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     67.9
> > xen-vm2            1      128    1  r----      4.0    9601
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     68.1
> > xen-vm2            1      128    1  r----      4.0    9601
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     68.3
> > xen-vm2            1      128    1  r----      4.0    9601
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     68.5
> > xen-vm2            1      128    1  r----      4.0    9601
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     68.7
> > xen-vm2            1      128    1  r----      4.0    9601
> > Name              Id  Mem(MB)  CPU  State  Time(s)  Console
> > Domain-0           0      507    0  r----     68.9
> > xen-vm2            1      128    1  r----      4.0    9601
> >
> > xen-vm2 is always shown as running, but its time is not increasing.
> >
> >                -Kip
> >
> >
> > On 4/13/05, Kip Macy <kip.macy@gmail.com> wrote:
> > > On 4/13/05, Keir Fraser <Keir.Fraser@cl.cam.ac.uk> wrote:
> > > > Probably easiest way to trace this is with printk's in Xen. The guts of
> > > > the work is done by domain_pause_by_systemcontroller() in xen/sched.h.
> > > > This in turn calls domain_sleep() in common/schedule.c.
> > >
> > > I traced through that code a while back when trying to decide what to
> > > call from the int3 handler.
> > >
> > > A particularly
> > > > interesting place to look will be teh synchronous spin loop at the end
> > > > of domain_sleep -- if the paused domain isn't descheduled for some
> > > > weird reason then the spin loop would never exit and domain0 would
> > > > hang.
> > >
> > > Good point. It will be interesting to see.
> > >
> > > I sometimes wonder if I should keep some of the buggy versions of
> > > FreeBSD around for regression testing as they trigger some interesting
> > > behaviours in xen and xend.
> > >
> > >            -Kip
> > >
> >
>

  reply	other threads:[~2005-04-15  4:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-14  2:46 xm pause causing lockup Kip Macy
2005-04-14  3:03 ` Keir Fraser
2005-04-14  3:03   ` Kip Macy
2005-04-14  3:16     ` Keir Fraser
2005-04-14  3:18       ` Kip Macy
2005-04-14 19:41         ` Kip Macy
2005-04-14 21:04           ` Kip Macy
2005-04-15  4:36             ` Kip Macy [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-04-15  6:53 Ian Pratt
2005-04-15 17:12 ` Kip Macy
2005-04-15 17:25 Ian Pratt
2005-04-15 18:57 ` Kip Macy
2005-04-15 19:29 Ian Pratt
2005-04-15 21:04 ` Kip Macy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b1fa2917050414213614285de5@mail.gmail.com \
    --to=kip.macy@gmail.com \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.