a serious error in sched_ule.c?

Robert Watson rwatson at freebsd.org
Tue Mar 9 08:42:43 PST 2004


On 9 Mar 2004, Bin Ren wrote:

> Hi, all:
> 
> I've been reading sched_ule.c and seem to find a serious error:
> 
> in 'sched_slice()':
> 
>          * Rationale:
>          * KSEs in interactive ksegs get the minimum slice so that we
>          * quickly notice if it abuses its advantage.
> 
> Then, there is:
> 
>         if (!SCHED_INTERACTIVE(kg)) {
>                 .....
>                 .....
>         } else
>                 ke->ke_slice = SCHED_SLICE_INTERACTIVE;
> 
> Then, at the beginning of the file, there is:
> 
> #define SCHED_SLICE_INTERACTIVE         (slice_max)
> 
> 
> (slice_max) for interactive KSEs???? Either this is a serious mistake or 
> I'm seriously missing sth here.

I believe this is a synchronization error in the comment and the code. 
The code was changed to provide a maximum slice to interactive
applications because non-CPU intensive X11 applications will be marked as
interactive, but redraws get interrupted in a short slice.  When the
change went in to increase the time slice I saw an observable improvement
in the redraws of X11 apps under load.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Senior Research Scientist, McAfee Research





More information about the freebsd-hackers mailing list