From owner-freebsd-net@FreeBSD.ORG Sat Oct 23 22:06:20 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 583A516A4CE for ; Sat, 23 Oct 2004 22:06:20 +0000 (GMT) Received: from arginine.spc.org (arginine.spc.org [195.206.69.236]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08C8C43D45 for ; Sat, 23 Oct 2004 22:06:20 +0000 (GMT) (envelope-from bms@spc.org) Received: from localhost (localhost [127.0.0.1]) by arginine.spc.org (Postfix) with ESMTP id EA7EB654C2; Sat, 23 Oct 2004 23:06:18 +0100 (BST) Received: from arginine.spc.org ([127.0.0.1]) by localhost (arginine.spc.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 09923-02-4; Sat, 23 Oct 2004 23:06:18 +0100 (BST) Received: from empiric.dek.spc.org (dhcp120.icir.org [192.150.187.120]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by arginine.spc.org (Postfix) with ESMTP id D145E65476; Sat, 23 Oct 2004 23:06:13 +0100 (BST) Received: by empiric.dek.spc.org (Postfix, from userid 1001) id 694D561CB; Sat, 23 Oct 2004 15:06:05 -0700 (PDT) Date: Sat, 23 Oct 2004 15:06:05 -0700 From: Bruce M Simpson To: "Ronald F. Guilmette" Message-ID: <20041023220605.GA810@empiric.icir.org> Mail-Followup-To: "Ronald F. Guilmette" , Igor Sysoev , freebsd-net@freebsd.org References: <20041023002300.I91215@is.park.rambler.ru> <7208.1098550338@monkeys.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7208.1098550338@monkeys.com> cc: freebsd-net@freebsd.org cc: Igor Sysoev Subject: Re: aio_connect ? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Oct 2004 22:06:20 -0000 On Sat, Oct 23, 2004 at 09:52:18AM -0700, Ronald F. Guilmette wrote: > or kevent(), or aio_suspend(). Thus, I still do believe that the judicious > use of the aio_*() functions with signaling could support a dramatically > different programming style, especially for complex network clients and/or > servers that must monitor and respond to events on various kinds of socket > connections, all in the same single program. As was pointed out earlier, it requires POSIX realtime signal support to become useful in this way. I have programmed in this way under Solaris, for what it's worth; I implemented an httpd server using aio calls and real-time signals a few years ago, and the performance as compared to a select()/poll() based server turned out to be far worse, at least in terms of the number of requests per second it was able to handle. I don't recall specific figures. So I would regard it as largely a red herring; the kqueue/kevent mechanism will yield somewhat finer granularity in terms of polling for an i/o completion event from userland on FreeBSD, which seems to be what you're trying to achieve. aio and realtime signals is something we don't really do at the moment. Regards, BMS