Fw: Re: Implemented OPLOCK for FreeBsd

Jonathan Lemon jlemon at flugsvamp.com
Fri Sep 7 20:03:34 GMT 2001


On Fri, Sep 07, 2001 at 05:57:40PM -0700, Jeremy Allison wrote:
> On Fri, Sep 07, 2001 at 07:57:39PM -0500, Jonathan Lemon wrote:
> > On Fri, Sep 07, 2001 at 05:26:47PM -0700, Jeremy Allison wrote:
> > > then that's one answer, but to implement it "your way" (with
> > > some ill-defined internal queueing limit) vs. a defined
> > 
> > I'll direct you to my USENIX paper for this one.  There are _NO_
> > internal queueing limits, so there is nothing to bite you.  Any
> > failures are handled at allocation time when registering a new 
> > event, and reported to the application.
> 
> Well then doesn't that mean you could implement the POSIX.4
> realtime signal queues on top of kqueues, and return -1 for
> the max signal queue sysconf request ?

Yes, probably.  The difficulty is that when you register an event
(fd), you need to specify what kqueue the event will be returned on.
There is no single 'queue' per application, as per siginfo.  This 
means I need something like:

	fcntl(fd, WRITE_LEASE, kq)

since fcntl is restricted to 3 arguments.  This is the largest part
of the problem that I see.  kqueue can co-exist with signals, so if
at some point you wanted event delivery to occur via siginfo instead
of kevent(), that could be toggled with the sigaction() call.

 
> BTW: Can you give me the URL for the paper ?

 http://www.flugsvamp.com/~jlemon/fbsd/kqueue_usenix2001.pdf

--
Jonathan




More information about the samba-technical mailing list