Re: KSE, libpthread & libthr: almost newbie question
- From: Julian Elischer <julian@xxxxxxxxxxxx>
- Date: Fri, 27 Oct 2006 12:34:26 -0700
Ruslan Ermilov wrote:
On Fri, Oct 27, 2006 at 10:56:21AM +0200, Ivan Voras wrote:Lev Serebryakov wrote:KSE == N:M threadingHello ,Yes, isn't KSE by definition "that thing that is scheduled in the kernel"?
I've was sure, that both libpthread and libthr use KSE to make multithreading. They use KSE in different ways: libpthread uses N:M model and libthr uses 1:1 model, but bot use KSE to work.
How will be possible to use these libraries (read: multithreaded programs) when KSE will be optional, on kernel without KSE?!
A 1:1 threading (libthr) is much simpler than N:M threading (libpthread),
and thus doesn't require KSE support in the kernel; see kse(2) manpage
for details. Without the KSE option in the kernel, all kse(2) syscalls
will return EOPNOTSUPP, and a lot of code becomes redundant.
KSE is a misnomer that I abandoned long ago..
mostly it is the thread fairness code that is independent of what threading library is running (see the other email I just sent)
(or should be)
: /*
: * Initialize global thread allocation resources.
: */
: void
: threadinit(void)
: {
: : mtx_init(&tid_lock, "TID lock", NULL, MTX_DEF);
: tid_unrhdr = new_unrhdr(PID_MAX + 1, INT_MAX, &tid_lock);
: : thread_zone = uma_zcreate("THREAD", sched_sizeof_thread(),
: thread_ctor, thread_dtor, thread_init, thread_fini,
: UMA_ALIGN_CACHE, 0);
: #ifdef KSE
: ksegrp_zone = uma_zcreate("KSEGRP", sched_sizeof_ksegrp(),
: ksegrp_ctor, NULL, NULL, NULL,
: UMA_ALIGN_CACHE, 0);
: kseinit(); /* set up kse specific stuff e.g. upcall zone*/
: #endif
The KSEGRP is a part of the fairness code in general and independent
of M:N and 1:1
: }_______________________________________________
Cheers,
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"
- References:
- KSE, libpthread & libthr: almost newbie question
- From: Lev Serebryakov
- Re: KSE, libpthread & libthr: almost newbie question
- From: Ivan Voras
- Re: KSE, libpthread & libthr: almost newbie question
- From: Ruslan Ermilov
- KSE, libpthread & libthr: almost newbie question
- Prev by Date: Comments on the KSE option
- Next by Date: Re: KSE, libpthread & libthr: almost newbie question
- Previous by thread: Re: KSE, libpthread & libthr: almost newbie question
- Next by thread: Re: KSE, libpthread & libthr: almost newbie question
- Index(es):
Relevant Pages
|
|