HomeFreeBSD

- Fix the maximum slice value. I accidentally checked in a value of '2'
rS116365Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

  • Fix the maximum slice value. I accidentally checked in a value of '2' which meant no process would run for longer than 20ms.
  • Slightly redo the interactivity scorer. It follows the same algorithm but in a slightly more correct way. Previously values above half were incorrect.
  • Lower the interactivity threshold to 20. It seems that in testing non- interactive tasks are hardly ever near there and expensive interactive tasks can sometimes surpass it. This area needs more testing.
  • Remove an unnecessary KTR.
  • Fix a case where an idle thread that had an elevated priority due to priority prop. would be placed back on the idle queue.
  • Delay setting NEEDRESCHED until userret() for threads that haad their priority elevated while in kernel. This gives us the same context switch optimization as SCHED_4BSD.
  • Limit the child's slice to 1 in sched_fork_kse() so we detect its behavior more quickly.
  • Inhert some of the run/slp time from the child in sched_exit_ksegrp().
  • Redo some of the priority comparisons so they are more clear.
  • Throttle the frequency of sched_pctcpu_update() so that rounding errors do not make it invalid.

Details

Provenance
jeffAuthored on
Parents
rS116364: Merge the following from the English version:
Branches
Unknown
Tags
Unknown

Event Timeline