 - Add a SYSCTL node for the ule scheduler.  - Allow user adjustable min and max time slices (suggested by hiten).  - Change the SLP_RUN_MAX to 100ms from 2 seconds so that we learn whether a    process is interactive or not much more quickly.  - Place a process on the current run queue if it is interactive or if it is    running at an interrupt thread priority due to priority prop.  - Use the 'current' timeshare queue for interrupt threads, realtime threads,    and idle threads that are running at higher priority due to priority prop.    This fixes problems where priorities would have been elevated but we would    not check the timeshare run queue until other lower priority tasks were    no longer runnable.  - Keep an array of loads indexed by the priority class as well as a global    load.  - Keep an bucket of nice values with a count of the number of kses currently    runnable with that nice value.  - Keep track of the minimum nice value of any running thread.  - Remove the unused short term sleep accounting.  I was attempting to use    this for load balancing but it didn't work out.  - Define a kseq_print() for use with debugging.  - Add KTR debugging at useful places so we can easily debug slice and    priority assignment.  - Decouple the runq assignment from the kseq assignment.  kseq_add now keeps    track of statistics.  This is done so that the nice and load is still    tracked for the currently running process.  Previously if a niced process    was added while a non nice process was running the niced process would    still get a slice since it was not aware of the unnice process.  - Make adjustments for the sched api changes.
 - Add a SYSCTL node for the ule scheduler.
 - Allow user adjustable min and max time slices (suggested by hiten).
 - Change the SLP_RUN_MAX to 100ms from 2 seconds so that we learn whether a
   process is interactive or not much more quickly.
 - Place a process on the current run queue if it is interactive or if it is
   running at an interrupt thread priority due to priority prop.
 - Use the 'current' timeshare queue for interrupt threads, realtime threads,
   and idle threads that are running at higher priority due to priority prop.
   This fixes problems where priorities would have been elevated but we would
   not check the timeshare run queue until other lower priority tasks were
   no longer runnable.
 - Keep an array of loads indexed by the priority class as well as a global
   load.
 - Keep an bucket of nice values with a count of the number of kses currently
   runnable with that nice value.
 - Keep track of the minimum nice value of any running thread.
 - Remove the unused short term sleep accounting.  I was attempting to use
   this for load balancing but it didn't work out.
 - Define a kseq_print() for use with debugging.
 - Add KTR debugging at useful places so we can easily debug slice and
   priority assignment.
 - Decouple the runq assignment from the kseq assignment.  kseq_add now keeps
   track of statistics.  This is done so that the nice and load is still
   tracked for the currently running process.  Previously if a niced process
   was added while a non nice process was running the niced process would
   still get a slice since it was not aware of the unnice process.
 - Make adjustments for the sched api changes.

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase