The first kse_create call
Daniel Eischen
eischen at vigrid.com
Wed Jun 18 06:08:15 PDT 2003
On Wed, 18 Jun 2003, Sergey Kosyakov wrote:
>
> --- Daniel Eischen <eischen at vigrid.com> wrote:
> > > but I never got upcall on the first kse. When I create another KSE
> > (and
> > > another KSE group) I immediatelly get the upcall for this (second)
> >
> > This is the correct behavior. The first kse_create() does not
> > generate an immediate upcall. It only flags the current context
> > as being a KSE. An upcall in this initial KSE will take place
> > under the same conditions as other KSEs (KSE mailbox has a thread
> > mailbox pointer and thread blocks, quantum expires, etc).
>
> How I can set the quantum? Is km_quantum from kse_mailbox the right
> place? I did not get any upcall when I set it.
You have to have both a thread mailbox pointer set in the
KSE mailbox and you have to expire the quantum. The quantum
is system plus user time. It is not real time (e.g., a nanosleep()
does not expire quantum while it sleeps).
quantum is in usecs.
> Also found, that "ps" and "top" do not show CPU utilization at least
> when one KSE with mailbox exists (5.1-RELEASE):
> 1036 p4 R+ 0:00.00 ./kt
>
> Process 1036 runs "printf" in loop.
I don't know about ps and top; there have been recent changes
to reflect more accurate display of KSE processes.
--
Dan Eischen
More information about the freebsd-threads
mailing list