Subject: Recent pmap changes
To: None <port-arm32@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm32
Date: 08/11/2001 14:49:50
Just so people are aware of what's been done to the pmap I thought I'd list 
them here:
Improved locking (not that we actually use it on a uniprocessor, but one day 
:)
vac_me_harder now handles multi-mapped pages, if any of the mappings are 
writable they're all marked as not cacheable. (diff from richard E)
Removed unneeded splvm's
tweaked pmap_clean_page code to only flush the cache if the page is mapped in 
the current pmap  (based on diff from richard E)
Adopted pv entry allocation mechanism from i386.
Layed goundwork for returning ptp's when we've finished with them rather than 
holding onto them till the process exits.
ptp's are now allocated with a uvm object for the pmap, means that we can 
walk a list to free them off in pmap_release.

Basically it's faster than it was a while back, doing a time make configure 
on gmake now gives (with DIAGNOSTICS):
19.1u 41.8s 1:16.58 79.6% 0+0k 22+198io 199pf+0w

compared with 1.5.1 kernel from ftp.netbsd.org (note this is probably unfair 
as we've also got UBC etc now, but still it's what ppl will compare against):
17.8u 44.4s 1:25.75 72.6% 0+0k 491+756io 695pf+0w

So overall -current is looking to be about 10% faster than 1.5.x is, 
interesting to note that current does less page faults and io.

Really we should find some kind of benchmark thats more accurate than this.

Cheers,
Chris