Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 06 Aug 1999 08:55:10 -0600
From:      Wes Peters <wes@softweyr.com>
To:        Mike Smith <mike@smith.net.au>
Cc:        Arun Sharma <adsharma@home.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Excessive assembly code ?
Message-ID:  <37AAF74E.BEB770A9@softweyr.com>
References:  <199908060705.AAA00655@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mike Smith wrote:
> 
> >
> > I wonder if so much assembly code is really necessary for FreeBSD. One
> > argument for minimal usage of assembly code is that it is easier to code
> > non trivial algorithms in C.
> >
> > One such example is the scheduler. Since the decision about which process
> > is going to run next is decided in assembly code, it is restricted to a
> > relatively dumb algorithm of scanning the runqs and picking one. If the
> > mechanism (i.e nuts and bolts of the context switch) is coded in assembly
> > and the policy (which process to pick next) is done in C, the code would
> > be much more maintainable, IMO.
> >
> > How do people feel about it here ?
> 
> I've been studying this just recently.  The "pick the next proc" code
> really should be MI and written carefully in C, yes.  But if you look
> at the code surrounding it, for example, it needs some very careful
> thought.
> 
> Much of the assembly code actually in use is there for performance or
> architecture-related reasons; in many cases if you were to rewrite in C
> you would just end up with a lot of asm() macros...

And the total amount we have now doesn't seem excessive.  Historically,
UNIX has usually had 2-3% of the code in assembly, I doubt we're over that.

There are some things which are still *easier* to do in assembler, especially
on an architecture with port-mapped I/O.

-- 
            "Where am I, and what am I doing in this handbasket?"

Wes Peters                                                         Softweyr LLC
http://softweyr.com/                                           wes@softweyr.com


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?37AAF74E.BEB770A9>