History log of /freebsd/sys/kern/sched_ule.c (Results 476 – 500 of 810)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 0c7da3a4 16-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- Call sched_add() with the correct argument on SMP.

Reported by: Valentin Chopov <valentin@valcho.net>


# b72f347b 16-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- Fix a minor problem with my last commit, we don't want to return from
sched_switch if the thread is running, we want to fall through and pick
a new thread because we have been preempted.


# ae53b483 16-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- Collapse sched_switchin() and sched_switchout() into sched_switch(). Now
mi_switch() calls sched_switch() which calls cpu_switch(). This is
actually one less function call than it had been.


# 7cf90fb3 16-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- Update the sched api. sched_{add,rem,clock,pctcpu} now all accept a td
argument rather than a kse.


# 4c9612c6 16-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- The non iterative algorithm for interact_update was broken due to
rounding errors. This was the source of the majority of the
interactivity problems. Reintroduce the old algorithm and its X

- The non iterative algorithm for interact_update was broken due to
rounding errors. This was the source of the majority of the
interactivity problems. Reintroduce the old algorithm and its XXX.
- Up the interactivity threshold to 30. It really could stand to be even
a tiny bit higher.
- Let the sleep and run time accumulate up to 5 seconds of history rather
than two. This helps stop XFree86 from becoming non-interactive during
bursts of activity.

show more ...


# 08fd6713 15-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- If our user_pri doesn't match our actual priority our priority has been
elevated either due to priority propagation or because we're in the
kernel in either case, put us on the current queue

- If our user_pri doesn't match our actual priority our priority has been
elevated either due to priority propagation or because we're in the
kernel in either case, put us on the current queue so that we dont
stop others from using important resources. At some point the priority
elevations from sleeping in the kernel should go away.
- Remove an optimization in sched_userret(). Before we would only set
NEEDRESCHED if there was something of a higher priority available. This
is a trivial optimization and it breaks priority propagation because it
doesn't take threads which we may be blocking into account. Notice that
the thread which is blocking others gets up to one tick of cpu time before
we honor this NEEDRESCHED in sched_clock().

show more ...


# 736c97c7 12-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- In SCHED_CURR() add holding Giant to the list of criteria that will keep
you on the current queue. In the future, it would be nice if priority
propagation could deterministicly pluck a threa

- In SCHED_CURR() add holding Giant to the list of criteria that will keep
you on the current queue. In the future, it would be nice if priority
propagation could deterministicly pluck a thread off of the next queue
and put it on the current queue. Until then this hack stops us from
holding up our entire current queue, including interrupt handlers, while
a thread on the next queue is blocked while holding Giant.
- Inherit our pctcpu information from our parent.

show more ...


# 8ec82641 04-Oct-2003 Jeff Roberson <jeff@FreeBSD.org>

- Change a lame iterative algorithm to a constant time algorithm. Remove
the XXX that complains about it as well.

Submitted by: ThomasWuerfl@gmx.de


# 81de51bf 20-Sep-2003 Jeff Roberson <jeff@FreeBSD.org>

- Somewhere along the line I stupidly removed critical logic from
sched_ptcpu_update(). This caused erroneous cpu times in TOP for
processes that were asleep. Replace the code that was remove

- Somewhere along the line I stupidly removed critical logic from
sched_ptcpu_update(). This caused erroneous cpu times in TOP for
processes that were asleep. Replace the code that was removed.

show more ...


# ab2baa72 26-Aug-2003 David Xu <davidxu@FreeBSD.org>

Let SA process work under ULE scheduler, originally it would panic kernel.

Reviewed by: jeff


# c06eb4e2 19-Aug-2003 Sam Leffler <sam@FreeBSD.org>

Change instances of callout_init that specify MPSAFE behaviour to
use CALLOUT_MPSAFE instead of "1" for the second parameter. This
does not change the behaviour; it just makes the intent more clear.


# 0c0a98b2 08-Jul-2003 Jeff Roberson <jeff@FreeBSD.org>

- When stealing a kse in kseq_move() ignore the current kseq's min nice
value. We want to steal any thread, even one that is not given a slice
on its current queue.


