Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 1998 18:53:40 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        Marius.Bendiksen@scancall.no, rnordier@nordier.com, freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD on i386 memory model
Message-ID:  <199811180253.SAA00416@apollo.backplane.com>
References:   <199811180213.TAA21491@usr01.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help

:
:>     The only differences between a normal call gate and an
:>     interrupt is that an interrupt disables interrupts on call
:>     (cli equivalent), while a call gate does not, and a
:>     call gate has extra garbage to handle argument copying
:>     (which we don't use), while an interrupt does not.
:> 
:>     There are constructs that make call gates sound like a
:>     walk in the park, though... a task gate, for example.
:>     What a holy mess.
:> 
:>     Interrupt gates are definitely faster.
:
:But as SEF notes, a call gate gan go to any address in any ring,
:but an Interrupt can't, so using an interrupt makes for slower
:emulation.
:
:					Terry Lambert
:					terry@lambert.org

    Slower emulation of what?  Not only is the intel ring change
    mechanism badly designed and, in my view, badly broken, leaving
    only ring 0 and ring 3 truely useable, but I believe call
    gates are also much more heavily microcoded then interrupt 
    gates.

    It's both faster and more portable to put the sys call number
    in a register, run through an interrupt gate, and have
    the interrupt procedure dispatch the call then it is to
    try to dispatch the call directly with a callgate. Furthermore,
    FreeBSD and most other UNIXes have to do things before and
    after the syscall which are best handled in one emminently
    cacheable piece of code, making the call gate's functionality 
    worthless.

    Most modern processors have a limited number of supervisor
    entry points precisely because it is more efficient to fan-out
    after the switch to super then it is to try to fan-out
    using the switch to super.

					-Matt

:---
:Any opinions in this posting are my own and not those of my present
:or previous employers.
:
:To Unsubscribe: send mail to majordomo@FreeBSD.org
:with "unsubscribe freebsd-hackers" in the body of the message
:

    Matthew Dillon  Engineering, HiWay Technologies, Inc. & BEST Internet 
                    Communications & God knows what else.
    <dillon@backplane.com> (Please include original email in any response)    

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



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