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