# 0ec896fd 07-Jul-2003 Jeff Roberson <jeff@FreeBSD.org>

- Clean up an unused variable.

Submitted by: Steve Kargl <skg@routmask.apl.washington.edu>


# 749d01b0 04-Jul-2003 Jeff Roberson <jeff@FreeBSD.org>

- Parse the cpu topology map in sched_setup().
- Associate logical CPUs on the same physical core with the same kseq.
- Adjust code that assumed there would only be one running thread in any
kse

- Parse the cpu topology map in sched_setup().
- Associate logical CPUs on the same physical core with the same kseq.
- Adjust code that assumed there would only be one running thread in any
kseq.
- Wrap the HTT code with a ULE_HTT_EXPERIMENTAL ifdef. This is a start
towards HyperThreading support but it isn't quite there yet.

show more ...


# 7a20304f 28-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Don't migrate to stopped cpus.


# 86f8ae96 28-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- If smp is not started yet don't try to load balance or we'll put threads
on cpus that aren't running yet.


# a91172ad 28-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Throttle the inherited sleep and run time in sched_fork_kseg(). This
allows us to learn the behavior of a thread much more quickly after it
starts up.


# e493a5d9 28-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Adjust the default maximum slice value to ~140ms. This has improved the
nice distribution without significantly impacting interactive response.
As a side effect it should also allow batch pr

- Adjust the default maximum slice value to ~140ms. This has improved the
nice distribution without significantly impacting interactive response.
As a side effect it should also allow batch processes to run for a
slightly longer period which will positively impact their performance.

show more ...


# 1a7a9d0e 21-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- lticks was erroneously being updated in sched_pctcpu(). This was causing
us to skip the pctcpu_update() call which lead to inaccurate cpu usage
statistics for processes that didn't run often.


# 665cb285 21-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Don't allow nice to have such a large effect on priority. This was
causing poor interactive performance while unnice processes were running.
The new scheme still allows nice to have an effec

- Don't allow nice to have such a large effect on priority. This was
causing poor interactive performance while unnice processes were running.
The new scheme still allows nice to have an effect on priority but it is
not as dramatic as the effect of the interactivity score.

show more ...


# d07ac847 17-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Use a more robust mechanism for determining whether or not a kse is on a
kseq.


# 7cd0f833 17-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Temporarily patch a problem where the interact score could be negative
because the run time exceeds the largest value a signed int can hold.
The real solution involves calculating how far we

- Temporarily patch a problem where the interact score could be negative
because the run time exceeds the largest value a signed int can hold.
The real solution involves calculating how far we are over the limit.
To quickly solve this problem we loop removing 1/5th of the current value
until it falls below the limit. The common case requires no passes.

show more ...


# 4b60e324 17-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Add a new function "sched_interact_update()" that scales back the sleep
and run time.
- Scale the sleep and run time back via sched_interact_update() in more
places. This is to keep the sta

- Add a new function "sched_interact_update()" that scales back the sleep
and run time.
- Scale the sleep and run time back via sched_interact_update() in more
places. This is to keep the statistic more accurate.
- Charge a parent one tick for forking a child.
- Add only the run time and not the sleep time to the parents kg when a
thread exits. This allows us to give a penalty for having an expensive
thread exit but does not give a bonus for having an interactive thread
exit.
- Change the SLP_RUN_THROTTLE to limit us to 4/5th and not 1/2.
- Change the SLP_RUN_MAX to two seconds. This keeps bursty interactive
applications like mozilla and openoffice in the interactive range even
through expensive tasks.
- Recalculate the slice after every sleep. This ensures that once a task
has been marked interactive it only has a slice of 1 at the risk of
giving tasks that sleep for a very brief period a longer time slice.

show more ...


# 3c124732 15-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Increase the ksegrp's cpu time history buffer to 250ms.
- Decrease the history buffer divisor to 2 so that we remember more of the
old behavior.


# b41f3d22 15-Jun-2003 Jeff Roberson <jeff@FreeBSD.org>

- Cap the growth of sleep and run time in sched_exit_kse().


1...<<11121314151617181920>>...33