> Alan Cox wrote:
>
> Perhaps to get this thread back on topic you would care to clarify/comment
> on a couple of issues that he brings up. To me, this item about multiple threads
> blocked an a select() waking up when only one is able to successfully perform
> the accept() would certainly appear to be a significant performance issue. My
> question is, is this a valid criticism of the kernel implementation or simply an
> out of scope criticism that is an example of poor application design?
It's an application problem because that is exactly how
select/poll is _defined_ to work. If you change to only wake one
you have to change the select/poll semantics to require that
processes handle the fd that woke them or tell the kernel to
wake something else instead.
The "thundering herd" problem is real though - if you have designed
a system with many processes doing select/poll on the _same_ fds.
UNIX/POSIX isn't designed for this type of program design (but other
designs are possible...); NT is, apparently, designed for this
type of program design - the NT theory appears to be to throw lots
of threads in to everything. No wonder many (most?) NT programs
are so flakey - writing solid threaded code is _hard_.
Mike
-- A train stops at a train station, a bus stops at a bus station. On my desk I have a work station... .----------------------------------------------------------------------. | Mike Jagdis | Internet: mailto:mike@roan.co.uk | | Roan Technology Ltd. | | | 54A Peach Street, Wokingham | Telephone: +44 118 989 0403 | | RG40 1XG, ENGLAND | Fax: +44 118 989 1195 | `----------------------------------------------------------------------'
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/