Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Apr 2003 16:08:16 -0800
From:      Peter Wemm <peter@wemm.org>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        current@freebsd.org
Subject:   Re: libthr and 1:1 threading. 
Message-ID:  <20030403000816.AEB842A8A7@canning.wemm.org>
In-Reply-To: <200304030000.h33000uO087097@apollo.backplane.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon wrote:

>     A better solution would be to give AIO the capability to
>     operate synchronously if the operation would occur in a 
>     non-blocking fashion (inclusive of blockages on page faults),
>     and asynchronously otherwise.

Without wanting to get too far off into the weeds, squid does something
interesting.  They need to be able to nonblock for everything including
open(), read(), unlink(), readdir() etc.  So what they do is implement a
fairly significant superset of the traditional AIO stuff using pthreads. It
seems to work pretty well for them, even with linuxthreads style threads.
Granted, squid's needs are not exactly typical.  But I did want to point
out that a good part of the delays come not only from data IO but operations
like opening a file (pathname traversal), creating or removing a file,
reading a directory etc.  This is a particular problem when the disk
is really busy.

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030403000816.AEB842A8A7>