Subject: Re: port-xen/29851: CALLBACK_IN_BLOCKING_CONTEXT callbacks can not
To: None <port-xen-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: netbsd-bugs
Date: 04/02/2005 01:39:01
The following reply was made to PR port-xen/29851; it has been noted by GNATS.
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
To: bouyer@antioche.lip6.fr
Cc: gnats-bugs@NetBSD.org, port-xen-maintainer@NetBSD.org,
gnats-admin@NetBSD.org, netbsd-bugs@NetBSD.org
Subject: Re: port-xen/29851: CALLBACK_IN_BLOCKING_CONTEXT callbacks can not
block
Date: Sat, 02 Apr 2005 10:08:33 +0900
> On Fri, Apr 01, 2005 at 12:31:00AM +0000, yamt@mwd.biglobe.ne.jp wrote:
> > Machine: i386
> > >Description:
> > even with CALLBACK_IN_BLOCKING_CONTEXT,
> > the callback will be called at softintr context.
> > thus it can not block.
>
> They can't tlseep() but they can block busy-waiting for a highter-priority
> interrupt (this is what the if_xennet.c driver does).
> I agree that the name CALLBACK_IN_BLOCKING_CONTEXT desn't match what the
> code allows, but I don't think anything tries to tlseep() in a callback
> in the current code.
at least, xbdback and xennetback do some sleepable operations
in their callback. VOP_*, vn_close, if_attach, ether_ifattach, ...
am i misunderstanding?
YAMAMOTO Takashi