My suggested path for threading.
Julian Elischer
julian at elischer.org
Sun Oct 29 04:14:35 UTC 2006
Julian Elischer wrote:
>
> I suggest that we remove the fairness code.
> that will remove a lot of the complexity.
> then both libraries will be more independent of each other
> and the scheduler.
(libthr already doesn't use it, and libpthread doesn't need it..
so it just adds complexity)
>
> libpthread will have system and process scope threads. libthr
> will have only system scope threads but will probably be the more
> efficient library for the larger set of processes, while libpthread
> will be more efficient for a smaller set.
>
> Given this, I suggest the following path:
>
> 1/ remove the fairness code..
> I can do this in the 2nd part of next week. I will be on vacation then.
>
>
> 2/ When it is up to it, make libthr the default threading library.
> I say this because MOST threading applications are very simplistic in their
> use of threading and the simpler threading infrastructure for 1:1 threading
> allows for easier optimisation. They usually use threading for IO
> parallelization and in this case, 1:1 and M:N devolve to effectively
> the same thing except that M:N has more overhead. 1:1 is more efficient
> in this case.
>
> 3/ Keep libpthread around. I believe strongly that there is a class of
> threaded app where M:N (after optimization) can leave 1:1 in the dust.
> This class of program instantiates many objects, each of which has a backing
> thread to implement some form of active behaviour. These threads usually
> never go to the kernel and typically come to life from a mutex or
> condition variable and then go to sleep again waiting on same. I have
> seen a test example of this class where M:N gave an order of magnitude
> speed up.
>
> 4/ continue to adhere VERY STRONGLY to our current practice of making
> the libraries RUN_TIME COMPATIBLE. (i.e. libmap can switch between them)
>
>
> I strongly believe that the problems people have reported with "KSE" are
> not problems with M:N threading as they are not using M:N threading but
> problems with the complexity added to the scheduler by the fairness
> attempt. I believe removing this will almost certainly fix those problems
> and if it doesn't it will narrow the search significantly.
>
>
>
> _______________________________________________
> freebsd-threads at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
> To unsubscribe, send any mail to "freebsd-threads-unsubscribe at freebsd.org"
More information about the freebsd-threads
mailing list