Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Sep 2002 10:24:51 -0700 (PDT)
From:      Nate Lawson <nate@root.org>
To:        Michel Oosterhof <m.oosterhof@xs4all.nl>
Cc:        hackers@freebsd.org
Subject:   Re: kqueue
Message-ID:  <Pine.BSF.4.21.0209251001580.68759-100000@root.org>
In-Reply-To: <20020925081253.GA98975@xs4all.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 25 Sep 2002, Michel Oosterhof wrote:
> Hello.
> 
> Recently I started looking into kqueue(2), and to get to know the
> interface better I attempted to turn usr.sbin/moused into a kqueue
> program (replacing the main select() loop that reads the mouse
> device).
> 
> Now I thought I understood the interface, I requested a kqueue, but
> as soon as I add an event for monitoring I get an 'Operation not
> permitted' error.  Does anyone know if this is caused because
> kqueue() only supports FFS? The mouse device is on devfs (I'm running
> -CURRENT, btw).

No, it's a device driver not fs deficiency.  The serial/ps2/whatever
drivers need to add a KNOTE when they have data ready.  Check out
sys/kern/tty.c for a driver that does this.  This is not a difficult
change -- KNOTE would go into psmintr() near the selwakeup.  You also need
to add kqfilter, attach, detach entries (see ttykqfilter, fil_ttyrdetach,
etc.)
 
> I've got one more question, actually a fact that surprises me, it
> seems that tail(1) is the only place in the base system that actually
> uses kqueue. Is there a reason for this? I read in most places
> kqueue() is more efficient, scalable, etc. I'm sure code like ftpd
> or other services would benefit. (And i'm sure Apache could use it
> too).

No time.

-Nate



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0209251001580.68759-100000>