Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Mar 2000 19:48:00 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        Gary Jennejohn <garyj@muc.de>, freebsd-current@FreeBSD.ORG
Subject:   Very weird assembly failure (was Re: UP kernel performance and Matt Dillon's patches)
Message-ID:  <200003290348.TAA56657@apollo.backplane.com>
References:  <200003282137.XAA05281@peedub.muc.de> <200003290308.TAA56364@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
    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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003290348.TAA56657>