On 4 Jan 2003 at 0:08, Henrik Nordstrom wrote:
> > I thought we might only send 1 signal to worker threads if there is
> > work to do and there are idle threads. Then let threads themselves
> > make sure they awake up enough workers. We make only sure that first
> > worker gets reliably chance to run, before we proceed with poll().
>
> Threads keep running until the queue is empty so it is not that big deal
> if to few or too many threads are awakened.
>
> However, it is desireable if on SMP the worker theads gets going while
> the main thread is working on other network I/O, this to have I/O events
> completed while the network I/O is beeing processed.
nono, its quite opposite. on SMP system other cpu is used so faintingly
little that its almost irrelevant. Most point of multiple threads in IO is just
to make several IO requests pending concurrently. Most of the time IO
threads are blocked in OS anyway, and thats good, UP or SMP system.
So imo the more threads we can get concurrently, the better. Signalling
too many threads just eats up main thread cpu time. Also requesting
things that almost never block, like file write requests.
> For now I select to ignore the issue about having worker threads
> started. I have no indication this is actually needed in real life
> workloads.
Received on Sat Jan 04 2003 - 07:38:49 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:05 MST