On Sun, Jul 06, 2014 at 01:49:04PM -0700, Neel Natu wrote:
> Hi Steve,
> 
> On Sun, Jul 6, 2014 at 8:46 AM, Steve Wills <swi...@freebsd.org> wrote:
> > I should have noted this system is running in bhyve. Also I'm told this 
> > panic
> > may be related to the fact that the system is running in bhyve.
> >
> > Looking at it a little more closely:
> >
> > (kgdb) list *__mtx_lock_sleep+0xb1
> > 0xffffffff809638d1 is in __mtx_lock_sleep 
> > (/usr/src/sys/kern/kern_mutex.c:431).
> > 426                      * owner stops running or the state of the lock 
> > changes.
> > 427                      */
> > 428                     v = m->mtx_lock;
> > 429                     if (v != MTX_UNOWNED) {
> > 430                             owner = (struct thread *)(v & 
> > ~MTX_FLAGMASK);
> > 431                             if (TD_IS_RUNNING(owner)) {
> > 432                                     if (LOCK_LOG_TEST(&m->lock_object, 
> > 0))
> > 433                                             CTR3(KTR_LOCK,
> > 434                                                 "%s: spinning on %p 
> > held by %p",
> > 435                                                 __func__, m, owner);
> > (kgdb)
> >
> > I'm told that MTX_CONTESTED was set on the unlocked mtx and that 
> > MTX_CONTENDED
> > is spuriously left behind, and to ask how lock prefix is handled in bhyve. 
> > Any
> > of that make sense to anyone?
> >
> 
> Regarding the lock prefix: since bhyve only supports hardware that has
> nested paging, the hypervisor doesn't get in the way of instructions
> that access memory. This includes instructions with lock prefixes or
> any other prefixes for that matter. If there is a VM exit due to a
> nested page fault then the faulting instruction is restarted after
> resolving the fault.
> 
> Having said that, there are more plausible explanations that might
> implicate bhyve: incorrect translations in the nested page tables,
> stale translations in the TLB etc.
> 
> Do you have a core file for the panic? It would be very useful to
> debug this further.

No, unfortunately I did not have swap or dumpdev setup at the time so I was
unable to get a core dump from the crashed kernel. (Bhyve did not crash.) I've
setup swap in the VM and set the dumpdev as well, so if it happens again I
should get a core.

Steve

Attachment: pgpqBGlv4h2w9.pgp
Description: PGP signature

Reply via email to