Re: Kernel Threads: Dr. Russinovich's response

Mike Jagdis (mike@roan.co.uk)
Wed, 13 Jan 1999 10:19:36 +0000 (GMT/BST)


On Tue, 12 Jan 1999, Benjamin Scherrey wrote:

> 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/