[1870] in NetBSD-Development

home help back first fref pref prev next nref lref last post

Re: NetBSD/powerpc and NetBSD/arm ports of AFS

daemon@ATHENA.MIT.EDU (Bill Sommerfeld)
Mon May 24 08:22:10 1999

To: "Charles M. Hannum" <root@ihack.net>
Cc: netbsd-dev@MIT.EDU
In-Reply-To: Message from "Charles M. Hannum" <root@ihack.net> 
   of "Mon, 24 May 1999 02:46:59 EDT." <199905240646.CAA03196@bikini.ihack.net> 
Date: Mon, 24 May 1999 08:21:23 -0400
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>

Oh, one other difference I noted: you used "arm_nbsd1" and "#if
defined(__arm__)" while I used "arm32_nbsd1" and "#ifdef __arm32__".
It's just much simpler for packaging, etc., if the sysnames can be
derived from ${MACHINE_ARCH} values.

> * You should probably adopt my change to make afs_nbsd_initialize() a
>   vfs_init function, so that all of the module initialization is done
>   at boot time when it's linked statically into the kernel.  

Understood; I'll pick this up.

>   I'd also suggest moving all the syscall entry hacking out of
>   afsinit() (i.e. just putting NetBSD-specific code in
>   afs_nbsd_init()), and trying again to make the module unloadable.

"in my copious spare time..."

> * Making the module build on any version (your __NetBSD_Version__
>   hackery) is probably *not* a good idea.  Most version changes *do*
>   require changes in the AFS module.

There's a difference between necessary changes and make-work...

My recollection is that maybe half or more of the minor-version
changes merely require a recompile to deal with a rearrangement of
fields in `struct proc' or some such; most of the rest fail to
compile for other reasons.

I'll throw in a
     
#if __NetBSD_Version__ > xxxx
#error Not known to work on this version of NetBSD yet..
#endif

which will accomplish the same thing without requiring a massive
forever-growing nest of #ifdef's..

> * My ARM context switch is faster.

Not surprising.. not having an architecture reference manual at hand I
wound up coding conservatively.  Though, it could be worse.. unlike
the version in coda 5.x, neither of our versions save registers which
clearly don't need to be saved....

> milquetoast has a NetBSD 1.4B installation.  (Please do NOT change
> this!)  You can boot it from the OFW prompt with `boot scsi/sd@2:0'.

Hmm.  I'd like to be able to release 1.4 bits as well as -current
bits.  Anyone else got a stock 1.4 system?  (I haven't yet whacked the
AFS makefiles so I can cross-build the userland parts against a
different set of libraries...)

> Note that 3.3a has an obvious bug in the PowerPC code: it relies on
> storing two extra registers in struct lwp_context, but there is no
> space allocated for them.

Ouch.  Yeah, I'll look at that carefully.


					- Bill

home help back first fref pref prev next nref lref last post