Re: Kernel diffs

From: Andrew Valencia <vandys_at_nospam.org>
Date: Sun Mar 05 1995 - 21:02:00 PST

(This is Cc to the list, as some of this might be of general interest)

Hi, Dave.

Got your performance diffs (+ my hacks to your diffs) running over the
weekend. Biggest problem was the new sm_to_m() didn't move the sender back
into m_sender, leaving the servers rather clueless as to what value to
msg_accept(). I'm still digging through the rest of the diffs you sent to
figure out how it was working for you.

syscall argument handling was indeed broken, as was copyin/copyout, which no
longer used the t_probe to protect themselves. This was all rather hidden
by the fault handling code, which assumed that any reference to a virtual
address in the 0x80000000..0xffffffff range should result in the current
process being killed. Very questionable in any case, but spectacular when
it happens from an interrupt handler with no current process!

MALLOC()/FREE() are now inline (if not DEBUG) accesses to the buckets. The
code is good, but gcc 2.X would do better, as 1.X has limitations in static
evaluation within nested inline functions. Limitations with expansion of
nested inline functions in general, in fact. Perhaps it's finally time to
move on to 2.X, although I fear my 8 meg machine is too small. If I can't
compile on my laptop development will take a big hit; I do most of my work
riding the train to work. How big *is* 2.X, anyway?

I also finally got around to the source reorg, with os->src/os,
bin.src->src/bin, libc->src/lib, and the source parts of boot->src/boot.
bin.src/test is now much more sensibly src/bin/cmds. We should sync up with
source very soon, to avoid drift as much as possible.

A friend has assembled a 50 Mhz 486 box for use by the VSTa project on the
Internet. It's outside the firewall, so we can implement any networking
scheme we'd like. I'd like to export the /vsta filesystem and allow folks
to do source code control over a networked VSTa filesystem. This requires
the small matter of a /inet server and some sort of scheme for mapping the
filesystem protocol onto TCP messages. I think having that box sitting
there will bother me until I get it running!

Oh, yes, fgetc() wasn't binary clean. Those internal stdio buffers should
be uchar. I wrote a quick strings(1) which made this obvious.

                                                Regards,
                                                Andy
Received on Sun Mar 5 20:22:23 1995

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:17 PDT