Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Mar 2003 15:22:43 -0500 (EST)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Daniel Eischen <eischen@pcnet1.pcnet.com>
Cc:        Scott Long <scott_long@btc.adaptec.com>
Subject:   Re: 1:1 threading.
Message-ID:  <20030328151526.S64602-100000@mail.chesapeake.net>
In-Reply-To: <Pine.GSO.4.10.10303281352530.242-100000@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 28 Mar 2003, Daniel Eischen wrote:

> On Fri, 28 Mar 2003, Daniel C. Sobral wrote:
>
> > David Xu wrote:
> > >
> > > do you think that a multithreaded process should use more CPU time then
> > > a single thread process, so threaded process should have higher priority
> > > and block other single thread processes out? AFAIK, threading is not
> > > designed for this, you may misunderstand what threading is designed for.
> >
> > Threading might not have been originally designed for this, but a lot of
> > people use it this way, a lot of people *want* it this way, and POSIX
> > specifically mandates that this way be available.
>
> It is available through pthread_attr_setscope().
>
> There's some confusion over this and the way libthr is implemented.
> KSE's within the same KSE Group were not designed to give more CPU
> time than a normal unthreaded/single KSE'd process.  Unless this
> has been changed in the kernel somehow, the use of multiple KSEs
> by libthr or libkse (in a single KSEG) will not get any more CPU
> time than a non-threaded program.  There was some debate over
> this, but multiple KSEs within a KSEG were _not_ suppose to allow
> this.  You are suppose to create a new KSEG in order to get
> this behavior.
>

This is not how it is implemented in either scheduler that we currently
have.  I'm not saying which way is more or less correct because I think
you could argue either way.  We can not entirely correctly implement
SCOPE_PROCESSES threads right now anyway.

This being said..  It is a property of the thr system calls and not
libthr.  I have a flags field in thr_create() that could be used to
indicate which scope the thread should contend in.

Cheers,
Jeff



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030328151526.S64602-100000>