Subject: Re: port-xen/29775: Cannot use a vnode disk for domU
To: None <bouyer@antioche.lip6.fr>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 03/31/2005 08:00:39
hi,
> > > With:
> > > panic: lockmgr: no context
> > > It is in vndstrategy:
> > > vn_lock(vnd->sc_vp, LK_EXCLUSIVE | LK_RETRY | LK_CANRECURSE);
> > >
> > > This means that I/O on the vnd block device expect to be called from
> > > a process context, while the xbd backend calls it from interrupt context.
> >
> > do you have a backtrace?
>
> I had, but the problem is quite clear: when writing to a vnd, the chain
> always end up calling vndstrategy() which always end up calling vn_lock().
> So we can't write to a vnd from interrupt context. The xbd backen initiates
> its I/O from interrupt context (the interrupt from the hypervisor, signaling
> that there is a request pending for this xbd).
i believe it's a problem in xbd, not in vnd.
doing vnode operations from interrupt context is evil.
(well, yes, vnd has its own problems. having a thread for vnd is fine.
but it's another story.)
YAMAMOTO Takashi