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