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/ w...@softweyr.com To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message