I found a couple of minor nits, but only one real bug.  In i386/swtch.s
    I forgot to change out a WANT_RESCHED for AST_RESCHED:

sw1a:
        call    _chooseproc                     /* trash ecx, edx, ret eax*/
        testl   %eax,%eax
        CROSSJUMP(je, _idle, jne)               /* if no proc, idle */
        movl    %eax,%ecx

        xorl    %eax,%eax
        andl    $~WANT_RESCHED,_astpending

    The problem is that a kernel build is not reporting any errors!   
    WANT_RESCHED does not exist at all, anywhere.  If I change it to 
    a garbage name the kernel still builds.  I don't get it.

    In anycase, please try changing WANT_RESCHED to AST_RESCHED in
    i386/i386/swtch.s and see if that fixes the reported performance
    problems.  If WANT_RESCHED defaults to 0 by being undefined, then
    the reschedule flag is never cleared when a context switch is made
    and this could certainly lead to problems.

    I also found a movb that had to be a movl, but since only the low bits
    were being used anyway this would not have caused any problems.

                                                -Matt



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to