Re: FreeBSD on xen hvm

From: Kip Macy <kip.macy_at_gmail.com>
Date: Sat, 25 Aug 2007 10:41:09 -0700
Have you tried gdbserver?

   -Kip


On 8/25/07, Andrew Turner <andrew_at_fubar.geek.nz> wrote:
> On Fri, 24 Aug 2007 13:30:17 +0100 (BST)
> Robert Watson <rwatson_at_FreeBSD.org> wrote:
> > On Fri, 24 Aug 2007, Andrew Turner wrote:
> >
> > > 1) PREEMPTION Preemption causes the kernel to panic with a page
> > > fault. The dmesg is available from [1].
> >
> > Any chance it's possible to get a core for this, or attach GDB
> > somehow to the VM?
> I haven't managed to get either remote GDB working and it's too early
> in the boot for a core. I can get a xen core dump but it would require
> processing to get it into something gdb could use.
> >  It looks like timing in Xen may be exposing a
> > race in some or another subsystem with timers, but figuring out which
> > subsystem it is will be most easily done if we can inspect the
> > callout information, which is most easily done with GDB since you can
> > inspect the callout structure more easily.  If not, then we can add
> > some printfs to extract the information, I expect, or extend DDB.  We
> > need to find out what the function pointer in the callout structure
> > is for.
> I've created a patch at [1] to add "show callouts" to ddb. It prints
> all the callouts in callwheel and the name of the function they call.
> The callouts with preemption are:
> loadav
> in6_tmpaddrtimer
> in6_rtqtimo
> in_rtqtimo
> in6_mtutimo
> uma_timeout
> nd6_slowtimo
> nfsrv_timer
> tcp_isn_tick
> scrn_timer
> roundrobin
> atkbd_timeout
> sleepq_timeout
> sleepq_timeout
> sleepq_timeout
> sleepq_timeout
> pffasttimo
> pfslowtimo
> kbdmux_kbd_intr_timo
> if_slowtimo
> ipport_tick
> nd6_timer
> lboltcb
> tcp_hc_purge
>
> Preemption does not always cause the kernel to panic, however when it
> doesn't it shows the mountroot> prompt and is unable to load the root
> as no disk drives show up.
> >
> > > 3) INVARIANTS Invariants causes a panic from a page fault. See [2]
> > > for the dmesg and backtrace.
> >
> > This appears to be in the start up of Audit as it creates a kernel
> > thread. Possibly it's creating the thread too early, or possibly
> > something else is going on.  Can you try creating a kernel without
> > options AUDIT and see if it works better, or if it just panics when
> > the next thread is created?
> It just panics in the next thread created.
> >
> > It sounds like Xen may start the timer firing sooner than on plain
> > hardware, or possibly at a faster rate initially, and that's causing
> > things to happen in a different order, so I expect we'll either bump
> > into a series of races of this sort based on different ordering of
> > events, or discover the timer isn't properly being disabled or
> > managed in Xen :-).
> I'm suspecting the timer isn't being managed properly. The timer in the
> loader always stays at 10 and with DIAGNOSTIC I'm getting lines like:
> Expensive timeout(9) function: 0xc097da70(0xc0bbaa00) -1.982636062 s
>
> Andrew
>
> [1] http://fubar.geek.nz/files/freebsd/ddb-callout.diff
>
> --
> Andrew Turner
> http://fubar.geek.nz/blog/
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Sat Aug 25 2007 - 15:41:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:16 UTC