Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Feb 2002 13:28:29 +0300 (MSK)
From:      "Eugene L. Vorokov" <vel@bugz.infotecs.ru>
To:        danfe@cytherea.weblab.nsu.ru (Alexey Dokuchaev)
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: THTTPD web server: problems with KQUEUE on FreeBSD 4.5-STABLE
Message-ID:  <200202131028.g1DASTY88632@bugz.infotecs.ru>
In-Reply-To: <20020213160014.A97359@cytherea.weblab.nsu.ru> from "Alexey Dokuchaev" at Feb 13, 2002 04:00:14 PM

next in thread | previous in thread | raw e-mail | index | archive | help
> I still wonder, whether this problem occurs because of how thttpd does
> things, or how FreeBSD implements kqueue stuff, however, I am not sure
> that I will have enough time to dig deep into this.  Right now I'm pretty
> happy with the fact that I got thttpd working again, and those "200 0"
> messages are no longer in my logs.  However, it is still an issue to
> worry about, I believe, and I will be a lot more happy if my experience
> helps either folks to find and fix some probable bugs (if any) in their
> excellent software.

Hm, there is no such thing as kqread() I think. There are kqueue() and
kevent(). You didn't show the piece of code that uses it, so it's hard
to say what the problem is. I recommend you to read jlemon's paper
at http://www.freebsd.org/~jlemon/kqueue.pdf to see how to you should
work with kqueue() and kevent().

As for performance, I can confirm that kqueue() functions is better
than select()/poll() at least in situations where we have to do non-blocking
i/o on some large number of fd's (say, several thousands), and actually
each time we see some activity only on small number of them (say,
several hundred). That's how ircd usually works, and system load goes
down significantly with kqueue() comparing to select().

Regards,
Eugene


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?200202131028.g1DASTY88632>