Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Feb 2004 11:17:54 +1000 (EST)
From:      Andy Farkas <andyf@speednet.com.au>
To:        John Baldwin <jhb@freebsd.org>
Cc:        cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/i386/i386 apic_vector.s src/sys/i386/isa atpic_vector.s
Message-ID:  <20040202110437.N88162@hewey.af.speednet.com.au>
In-Reply-To: <200401282044.i0SKi8Y6063747@repoman.freebsd.org>
References:  <200401282044.i0SKi8Y6063747@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 28 Jan 2004, John Baldwin wrote:

>   Modified files:
>     sys/i386/i386        apic_vector.s
>     sys/i386/isa         atpic_vector.s
>   Log:
>   Optimize the i386 interrupt entry code to not reload the segment registers
>   if they already contain the correct kernel selectors.

What effect on performance does this change have? It seems to be a rather
significant change to an important code path, or am I totally confused..?

Also, you've changed:

 movl    $KDSEL, %eax ;  /* reload with kernel's data segment */

and,

 movl    $KPSEL, %eax ;  /* reload with per-CPU data segment */

to:

 mov     $KDSEL,%ax ;    /* load kernel ds, es and fs */

and,

 mov     $KPSEL,%ax ;


Is this part of the optimisations? Or, could you briefly explain this
change? Thank you.

--

 :{ andyf@speednet.com.au

        Andy Farkas
    System Administrator
   Speednet Communications
 http://www.speednet.com.au/




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