Subject: Re: port-hp300/496: hp300 port panics after "reboot"
To: None <Havard.Eidnes@runit.sintef.no, thorpej@cs.orst.edu>
From: Mike Hibler <mike@cs.utah.edu>
List: port-hp300
Date: 09/25/1994 20:50:51
> To: Havard Eidnes <Havard.Eidnes@runit.sintef.no>
> Cc: port-hp300@NetBSD.ORG
> Subject: Re: port-hp300/496: hp300 port panics after "reboot" 
> From: Jason Thorpe <thorpej@cs.orst.edu>
> Date: Sun, 25 Sep 1994 13:42:55 -0700
> 
> ...
> However, on all of my machines, I have pmap problems if I have 
> MAPPEDCOPY in the kernel config.  Also, all of 
> my 32 meg boxen (with the exception of the 433) are quirky...Like they 
> just `freeze', and occasionally panic with `out of address space', but it 
> always hangs during the dump or before ddb, so that's of no help.
> 
> Seriously, though...yank MAPPEDCOPY if you have it...
> 
I have never seen this in 4.4, but my job mix may be considerably different.
One thing is to make sure all the necessary pieces are there:

locore.s: code in copyin/copyout to divert to the mapped copy routines
vm_machdep.c: the actual mapped copy routines
machdep.c: a check in initcpu() to turn off mapped copy for the 320/350

You don't want this enabled for a 320/350 with a virtually-indexed cache
(setting up the extra kernel mapping to a page creates an alias which
requires cache flushing).

> 
> For my own personal edification (sp?), can someone please enlighten me on 
> just exactly what MAPPEDCOPY is supposed to accomplish?  Thanx in 
> advance...
> 
As Charles said, it avoids cross-address space copies by mapping the
user-mode side of a copyin/copyout into the kernel address space temporarily.
Somewhere, I have written down the results of some timings I did with and
without, and it made a significant difference (primarily for file IO from
the buffer cache).  However, after rummaging around, I cannot find the
piece of paper I wrote it all down on...

Another alternative to putting the kernel/user in the same address space
is to just keep all of physical memory mapped into the kernel.  There are
some words about this in TODO.hp300.