The NetBSD Project

CVS log for src/sys/arch/arm/arm32/pmap.c

[BACK] Up to [cvs.netbsd.org] / src / sys / arch / arm / arm32

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.224.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:06:04 2012 UTC (5 weeks, 4 days ago) by yamt
Branch: yamt-pagecache
Changes since 1.224: +75 -104 lines
Diff to previous 1.224 (colored) next main 1.225 (colored)

sync with head

Revision 1.224.6.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:31:23 2012 UTC (3 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.224: +75 -104 lines
Diff to previous 1.224 (colored) next main 1.225 (colored)

merge to -current.

Revision 1.228 / (download) - annotate - [select for diffs], Sun Jan 29 20:16:16 2012 UTC (3 months, 3 weeks ago) by he
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, HEAD
Changes since 1.227: +4 -2 lines
Diff to previous 1.227 (colored)

Only declare helper variable which is only used in KASSERT() if
DIAGNOSTIC is defined, to avoid "variable defined but never used"
warning if DIAGNOSTIC isn't defined, and KASSERT() expands to
nothing.

Revision 1.227 / (download) - annotate - [select for diffs], Sat Jan 28 16:16:41 2012 UTC (3 months, 3 weeks ago) by matt
Branch: MAIN
Changes since 1.226: +36 -5 lines
Diff to previous 1.226 (colored)

Since we don't do MULTIPROCESSOR, and hence preemption, locking the pvlists
doesn't really matter.

Revision 1.226 / (download) - annotate - [select for diffs], Sat Jan 28 00:11:46 2012 UTC (3 months, 3 weeks ago) by matt
Branch: MAIN
Changes since 1.225: +38 -100 lines
Diff to previous 1.225 (colored)

Don't use simple locks.

Revision 1.225 / (download) - annotate - [select for diffs], Fri Jan 27 19:48:38 2012 UTC (3 months, 4 weeks ago) by para
Branch: MAIN
Changes since 1.224: +6 -6 lines
Diff to previous 1.224 (colored)

extending vmem(9) to be able to allocated resources for it's own needs.
simplifying uvm_map handling (no special kernel entries anymore no relocking)
make malloc(9) a thin wrapper around kmem(9)
(with private interface for interrupt safety reasons)

releng@ acknowledged

Revision 1.224 / (download) - annotate - [select for diffs], Fri Jul 1 20:57:45 2011 UTC (10 months, 3 weeks ago) by dyoung
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.223: +3 -3 lines
Diff to previous 1.223 (colored)

#include <sys/bus.h> instead of <machine/bus.h>.

Revision 1.223 / (download) - annotate - [select for diffs], Thu Jun 30 20:09:19 2011 UTC (10 months, 3 weeks ago) by wiz
Branch: MAIN
Changes since 1.222: +3 -3 lines
Diff to previous 1.222 (colored)

dependant -> dependent

Revision 1.221.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:18:59 2011 UTC (11 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.221: +20 -15 lines
Diff to previous 1.221 (colored) next main 1.222 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.222 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:39 2011 UTC (11 months, 2 weeks ago) by rmind
Branch: MAIN
Changes since 1.221: +20 -15 lines
Diff to previous 1.221 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.219.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:05:01 2011 UTC (11 months, 2 weeks ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.219: +122 -4 lines
Diff to previous 1.219 (colored) next main 1.220 (colored)

Sync with HEAD.

Revision 1.212.2.6 / (download) - annotate - [select for diffs], Thu May 19 03:42:58 2011 UTC (12 months, 1 week ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.5: +12 -7 lines
Diff to previous 1.212.2.5 (colored) to branchpoint 1.212 (colored) next main 1.213 (colored)

Implement sharing of vnode_t::v_interlock amongst vnodes:
- Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode().
- Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that.
- Use sharing in tmpfs and layerfs for underlying object.
- Simplify locking in ubc_fault().
- Sprinkle some asserts.

Discussed with ad@.

Revision 1.212.2.5 / (download) - annotate - [select for diffs], Thu Apr 21 01:40:51 2011 UTC (13 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.4: +84 -0 lines
Diff to previous 1.212.2.4 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.221 / (download) - annotate - [select for diffs], Thu Mar 10 07:47:14 2011 UTC (14 months, 2 weeks ago) by bsh
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, jym-xensuspend-nbase, jym-xensuspend-base, cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.220: +86 -2 lines
Diff to previous 1.220 (colored)

Preliminary ARM11 MPCore support.

I have confirmed this commit doesn't affect existing evbarm kernels by
comparing binaries.

Revision 1.212.2.4 / (download) - annotate - [select for diffs], Sat Mar 5 20:49:31 2011 UTC (14 months, 3 weeks ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.3: +478 -398 lines
Diff to previous 1.212.2.3 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.219.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 15:09:32 2011 UTC (14 months, 3 weeks ago) by bouyer
Branch: bouyer-quota2
Changes since 1.219: +36 -2 lines
Diff to previous 1.219 (colored) next main 1.220 (colored)

Sync with HEAD

Revision 1.220 / (download) - annotate - [select for diffs], Mon Feb 28 10:03:49 2011 UTC (14 months, 3 weeks ago) by macallan
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Changes since 1.219: +38 -4 lines
Diff to previous 1.219 (colored)

implement arm32_pmap_flags() to allow mappings with write buffering enabled,
mostly for video memory
Tested on shark

Revision 1.211.2.23 / (download) - annotate - [select for diffs], Mon Nov 15 15:11:53 2010 UTC (18 months, 1 week ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.22: +0 -7 lines
Diff to previous 1.211.2.22 (colored) to branchpoint 1.211 (colored) next main 1.212 (colored)

Revert xmd(4).

Revision 1.219 / (download) - annotate - [select for diffs], Fri Nov 12 07:59:25 2010 UTC (18 months, 1 week ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base7, uebayasi-xip-base6, matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.218: +0 -2 lines
Diff to previous 1.218 (colored)

Put VM_PAGE_TO_MD() definition in one place.  No functional changes.

Revision 1.218 / (download) - annotate - [select for diffs], Wed Nov 10 09:27:22 2010 UTC (18 months, 2 weeks ago) by uebayasi
Branch: MAIN
Changes since 1.217: +6 -5 lines
Diff to previous 1.217 (colored)

Use more VM_PHYSMEM_*() accessors.  No functional changes.

Revision 1.211.2.22 / (download) - annotate - [select for diffs], Wed Nov 10 08:59:13 2010 UTC (18 months, 2 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.21: +2 -2 lines
Diff to previous 1.211.2.21 (colored) to branchpoint 1.211 (colored)

Fix thinko; make vm_physseg ptr swap really work.

Revision 1.211.2.21 / (download) - annotate - [select for diffs], Wed Nov 10 08:04:59 2010 UTC (18 months, 2 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.20: +0 -1 lines
Diff to previous 1.211.2.20 (colored) to branchpoint 1.211 (colored)

opt_xip.h isn't needed any more here.

Revision 1.211.2.20 / (download) - annotate - [select for diffs], Wed Nov 10 03:36:26 2010 UTC (18 months, 2 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.19: +2 -2 lines
Diff to previous 1.211.2.19 (colored) to branchpoint 1.211 (colored)

Always use VM_PHYSMEM_PTR().

Revision 1.211.2.19 / (download) - annotate - [select for diffs], Sat Nov 6 08:08:14 2010 UTC (18 months, 2 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.18: +4 -2 lines
Diff to previous 1.211.2.18 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.217 / (download) - annotate - [select for diffs], Wed Nov 3 16:59:19 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base5, uebayasi-xip-base4
Changes since 1.216: +1 -1 lines
Diff to previous 1.216 (colored)

Fix build of IXM1200 too.  Pointed out by cegger, thanks.

Revision 1.216 / (download) - annotate - [select for diffs], Tue Nov 2 06:33:22 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: MAIN
Changes since 1.215: +2 -2 lines
Diff to previous 1.215 (colored)

Fix build of XScale.

Revision 1.211.2.18 / (download) - annotate - [select for diffs], Sun Oct 31 03:46:16 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.17: +1 -1 lines
Diff to previous 1.211.2.17 (colored) to branchpoint 1.211 (colored)

We already have a flag PMAP_NOCACHE.  s/PMAP_UNMANAGED/PMAN_NOCACHE/.
Pointed out by Chuck Silvers, thanks.

Revision 1.211.2.17 / (download) - annotate - [select for diffs], Sun Oct 31 03:43:02 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.16: +54 -45 lines
Diff to previous 1.211.2.16 (colored) to branchpoint 1.211 (colored)

More struct vm_page * -> struct vm_page_md * adjustments.

Revision 1.215 / (download) - annotate - [select for diffs], Sat Oct 30 16:14:08 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: MAIN
Changes since 1.214: +435 -388 lines
Diff to previous 1.214 (colored)

Pass struct vm_page_md * where possible.

This causes 1% code increase, mainly because additional argument
(paddr_t) affects register usage.  This will be fixed when per-page
data structure (struct vm_page) is redone, and physical address
can be retrieved from struct vm_page_md *.

Tested on (uncommitted) i.MX35 (ARM1136).

Revision 1.211.2.16 / (download) - annotate - [select for diffs], Sat Oct 30 08:41:06 2010 UTC (18 months, 3 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.15: +7 -0 lines
Diff to previous 1.211.2.15 (colored) to branchpoint 1.211 (colored)

Implement pmap_physload_device(9) to replace xmd(4) MD backend.
Implement pmap_mmap(9) and use it from mem(4) and xmd(4).

Revision 1.211.2.15 / (download) - annotate - [select for diffs], Tue Aug 17 06:44:02 2010 UTC (21 months, 1 week ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.14: +92 -22 lines
Diff to previous 1.211.2.14 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.173.2.4 / (download) - annotate - [select for diffs], Wed Aug 11 22:51:39 2010 UTC (21 months, 2 weeks ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.3: +94 -24 lines
Diff to previous 1.173.2.3 (colored) to branchpoint 1.173 (colored) next main 1.174 (colored)

sync with head.

Revision 1.211.2.14 / (download) - annotate - [select for diffs], Wed Jul 7 16:35:25 2010 UTC (22 months, 2 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.13: +0 -1 lines
Diff to previous 1.211.2.13 (colored) to branchpoint 1.211 (colored)

Clean up; merge options DIRECT_PAGE into options XIP.

Revision 1.212.2.3 / (download) - annotate - [select for diffs], Sat Jul 3 01:19:13 2010 UTC (22 months, 3 weeks ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.2: +89 -19 lines
Diff to previous 1.212.2.2 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.214 / (download) - annotate - [select for diffs], Wed Jun 16 22:06:53 2010 UTC (23 months, 1 week ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.213: +89 -19 lines
Diff to previous 1.213 (colored)

PR port-arm/43299: Support added for igepv2/cortexa8/omap3530

Apply patch from PR, with build fixes. ok skrll, matt

Revision 1.211.2.13 / (download) - annotate - [select for diffs], Mon May 31 13:26:36 2010 UTC (23 months, 3 weeks ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.12: +1 -1 lines
Diff to previous 1.211.2.12 (colored) to branchpoint 1.211 (colored)

Re-define the definition of "device page"; device pages are pages of
device memory.  Pages which don't have vm_page (== can't be used for
generic use), but whose PV are tracked, are called "direct pages" from
now.

Revision 1.212.2.2 / (download) - annotate - [select for diffs], Sun May 30 05:16:37 2010 UTC (23 months, 3 weeks ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.1: +7 -7 lines
Diff to previous 1.212.2.1 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.213 / (download) - annotate - [select for diffs], Fri May 14 05:02:05 2010 UTC (2 years ago) by cegger
Branch: MAIN
Changes since 1.212: +7 -7 lines
Diff to previous 1.212 (colored)

Move PMAP_KMPAGE to be used in pmap_kenter_pa flags argument.
'Looks good to me' gimpy@

Revision 1.211.2.12 / (download) - annotate - [select for diffs], Fri Apr 30 14:39:07 2010 UTC (2 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.11: +1 -1 lines
Diff to previous 1.211.2.11 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.211.2.11 / (download) - annotate - [select for diffs], Wed Apr 28 08:31:05 2010 UTC (2 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.10: +4 -3 lines
Diff to previous 1.211.2.10 (colored) to branchpoint 1.211 (colored)

Always use struct vm_physseg *vm_physmem_ptrs[] in MD code.

Revision 1.211.2.10 / (download) - annotate - [select for diffs], Tue Apr 27 07:19:28 2010 UTC (2 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.9: +2 -1 lines
Diff to previous 1.211.2.9 (colored) to branchpoint 1.211 (colored)

Support PMAP_UNMANAGED in some pmaps.

(Others should be converted eventually, but no problem while managed
device page is not used.)

Revision 1.187.8.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:33:52 2010 UTC (2 years, 1 month ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.187: +21 -3 lines
Diff to previous 1.187 (colored) next main 1.188 (colored)

sync to netbsd-5

Revision 1.212.2.1 / (download) - annotate - [select for diffs], Tue Mar 16 15:38:02 2010 UTC (2 years, 2 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212: +13 -13 lines
Diff to previous 1.212 (colored)

Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.173.2.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:02:04 2010 UTC (2 years, 2 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.2: +125 -108 lines
Diff to previous 1.173.2.2 (colored) to branchpoint 1.173 (colored)

sync with head

Revision 1.211.2.9 / (download) - annotate - [select for diffs], Thu Feb 25 03:30:22 2010 UTC (2 years, 2 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.8: +4 -2 lines
Diff to previous 1.211.2.8 (colored) to branchpoint 1.211 (colored)

A few more VM_PAGE_TO_MD().

Revision 1.211.2.8 / (download) - annotate - [select for diffs], Sat Feb 20 16:48:57 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.7: +2 -0 lines
Diff to previous 1.211.2.7 (colored) to branchpoint 1.211 (colored)

Fix \!DIAGNOSTIC build.

Revision 1.212 / (download) - annotate - [select for diffs], Mon Feb 15 07:55:33 2010 UTC (2 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.211: +3 -3 lines
Diff to previous 1.211 (colored)

Typo in comment.

Revision 1.211.2.7 / (download) - annotate - [select for diffs], Wed Feb 10 15:48:28 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.6: +5 -4 lines
Diff to previous 1.211.2.6 (colored) to branchpoint 1.211 (colored)

Adjust previous.

Revision 1.211.2.6 / (download) - annotate - [select for diffs], Wed Feb 10 15:37:48 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.5: +185 -159 lines
Diff to previous 1.211.2.5 (colored) to branchpoint 1.211 (colored)

Replace all remaining pg->mdpage references with VM_PAGE_TO_MD().  Now struct
vm_page * is fully opaque.

Revision 1.211.2.5 / (download) - annotate - [select for diffs], Wed Feb 10 14:18:30 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.4: +2 -15 lines
Diff to previous 1.211.2.4 (colored) to branchpoint 1.211 (colored)

Fix previous again & use VM_PAGE_TO_MD() where appropriate.

Revision 1.211.2.4 / (download) - annotate - [select for diffs], Wed Feb 10 13:58:08 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.3: +175 -155 lines
Diff to previous 1.211.2.3 (colored) to branchpoint 1.211 (colored)

Convert pmap_enter() and pmap_vac_me_harder().

Revision 1.211.2.3 / (download) - annotate - [select for diffs], Wed Feb 10 13:26:22 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.2: +19 -19 lines
Diff to previous 1.211.2.2 (colored) to branchpoint 1.211 (colored)

Convert pmap_enter_pv().

Revision 1.211.2.2 / (download) - annotate - [select for diffs], Wed Feb 10 13:23:57 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.1: +49 -49 lines
Diff to previous 1.211.2.1 (colored) to branchpoint 1.211 (colored)

Convert pmap_remove_pv() / pmap_modify_pv() to take struct vm_page_md *.

Revision 1.211.2.1 / (download) - annotate - [select for diffs], Wed Feb 10 12:53:26 2010 UTC (2 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211: +22 -22 lines
Diff to previous 1.211 (colored)

Start changing this to be ready for device page (XIP).  The basic rule is
device pages don't have struct vm_page * objects.  Instead per-page data
(mainly PV mappings) is rooted from the global struct vm_page_md array.

Convert 2 functions to take struct vm_page_md * instead of struct vm_page *.

Revision 1.211 / (download) - annotate - [select for diffs], Sat Jan 2 07:53:29 2010 UTC (2 years, 4 months ago) by he
Branch: MAIN
CVS Tags: uebayasi-xip-base
Branch point for: uebayasi-xip
Changes since 1.210: +3 -3 lines
Diff to previous 1.210 (colored)

Remove a shadowed and unused local declaration so that this builds again.

Revision 1.210 / (download) - annotate - [select for diffs], Fri Jan 1 02:32:28 2010 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.209: +6 -0 lines
Diff to previous 1.209 (colored)

Sprinkle assertions after calling pmap_get_l2_bucket().

Revision 1.209 / (download) - annotate - [select for diffs], Thu Dec 31 18:34:56 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.208: +5 -5 lines
Diff to previous 1.208 (colored)

Use pmap_is_current() where appropriate.  No functional changes.

Revision 1.208 / (download) - annotate - [select for diffs], Thu Dec 31 16:00:53 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.207: +1 -2 lines
Diff to previous 1.207 (colored)

pmap_page_remove(): remove an unused local variable; no functional changes.

Revision 1.207 / (download) - annotate - [select for diffs], Thu Dec 31 02:36:14 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.206: +6 -6 lines
Diff to previous 1.206 (colored)

Correct assertions for PMAP_CACHE_VIPT code; if page coloring is disabled
(arm_cache_prefer_mask == 0), pvh_attrs has never PVF_COLORED, so don't assert
it.  No functional changes.

Revision 1.206 / (download) - annotate - [select for diffs], Mon Dec 28 15:13:57 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.205: +19 -16 lines
Diff to previous 1.205 (colored)

Indent.

Revision 1.205 / (download) - annotate - [select for diffs], Mon Dec 28 15:02:59 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.204: +36 -36 lines
Diff to previous 1.204 (colored)

Always name struct pv_entry * as pv, not pve.  No binary change.

Revision 1.204 / (download) - annotate - [select for diffs], Sun Dec 27 05:14:56 2009 UTC (2 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.203: +24 -3 lines
Diff to previous 1.203 (colored)

Add write-through cache work-around for ARM11 as well as ARM9/ARM10.  Analyzed
& tested on i.MX35 with help from Tsubai Masanari.

Revision 1.187.4.1 / (download) - annotate - [select for diffs], Thu Dec 3 09:26:59 2009 UTC (2 years, 5 months ago) by sborrill
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, matt-nb5-pq3-base, matt-nb5-pq3
Changes since 1.187: +21 -3 lines
Diff to previous 1.187 (colored) next main 1.188 (colored)

Pull up the following revisions(s) (requested by scw in ticket #1168):
	sys/arch/arm/arm32/pmap.c:	revision 1.203

Work-around a possible process exit corner case which can leave stale
data in the cache after a context-switch. Addresses kern/41058.

Revision 1.203 / (download) - annotate - [select for diffs], Sat Nov 28 11:44:45 2009 UTC (2 years, 5 months ago) by scw
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.202: +21 -3 lines
Diff to previous 1.202 (colored)

Apply some band-aid to pmap_activate() for PR kern/41058:

There's a corner case here which can leave turds in the cache as
reported in kern/41058. They're probably left over during tear-down and
switching away from an exiting process. Until the root cause is identified
and fixed, zap the cache when switching pmaps. This will result in a few
unnecessary cache flushes, but that's better than silently corrupting data.

Also remove an extraneous return statement in pmap_page_protect() which
crept in during the matt-armv6 merge.

Revision 1.202 / (download) - annotate - [select for diffs], Sat Nov 21 20:32:18 2009 UTC (2 years, 6 months ago) by rmind
Branch: MAIN
Changes since 1.201: +2 -3 lines
Diff to previous 1.201 (colored)

Use lwp_getpcb() on ARM (and acorn26/32), clean from struct user usage.

Revision 1.201 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:41 2009 UTC (2 years, 6 months ago) by cegger
Branch: MAIN
Changes since 1.200: +6 -5 lines
Diff to previous 1.200 (colored)

Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.

Revision 1.200 / (download) - annotate - [select for diffs], Thu Oct 22 19:50:55 2009 UTC (2 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.199: +9 -20 lines
Diff to previous 1.199 (colored)

Simplify pmap_remove() a little by avoiding pmap_do_remove() layer, since
possibility to skip wired mappings is not needed anymore.  Apart from that,
no functional differences are intended.

Revision 1.199 / (download) - annotate - [select for diffs], Wed Oct 21 21:11:59 2009 UTC (2 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.198: +2 -21 lines
Diff to previous 1.198 (colored)

Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.

Revision 1.195.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:16:12 2009 UTC (3 years ago) by jym
Branch: jym-xensuspend
Changes since 1.195: +10 -11 lines
Diff to previous 1.195 (colored) next main 1.196 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.173.2.2 / (download) - annotate - [select for diffs], Mon May 4 08:10:38 2009 UTC (3 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.1: +644 -292 lines
Diff to previous 1.173.2.1 (colored) to branchpoint 1.173 (colored)

sync with head.

Revision 1.187.2.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:33:43 2009 UTC (3 years ago) by skrll
Branch: nick-hppapmap
Changes since 1.187.2.1: +10 -11 lines
Diff to previous 1.187.2.1 (colored) to branchpoint 1.187 (colored) next main 1.188 (colored)

Sync with HEAD.

Revision 1.198 / (download) - annotate - [select for diffs], Tue Apr 21 21:29:58 2009 UTC (3 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base
Changes since 1.197: +5 -5 lines
Diff to previous 1.197 (colored)

change pmap flags argument from int to u_int.
discussed with christos@ on source-changes-d@

Revision 1.197 / (download) - annotate - [select for diffs], Sun Mar 15 22:20:10 2009 UTC (3 years, 2 months ago) by cegger
Branch: MAIN
Changes since 1.196: +3 -3 lines
Diff to previous 1.196 (colored)

ansify function definitions

Revision 1.196 / (download) - annotate - [select for diffs], Mon Mar 9 08:42:36 2009 UTC (3 years, 2 months ago) by nonaka
Branch: MAIN
Changes since 1.195: +6 -7 lines
Diff to previous 1.195 (colored)

avail_start and avail_end is paddr_t.

Revision 1.187.2.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:15:57 2009 UTC (3 years, 4 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.187: +192 -109 lines
Diff to previous 1.187 (colored)

Sync with HEAD.

Revision 1.171.6.7 / (download) - annotate - [select for diffs], Sat Jan 17 13:27:52 2009 UTC (3 years, 4 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.6: +190 -107 lines
Diff to previous 1.171.6.6 (colored) to branchpoint 1.171 (colored) next main 1.172 (colored)

Sync with HEAD.

Revision 1.195 / (download) - annotate - [select for diffs], Thu Jan 8 01:42:48 2009 UTC (3 years, 4 months ago) by matt
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base
Branch point for: jym-xensuspend
Changes since 1.194: +16 -2 lines
Diff to previous 1.194 (colored)

When allocating a KMPAGE and it has multiple colors, make sure to flush them.
Add some more KASSERTs for multiple colors (or lack thereof).

Revision 1.194 / (download) - annotate - [select for diffs], Tue Dec 30 05:51:19 2008 UTC (3 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.193: +162 -103 lines
Diff to previous 1.193 (colored)

Reclaim PVF_KNC in VIPT to be PVF_MULTCLR (page has multiple colors).
Track when a page is mapping in multiple colors and deal with the ramifications.
When a page's MOD attribute is cleared, clean it from the cache.
Fix a logic inversion.

With these changes, the TI SDP2420 H4 board can successfully natively build a
TISDP2420 kernel.

Revision 1.180.2.2 / (download) - annotate - [select for diffs], Sat Dec 13 01:13:01 2008 UTC (3 years, 5 months ago) by haad
Branch: haad-dm
Changes since 1.180.2.1: +0 -6480 lines
Diff to previous 1.180.2.1 (colored) next main 1.181 (colored)

Update haad-dm branch to haad-dm-base2.

Revision 1.193 / (download) - annotate - [select for diffs], Wed Dec 10 11:10:18 2008 UTC (3 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: haad-nbase2, haad-dm-base2, haad-dm-base
Changes since 1.192: +3 -3 lines
Diff to previous 1.192 (colored)

Make kernel_pmap_ptr a const.  Requested by steve_martin.

Revision 1.192 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:44 2008 UTC (3 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.191: +4 -3 lines
Diff to previous 1.191 (colored)

Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module.  pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.

Revision 1.191 / (download) - annotate - [select for diffs], Wed Nov 19 06:24:04 2008 UTC (3 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: ad-audiomp2-base, ad-audiomp2
Changes since 1.190: +7 -4 lines
Diff to previous 1.190 (colored)

Allocate /dev/mem's page in pmap_init.  Mark /dev/mem as MPSAFE.  Ansify.

Revision 1.190 / (download) - annotate - [select for diffs], Wed Nov 12 12:35:57 2008 UTC (3 years, 6 months ago) by ad
Branch: MAIN
Changes since 1.189: +3 -3 lines
Diff to previous 1.189 (colored)

Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.

Revision 1.189 / (download) - annotate - [select for diffs], Tue Nov 4 07:21:24 2008 UTC (3 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.188: +5 -2 lines
Diff to previous 1.188 (colored)

Use a mutex to control access DEV_MEM.

Revision 1.188 / (download) - annotate - [select for diffs], Tue Nov 4 07:10:01 2008 UTC (3 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.187: +9 -6 lines
Diff to previous 1.187 (colored)

Protect some code with if (pg) { .. }

Revision 1.180.2.1 / (download) - annotate - [select for diffs], Sun Oct 19 22:15:41 2008 UTC (3 years, 7 months ago) by haad
Branch: haad-dm
Changes since 1.180: +459 -232 lines
Diff to previous 1.180 (colored)

Sync with HEAD.

Revision 1.175.2.3 / (download) - annotate - [select for diffs], Fri Oct 10 22:29:03 2008 UTC (3 years, 7 months ago) by skrll
Branch: wrstuden-revivesa
Changes since 1.175.2.2: +3 -3 lines
Diff to previous 1.175.2.2 (colored) to branchpoint 1.175 (colored) next main 1.176 (colored)

Sync with HEAD.

Revision 1.171.6.6 / (download) - annotate - [select for diffs], Sun Oct 5 20:11:25 2008 UTC (3 years, 7 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.5: +1 -1 lines
Diff to previous 1.171.6.5 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.187 / (download) - annotate - [select for diffs], Sun Sep 28 21:27:11 2008 UTC (3 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5, matt-nb5-mips64
Changes since 1.186: +3 -3 lines
Diff to previous 1.186 (colored)

Typo in comment.

Revision 1.171.6.5 / (download) - annotate - [select for diffs], Sun Sep 28 10:39:47 2008 UTC (3 years, 7 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.4: +469 -207 lines
Diff to previous 1.171.6.4 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.175.2.2 / (download) - annotate - [select for diffs], Thu Sep 18 04:33:18 2008 UTC (3 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.175.2.1: +479 -209 lines
Diff to previous 1.175.2.1 (colored) to branchpoint 1.175 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.186 / (download) - annotate - [select for diffs], Thu Aug 14 14:54:32 2008 UTC (3 years, 9 months ago) by matt
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-3, wrstuden-revivesa-base-2
Changes since 1.185: +42 -13 lines
Diff to previous 1.185 (colored)

Now that we track pages used by any of the kernel memory allocators,
keep a count of them and export it as a sysctl node machdep.kmpages

Revision 1.185 / (download) - annotate - [select for diffs], Wed Aug 13 06:05:54 2008 UTC (3 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.184: +72 -60 lines
Diff to previous 1.184 (colored)

Fix a few more corner cases.  Always KMPAGE or pages with unmanaged writeable
kernel mappings as modified.  Only ever set DIRTY bit is DMOD is true and
NC is false.  Don't modify unmanaged mappings in pmap_clearbit.

Revision 1.184 / (download) - annotate - [select for diffs], Fri Aug 8 06:21:09 2008 UTC (3 years, 9 months ago) by dogcow
Branch: MAIN
Changes since 1.183: +3 -3 lines
Diff to previous 1.183 (colored)

fix "warning: 'npv' may be used uninitialized in this function"

Revision 1.183 / (download) - annotate - [select for diffs], Wed Aug 6 19:13:45 2008 UTC (3 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.182: +226 -107 lines
Diff to previous 1.182 (colored)

Change pv_entries to use SLIST.

For VIPT caches, keep track of when pages are dirty so that their content
can be flushed back to main memory.  This is done when the page is
read-only mapped by more than 1 color.  Pages become when either their
modified bit gets set or an unmanaged writeable page is mapped.  When
a page in unmapped or changed to read-only, run pmap_vac_me_harder in
case the page can be mapped read-only.

Thanks are given to Imre Deak for giving me the idea to assert for PVF_DIRTY.

Revision 1.176.2.4 / (download) - annotate - [select for diffs], Fri Jul 18 16:37:26 2008 UTC (3 years, 10 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.3: +244 -177 lines
Diff to previous 1.176.2.3 (colored) next main 1.177 (colored)

Sync with head.

Revision 1.182 / (download) - annotate - [select for diffs], Wed Jul 16 00:19:57 2008 UTC (3 years, 10 months ago) by matt
Branch: MAIN
CVS Tags: simonb-wapbl-nbase, simonb-wapbl-base
Changes since 1.181: +243 -177 lines
Diff to previous 1.181 (colored)

Revamp bookkeeping for pages entered by pmap_kenter_pa.  Keep track of them
on pvlists so that the cacheability can be properly tracked.

Revision 1.181 / (download) - annotate - [select for diffs], Wed Jul 9 23:22:15 2008 UTC (3 years, 10 months ago) by scw
Branch: MAIN
Changes since 1.180: +3 -2 lines
Diff to previous 1.180 (colored)

When dealing with 'cleanlist_idx == PMAP_REMOVE_CLEAN_LIST_SIZE' in
pmap_do_remove(), make sure to use PTE_SYNC() for each rolled-back
PTE on the list.

Fixes potential MMU inconsistencies on some ARM platforms where
page-tables are mapped write-back.

Revision 1.176.2.3 / (download) - annotate - [select for diffs], Thu Jul 3 18:37:51 2008 UTC (3 years, 10 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.2: +51 -16 lines
Diff to previous 1.176.2.2 (colored)

Sync with head.

Revision 1.180 / (download) - annotate - [select for diffs], Thu Jul 3 13:02:12 2008 UTC (3 years, 10 months ago) by matt
Branch: MAIN
Branch point for: haad-dm
Changes since 1.179: +10 -4 lines
Diff to previous 1.179 (colored)

Use the same login in pmap_kenter_pa when removing an unmamanged mapping
as in pmap_kremove (otherwise kro_mappings will become incorrect).

Revision 1.179 / (download) - annotate - [select for diffs], Thu Jul 3 06:13:41 2008 UTC (3 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.178: +43 -14 lines
Diff to previous 1.178 (colored)

For armv6(VIPT), change the rules for mapping via kenter_pa.  Allow readonly
pages to be mapped by different cache color indexes.

Revision 1.171.6.4 / (download) - annotate - [select for diffs], Sun Jun 29 09:32:54 2008 UTC (3 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.3: +10 -2 lines
Diff to previous 1.171.6.3 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.176.2.2 / (download) - annotate - [select for diffs], Fri Jun 27 15:11:16 2008 UTC (3 years, 10 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.1: +10 -2 lines
Diff to previous 1.176.2.1 (colored)

Sync with head.

Revision 1.178 / (download) - annotate - [select for diffs], Tue Jun 24 22:00:32 2008 UTC (3 years, 11 months ago) by scw
Branch: MAIN
Changes since 1.177: +10 -2 lines
Diff to previous 1.177 (colored)

In pmap_deactivate(), if the process is exiting make sure the next call
to pmap_activate() performs a full MMU context-switch and cache flush,
which might otherwise be skipped.

Fixes ARM_LOW_VECTORS problem reported in PR port-arm/38950.

Revision 1.175.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:30:10 2008 UTC (3 years, 11 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.175: +5 -5 lines
Diff to previous 1.175 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.176.2.1 / (download) - annotate - [select for diffs], Wed Jun 18 16:32:38 2008 UTC (3 years, 11 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176: +4 -4 lines
Diff to previous 1.176 (colored)

Sync with head.

Revision 1.172.2.2 / (download) - annotate - [select for diffs], Tue Jun 17 09:13:55 2008 UTC (3 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.172.2.1: +5 -5 lines
Diff to previous 1.172.2.1 (colored) to branchpoint 1.172 (colored) next main 1.173 (colored)

sync with head.

Revision 1.177 / (download) - annotate - [select for diffs], Tue Jun 17 08:04:26 2008 UTC (3 years, 11 months ago) by chris
Branch: MAIN
CVS Tags: yamt-pf42-base4, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Changes since 1.176: +4 -4 lines
Diff to previous 1.176 (colored)

Fix two KASSERT(value | (C1|C2)) to KASSERT(value & (C1|C2)) so that it
tests for something, rather than always being true.

Pointed out by Andy Shevchenko in:
http://mail-index.netbsd.org/port-arm/2008/06/17/msg000255.html

Revision 1.171.6.3 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:32 2008 UTC (3 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.2: +1 -1 lines
Diff to previous 1.171.6.2 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Also fix build.

Revision 1.176 / (download) - annotate - [select for diffs], Wed Jun 4 12:41:40 2008 UTC (3 years, 11 months ago) by ad
Branch: MAIN
Branch point for: simonb-wapbl
Changes since 1.175: +3 -3 lines
Diff to previous 1.175 (colored)

vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.

Revision 1.171.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:21:53 2008 UTC (3 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.1: +1229 -152 lines
Diff to previous 1.171.6.1 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.172.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:31:34 2008 UTC (4 years ago) by yamt
Branch: yamt-pf42
Changes since 1.172: +1231 -154 lines
Diff to previous 1.172 (colored)

sync with head.

Revision 1.173.2.1 / (download) - annotate - [select for diffs], Fri May 16 02:21:56 2008 UTC (4 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173: +1214 -139 lines
Diff to previous 1.173 (colored)

sync with head.

Revision 1.175 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:13 2008 UTC (4 years ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.174: +2 -9 lines
Diff to previous 1.174 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.174 / (download) - annotate - [select for diffs], Sun Apr 27 18:58:44 2008 UTC (4 years ago) by matt
Branch: MAIN
Changes since 1.173: +1214 -132 lines
Diff to previous 1.173 (colored)

Merge kernel changes in matt-armv6 to HEAD.

Revision 1.173 / (download) - annotate - [select for diffs], Sun Apr 20 15:42:19 2008 UTC (4 years, 1 month ago) by scw
Branch: MAIN
CVS Tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Changes since 1.172: +19 -17 lines
Diff to previous 1.172 (colored)

There's really no need to switch VM contexts within cpu_switchto() as
MI code always calls pmap_deactivate/pmap_activate on context switch.

Instead, just record the last active lwp (or NULL if it exited) and
defer switching VM context to pmap_activate(). This saves an additional
function call overhead in cpu_switchto().

While here, g/c unused cpuswitch.S local .Lblock_userspace_access.

Revision 1.171.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:12 2008 UTC (4 years, 1 month ago) by mjf
Branch: mjf-devfs2
Changes since 1.171: +14 -20 lines
Diff to previous 1.171 (colored)

Sync with HEAD.

Revision 1.172 / (download) - annotate - [select for diffs], Sat Mar 29 15:52:09 2008 UTC (4 years, 1 month ago) by chris
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.171: +14 -20 lines
Diff to previous 1.171 (colored)

Fix LOCKDEBUG build on arm by:
* converting simple_{un}lock to mutex_enter/exit
* Using UVM_OBJ_INIT & DESTROY for the uvm_object in the pmap structure

Revision 1.164.12.10 / (download) - annotate - [select for diffs], Tue Mar 4 06:08:32 2008 UTC (4 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.9: +6 -4 lines
Diff to previous 1.164.12.9 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Fix a bug in pmap_flush_page which could nuke a PTE being used by
pmap_zero_page or pmap_copy_page.

Revision 1.164.6.3 / (download) - annotate - [select for diffs], Thu Feb 28 21:47:41 2008 UTC (4 years, 2 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164.6.2: +15 -6 lines
Diff to previous 1.164.6.2 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync with HEAD.

Revision 1.167.2.2 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:22 2008 UTC (4 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.167.2.1: +15 -6 lines
Diff to previous 1.167.2.1 (colored) to branchpoint 1.167 (colored) next main 1.168 (colored)

Sync with HEAD.

Revision 1.154.2.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:37 2008 UTC (4 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.5: +15 -6 lines
Diff to previous 1.154.2.5 (colored) to branchpoint 1.154 (colored) next main 1.155 (colored)

sync with head

Revision 1.164.10.2 / (download) - annotate - [select for diffs], Sun Jan 20 16:03:57 2008 UTC (4 years, 4 months ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.164.10.1: +31 -12 lines
Diff to previous 1.164.10.1 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync to HEAD.

Revision 1.164.12.9 / (download) - annotate - [select for diffs], Wed Jan 9 01:45:12 2008 UTC (4 years, 4 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.8: +14 -5 lines
Diff to previous 1.164.12.8 (colored) to branchpoint 1.164 (colored)

sync with HEAD

Revision 1.169.6.2 / (download) - annotate - [select for diffs], Tue Jan 8 22:09:25 2008 UTC (4 years, 4 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.169.6.1: +3 -2 lines
Diff to previous 1.169.6.1 (colored) to branchpoint 1.169 (colored) next main 1.170 (colored)

Sync with HEAD

Revision 1.171 / (download) - annotate - [select for diffs], Sun Jan 6 03:11:42 2008 UTC (4 years, 4 months ago) by matt
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, matt-armv6-base, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, chris-arm-intr-rework-base7, chris-arm-intr-rework-base6, chris-arm-intr-rework-base5, chris-arm-intr-rework-base4, bouyer-xeni386-nbase, bouyer-xeni386-base, ad-socklock-base1
Branch point for: mjf-devfs2
Changes since 1.170: +5 -4 lines
Diff to previous 1.170 (colored)

current_intr_depth is dead.  Make sure we don't use it anymore.

Revision 1.169.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:47:21 2008 UTC (4 years, 4 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.169: +12 -4 lines
Diff to previous 1.169 (colored)

Sync with HEAD

Revision 1.164.10.1 / (download) - annotate - [select for diffs], Tue Jan 1 15:39:18 2008 UTC (4 years, 4 months ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.164: +157 -146 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.170 / (download) - annotate - [select for diffs], Tue Jan 1 14:06:42 2008 UTC (4 years, 4 months ago) by chris
Branch: MAIN
CVS Tags: chris-arm-intr-rework-base3
Changes since 1.169: +12 -4 lines
Diff to previous 1.169 (colored)

Add support for kcore headers to arm32 kernel core dumps.

The kcore code is based on i386's kcore header handling.

Having an asm stub for dumpsys, to dump the registers onto the stack, and
then call the C code to do the memory dump is based on amd64's core dump
code.

This allows a successful core dump on cats.

Part of fixing PR cats/18026.

Revision 1.164.6.2 / (download) - annotate - [select for diffs], Wed Dec 26 22:24:35 2007 UTC (4 years, 5 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164.6.1: +14 -22 lines
Diff to previous 1.164.6.1 (colored) to branchpoint 1.164 (colored)

Sync with HEAD.

Revision 1.161.2.6 / (download) - annotate - [select for diffs], Mon Dec 3 18:34:54 2007 UTC (4 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.5: +14 -22 lines
Diff to previous 1.161.2.5 (colored) next main 1.162 (colored)

Sync with HEAD.

Revision 1.167.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:46:11 2007 UTC (4 years, 6 months ago) by mjf
Branch: mjf-devfs
Changes since 1.167: +14 -22 lines
Diff to previous 1.167 (colored)

Sync with HEAD.

Revision 1.154.2.5 / (download) - annotate - [select for diffs], Thu Nov 15 11:42:35 2007 UTC (4 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.4: +14 -22 lines
Diff to previous 1.154.2.4 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.166.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 15:58:13 2007 UTC (4 years, 6 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.166: +14 -22 lines
Diff to previous 1.166 (colored) next main 1.167 (colored)

Sync with HEAD

Revision 1.164.8.3 / (download) - annotate - [select for diffs], Sun Nov 11 16:46:25 2007 UTC (4 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164.8.2: +14 -22 lines
Diff to previous 1.164.8.2 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync with HEAD.

Revision 1.157.24.1.4.3 / (download) - annotate - [select for diffs], Sat Nov 10 04:18:51 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1.4.2: +5 -4 lines
Diff to previous 1.157.24.1.4.2 (colored) to branchpoint 1.157.24.1 (colored) next main 1.158 (colored)

Refix thinko.  (deal with non-page-aligned starts/lengths)

Revision 1.164.12.8 / (download) - annotate - [select for diffs], Sat Nov 10 04:16:11 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.164.12.7: +8 -5 lines
Diff to previous 1.164.12.7 (colored) to branchpoint 1.164 (colored)

Fix thinko. (need to deal non-page-aligned size/lengths)

Revision 1.157.24.1.4.2 / (download) - annotate - [select for diffs], Sat Nov 10 04:00:01 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1.4.1: +6 -4 lines
Diff to previous 1.157.24.1.4.1 (colored) to branchpoint 1.157.24.1 (colored)

Fix thinko.

Revision 1.157.24.1.4.1 / (download) - annotate - [select for diffs], Sat Nov 10 02:56:26 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1: +963 -93 lines
Diff to previous 1.157.24.1 (colored)

Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc

Revision 1.164.12.7 / (download) - annotate - [select for diffs], Fri Nov 9 19:24:47 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.6: +39 -2 lines
Diff to previous 1.164.12.6 (colored) to branchpoint 1.164 (colored)

Add pmap_icache_sync_range and change arm32_sync_icache to use it.
This will only invalidate va that have valid PTEs.  This avoids cleaning
unneeded cache lines.

Revision 1.164.12.6 / (download) - annotate - [select for diffs], Fri Nov 9 05:37:37 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.5: +9 -9 lines
Diff to previous 1.164.12.5 (colored) to branchpoint 1.164 (colored)

Make all the evbarm kernels build again.  Fix lossage from rebase.

Revision 1.169 / (download) - annotate - [select for diffs], Thu Nov 8 11:10:28 2007 UTC (4 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: bouyer-xeni386
Changes since 1.168: +4 -4 lines
Diff to previous 1.168 (colored)

Make this compile again.

Revision 1.164.12.5 / (download) - annotate - [select for diffs], Thu Nov 8 10:59:33 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.4: +14 -22 lines
Diff to previous 1.164.12.4 (colored) to branchpoint 1.164 (colored)

sync with -HEAD

Revision 1.164.12.4 / (download) - annotate - [select for diffs], Wed Nov 7 06:38:29 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.3: +4 -2 lines
Diff to previous 1.164.12.3 (colored) to branchpoint 1.164 (colored)

Fix botched color assertion

Revision 1.168 / (download) - annotate - [select for diffs], Wed Nov 7 00:23:15 2007 UTC (4 years, 6 months ago) by ad
Branch: MAIN
Changes since 1.167: +12 -20 lines
Diff to previous 1.167 (colored)

Merge from vmlocking:

- pool_cache changes.
- Debugger/procfs locking fixes.
- Other minor changes.

Revision 1.164.12.3 / (download) - annotate - [select for diffs], Tue Nov 6 23:15:00 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.2: +138 -126 lines
Diff to previous 1.164.12.2 (colored) to branchpoint 1.164 (colored)

sync with HEAD

Revision 1.164.6.1 / (download) - annotate - [select for diffs], Thu Nov 1 16:06:47 2007 UTC (4 years, 6 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164: +135 -124 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.154.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:25:21 2007 UTC (4 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.3: +135 -124 lines
Diff to previous 1.154.2.3 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.164.8.2 / (download) - annotate - [select for diffs], Fri Oct 26 15:42:14 2007 UTC (4 years, 7 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164.8.1: +4 -6 lines
Diff to previous 1.164.8.1 (colored) to branchpoint 1.164 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.161.2.5 / (download) - annotate - [select for diffs], Fri Oct 19 12:42:41 2007 UTC (4 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.4: +4 -6 lines
Diff to previous 1.161.2.4 (colored)

Sync with head.

Revision 1.167 / (download) - annotate - [select for diffs], Wed Oct 17 19:53:31 2007 UTC (4 years, 7 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, jmcneill-base
Branch point for: mjf-devfs
Changes since 1.166: +2 -2 lines
Diff to previous 1.166 (colored)

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.

Revision 1.163.4.3 / (download) - annotate - [select for diffs], Tue Oct 16 18:23:35 2007 UTC (4 years, 7 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.163.4.2: +4 -6 lines
Diff to previous 1.163.4.2 (colored) to branchpoint 1.163 (colored) next main 1.164 (colored)

Sync with HEAD

Revision 1.165.2.1 / (download) - annotate - [select for diffs], Sun Oct 14 11:47:32 2007 UTC (4 years, 7 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.165: +4 -6 lines
Diff to previous 1.165 (colored) next main 1.166 (colored)

sync with head.

Revision 1.164.12.2 / (download) - annotate - [select for diffs], Fri Oct 12 02:22:22 2007 UTC (4 years, 7 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.1: +1162 -125 lines
Diff to previous 1.164.12.1 (colored) to branchpoint 1.164 (colored)

Import TI OMAP 2430 and ARM11/ARMv6 support.  Now on ARMv6, the cache is
no longer purged on context switches.

Revision 1.166 / (download) - annotate - [select for diffs], Wed Oct 10 17:44:39 2007 UTC (4 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, vmlocking-base, ppcoea-renovation-base
Branch point for: bouyer-xenamd64
Changes since 1.165: +4 -6 lines
Diff to previous 1.165 (colored)

Comment out references to spinlockmgr().

Revision 1.161.2.4 / (download) - annotate - [select for diffs], Tue Oct 9 13:37:29 2007 UTC (4 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.3: +133 -120 lines
Diff to previous 1.161.2.3 (colored)

Sync with head.

Revision 1.163.4.2 / (download) - annotate - [select for diffs], Wed Oct 3 19:22:38 2007 UTC (4 years, 7 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.163.4.1: +133 -120 lines
Diff to previous 1.163.4.1 (colored) to branchpoint 1.163 (colored)

Sync with HEAD

Revision 1.164.8.1 / (download) - annotate - [select for diffs], Tue Oct 2 18:26:52 2007 UTC (4 years, 7 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164: +133 -120 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.165 / (download) - annotate - [select for diffs], Sat Sep 15 09:25:21 2007 UTC (4 years, 8 months ago) by scw
Branch: MAIN
CVS Tags: yamt-x86pmap-base2, yamt-x86pmap-base
Branch point for: yamt-x86pmap
Changes since 1.164: +133 -120 lines
Diff to previous 1.164 (colored)

ARM cpu_switchto() has been partially broken since yamt-idlelwp was merged
as its cache/tlb management smarts relied too heavily on pre-merge context-
switch behaviour. See PR kern/36548 for one manifestation of the breakage.

To address this:
 - Ditch the shadow pmap variables in the PCB (pagedir, l1vec, dacr, cstate)
   as it was too easy for them to get out of sync with the pmap.
 - Re-write (and fix) the convoluted cpuswitch.S cache/tlb ASM code in C.
   It's only slightly less efficient, but is much more readable/maintainable.
 - Document cpufuncs.cf_context_switch() as being C-callable.
 - pmap_activate() becomes a no-op if the lwp's vmspace is already active.
   (Good performance win, since pmap_activate() is now invoked on every
   context-switch, even though ARM's cpu_switchto() already does all the
   grunt work)

XXX: Some CPU-specific armXX_context_switch() implementations (arm67,
arm7tdmi, arm8) always flush the I+D caches. This should not be necessary.
Someone with access to hardware (acorn32?) needs to deal with this.

Revision 1.154.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:23:15 2007 UTC (4 years, 8 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.2: +11 -10 lines
Diff to previous 1.154.2.2 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.164.12.1 / (download) - annotate - [select for diffs], Wed Aug 29 04:31:37 2007 UTC (4 years, 8 months ago) by matt
Branch: matt-armv6
Changes since 1.164: +3 -3 lines
Diff to previous 1.164 (colored)

Use ci_intr_depth

Revision 1.162.2.1 / (download) - annotate - [select for diffs], Wed Jul 11 19:58:06 2007 UTC (4 years, 10 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.162: +6 -5 lines
Diff to previous 1.162 (colored) next main 1.163 (colored)

Sync with head.

Revision 1.161.2.3 / (download) - annotate - [select for diffs], Sun May 27 12:27:08 2007 UTC (5 years ago) by ad
Branch: vmlocking
Changes since 1.161.2.2: +3 -3 lines
Diff to previous 1.161.2.2 (colored)

Sync with head.

Revision 1.163.4.1 / (download) - annotate - [select for diffs], Tue May 22 17:26:39 2007 UTC (5 years ago) by matt
Branch: ppcoea-renovation
Changes since 1.163: +3 -3 lines
Diff to previous 1.163 (colored)

Update to HEAD.

Revision 1.164 / (download) - annotate - [select for diffs], Thu May 17 14:51:16 2007 UTC (5 years ago) by yamt
Branch: MAIN
CVS Tags: nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, chris-arm-intr-rework-base2, chris-arm-intr-rework-base
Branch point for: matt-armv6, jmcneill-pm, hpcarm-cleanup, chris-arm-intr-rework
Changes since 1.163: +3 -3 lines
Diff to previous 1.163 (colored)

merge yamt-idlelwp branch.  asked by core@.  some ports still needs work.

from doc/BRANCHES:

	idle lwp, and some changes depending on it.

	1. separate context switching and thread scheduling.
	   (cf. gmcgarry_ctxsw)
	2. implement idle lwp.
	3. clean up related MD/MI interfaces.
	4. make scheduler(s) modular.

Revision 1.158.2.5 / (download) - annotate - [select for diffs], Sun Apr 15 16:02:37 2007 UTC (5 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158.2.4: +5 -4 lines
Diff to previous 1.158.2.4 (colored) to branchpoint 1.158 (colored) next main 1.159 (colored)

sync with head.

Revision 1.161.2.2 / (download) - annotate - [select for diffs], Tue Apr 10 13:22:51 2007 UTC (5 years, 1 month ago) by ad
Branch: vmlocking
Changes since 1.161.2.1: +5 -4 lines
Diff to previous 1.161.2.1 (colored)

Sync with head.

Revision 1.163 / (download) - annotate - [select for diffs], Mon Apr 9 16:05:41 2007 UTC (5 years, 1 month ago) by chris
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic
Branch point for: ppcoea-renovation
Changes since 1.162: +5 -4 lines
Diff to previous 1.162 (colored)

In pmap_activate restore interrupts to their previous state rather than
always enabling them.

It's not clear if this actually caused any problems, but it seems safer
to restore to the previous state in case pmap_activate is ever called
with interrupts disabled.

Revision 1.158.2.4 / (download) - annotate - [select for diffs], Thu Mar 29 10:52:27 2007 UTC (5 years, 1 month ago) by skrll
Branch: yamt-idlelwp
Changes since 1.158.2.3: +3 -3 lines
Diff to previous 1.158.2.3 (colored) to branchpoint 1.158 (colored)

Adapt arm32. Thanks to scw for helping out.

Tested on my cats (SA1)

XXX hydra should die. i've made some changes, but no guarantees.

Revision 1.158.2.3 / (download) - annotate - [select for diffs], Sat Mar 24 14:54:33 2007 UTC (5 years, 2 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158.2.2: +6 -6 lines
Diff to previous 1.158.2.2 (colored) to branchpoint 1.158 (colored)

sync with head.

Revision 1.161.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:49:55 2007 UTC (5 years, 2 months ago) by ad
Branch: vmlocking
Changes since 1.161: +6 -6 lines
Diff to previous 1.161 (colored)

Sync with head.

Revision 1.162 / (download) - annotate - [select for diffs], Mon Mar 12 18:18:24 2007 UTC (5 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: reinoud-bufcleanup
Branch point for: mjf-ufs-trans
Changes since 1.161: +6 -6 lines
Diff to previous 1.161 (colored)

Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.

Revision 1.158.2.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:47:02 2007 UTC (5 years, 2 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.158.2.1: +3 -3 lines
Diff to previous 1.158.2.1 (colored) to branchpoint 1.158 (colored)

Sync with HEAD.

Revision 1.161 / (download) - annotate - [select for diffs], Sun Mar 4 05:59:37 2007 UTC (5 years, 2 months ago) by christos
Branch: MAIN
Branch point for: vmlocking
Changes since 1.160: +3 -3 lines
Diff to previous 1.160 (colored)

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.158.2.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:49:32 2007 UTC (5 years, 2 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158: +72 -72 lines
Diff to previous 1.158 (colored)

- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.

Revision 1.154.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:05:55 2007 UTC (5 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.1: +76 -76 lines
Diff to previous 1.154.2.1 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.160 / (download) - annotate - [select for diffs], Thu Feb 22 05:14:05 2007 UTC (5 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.159: +53 -53 lines
Diff to previous 1.159 (colored)

TRUE -> true, FALSE -> false

Revision 1.159 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:38 2007 UTC (5 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.158: +22 -22 lines
Diff to previous 1.158 (colored)

Replace the Mach-derived boolean_t type with the C99 bool type.  A
future commit will replace use of TRUE and FALSE with true and false.

Revision 1.157.24.1 / (download) - annotate - [select for diffs], Wed Feb 21 18:33:19 2007 UTC (5 years, 3 months ago) by snj
Branch: netbsd-4
CVS Tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, matt-nb4-arm-base
Branch point for: matt-nb4-arm
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored) next main 1.158 (colored)

Pull up following revision(s) (requested by matt in ticket #457):
	sys/arch/arm/arm32/pmap.c: revision 1.158
From Scott Allan in http://mail-index.netbsd.org/port-arm/2006/07/26/0000.html
I ran into a problem when I tried to set up a mapping that started at
virtual address 0xFFF00000 and was 0x00100000 long.  In other words, the
mapping should have gone to the end of the 32 bit address space.  The
mapping was made with no problem, but pmap_devmap_find_va() wouldn't
find an address within the mapping.  For example, if I told it to find a
mapping for 0x1000 bytes at 0xFFF01000, it would try to make sure that
0xFFF01000 was greater than 0xFFF00000 and that (0xFFF01000+0x1000) was
less than (0xFFF00000 +0x00100000).  However, that last expression
(0xFFF00000+0x00100000) wrapped around to be simply 0x00000000 so it
wasn't found.  This patch fixes this problem in pmap_devmap_find_va()
and pmap_devmap_find_pa() by subtracting one off of the

Revision 1.157.20.1 / (download) - annotate - [select for diffs], Fri Jan 12 01:00:41 2007 UTC (5 years, 4 months ago) by ad
Branch: newlock2
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored) next main 1.158 (colored)

Sync with head.

Revision 1.158 / (download) - annotate - [select for diffs], Sat Jan 6 00:40:47 2007 UTC (5 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Branch point for: yamt-idlelwp
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored)

From Scott Allen in http://mail-index.netbsd.org/port-arm/2006/07/26/0000.html
I ran into a problem when I tried to set up a mapping that started at virtual
address 0xFFF00000 and was 0x00100000 long.  In other words, the mapping
should have gone to the end of the 32 bit address space.  The mapping was made
with no problem, but pmap_devmap_find_va() wouldn't find an address within the
mapping.  For example, if I told it to find a mapping for 0x1000 bytes at
0xFFF01000, it would try to make sure that 0xFFF01000 was greater than
0xFFF00000 and that (0xFFF01000+0x1000) was less than (0xFFF00000+0x00100000).
However, that last expression (0xFFF00000+0x00100000) wrapped around to be
simply 0x00000000 so it wasn't found.  This patch fixes this problem in
pmap_devmap_find_va() and pmap_devmap_find_pa() by subtracting one off of the
sizes to be compared, so in my example, (0xFFF01000+0x1000-1) will be less
than (0xFFF00000+0x00100000-1).

Revision 1.154.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 14:49:16 2006 UTC (5 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154: +72 -64 lines
Diff to previous 1.154 (colored)

sync with head.

Revision 1.157 / (download) - annotate - [select for diffs], Sat Dec 24 20:06:47 2005 UTC (6 years, 5 months ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-splraiseipl, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, yamt-pdpolicy, simonb-timecounters-base, simonb-timecounters, simonb-timcounters-final, rpaulo-netinet-merge-pcb-base, rpaulo-netinet-merge-pcb, peter-altq-base, peter-altq, netbsd-4-base, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: newlock2, netbsd-4
Changes since 1.156: +27 -27 lines
Diff to previous 1.156 (colored)

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.

Revision 1.137.2.7 / (download) - annotate - [select for diffs], Sun Dec 11 10:28:14 2005 UTC (6 years, 5 months ago) by christos
Branch: ktrace-lwp
Changes since 1.137.2.6: +47 -39 lines
Diff to previous 1.137.2.6 (colored) next main 1.138 (colored)

Sync with head.

Revision 1.156 / (download) - annotate - [select for diffs], Sat Dec 10 21:19:57 2005 UTC (6 years, 5 months ago) by scw
Branch: MAIN
CVS Tags: ktrace-lwp-base
Changes since 1.155: +40 -33 lines
Diff to previous 1.155 (colored)

Implement pmap_collect() for arm32.

Revision 1.155 / (download) - annotate - [select for diffs], Thu Dec 8 22:41:44 2005 UTC (6 years, 5 months ago) by yamt
Branch: MAIN
Changes since 1.154: +9 -8 lines
Diff to previous 1.154 (colored)

use VM_PAGE_TO_PHYS macro.

Revision 1.137.2.6 / (download) - annotate - [select for diffs], Thu Nov 10 13:55:16 2005 UTC (6 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.5: +17 -7 lines
Diff to previous 1.137.2.5 (colored)

Sync with HEAD. Here we go again...

Revision 1.154 / (download) - annotate - [select for diffs], Mon Jul 4 00:42:37 2005 UTC (6 years, 10 months ago) by bsh
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr
Branch point for: yamt-lazymbuf
Changes since 1.153: +3 -3 lines
Diff to previous 1.153 (colored)

The first step to support Intel PXA270.

kernel config option CPU_XSCALE_PXA2X0 is now obsoleted by
CPU_XSCALE_PXA250 and CPU_XSCALE_PXA270.  If both of them are defined,
CPU is determined run-time.

Revision 1.153 / (download) - annotate - [select for diffs], Fri Jun 24 15:59:04 2005 UTC (6 years, 11 months ago) by scw
Branch: MAIN
Changes since 1.152: +7 -4 lines
Diff to previous 1.152 (colored)

In pmap_devmap_find_pa(), use 64-bit arithmetic to handle the case where
'pa + size' == 0x0. As in, if we're passed details of a region right at
the top of physical address space.

Otherwise we'll likely hit a false-positive due to 32-bit wrap-around.

Revision 1.150.2.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:28:02 2005 UTC (7 years ago) by kent
Branch: kent-audio2
Changes since 1.150: +14 -7 lines
Diff to previous 1.150 (colored) next main 1.151 (colored)

sync with -current

Revision 1.152 / (download) - annotate - [select for diffs], Tue Apr 26 16:03:08 2005 UTC (7 years, 1 month ago) by scw
Branch: MAIN
CVS Tags: kent-audio2-base
Changes since 1.151: +11 -4 lines
Diff to previous 1.151 (colored)

Since pmap_page_remove() is called from pmap_page_protect(), don't modify
the current pmap's pm_cstate if we have to flush the TLB, as callers of
pmap_page_protect() are not required to invoke pmap_update() afterwards.

Otherwise we can end up with a pm_cstate which is inconsistent with reality
in the TLB, which can lead to future TLB flushes being erroneously skipped.

Revision 1.137.2.5 / (download) - annotate - [select for diffs], Fri Apr 1 14:26:50 2005 UTC (7 years, 1 month ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.4: +5 -5 lines
Diff to previous 1.137.2.4 (colored)

Sync with HEAD.

Revision 1.151 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:23 2005 UTC (7 years, 1 month ago) by yamt
Branch: MAIN
Changes since 1.150: +5 -5 lines
Diff to previous 1.150 (colored)

merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
  save some resources like pv_entry.  also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.

Revision 1.150.4.1 / (download) - annotate - [select for diffs], Fri Jan 28 10:33:58 2005 UTC (7 years, 3 months ago) by yamt
Branch: yamt-km
Changes since 1.150: +5 -5 lines
Diff to previous 1.150 (colored) next main 1.151 (colored)

convert arch/arm to new apis.

Revision 1.137.2.4 / (download) - annotate - [select for diffs], Mon Jan 17 19:29:12 2005 UTC (7 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.3: +8 -8 lines
Diff to previous 1.137.2.3 (colored)

Sync with HEAD.

Revision 1.150 / (download) - annotate - [select for diffs], Fri Jan 14 02:28:54 2005 UTC (7 years, 4 months ago) by joff
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, matt-timespec
Branch point for: yamt-km, kent-audio2
Changes since 1.149: +7 -7 lines
Diff to previous 1.149 (colored)

Dont try freeing bootstrap pages with pool_page_free.  Fixes kern/28869

Revision 1.149 / (download) - annotate - [select for diffs], Sun Jan 2 22:47:26 2005 UTC (7 years, 4 months ago) by chris
Branch: MAIN
CVS Tags: kent-audio1-beforemerge
Changes since 1.148: +3 -3 lines
Diff to previous 1.148 (colored)

Remove direct references to TAILQ internal structures.

No functional change, just tidying up code.

Revision 1.137.2.3 / (download) - annotate - [select for diffs], Tue Sep 21 13:13:10 2004 UTC (7 years, 8 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.2: +2 -2 lines
Diff to previous 1.137.2.2 (colored)

Fix the sync with head I botched.

Revision 1.137.2.2 / (download) - annotate - [select for diffs], Sat Sep 18 14:32:17 2004 UTC (7 years, 8 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.1: +0 -0 lines
Diff to previous 1.137.2.1 (colored)

Sync with HEAD.

Revision 1.137.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:32:29 2004 UTC (7 years, 9 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137: +115 -26 lines
Diff to previous 1.137 (colored)

Sync with HEAD

Revision 1.148 / (download) - annotate - [select for diffs], Sat Apr 3 04:35:48 2004 UTC (8 years, 1 month ago) by bsh
Branch: MAIN
CVS Tags: kent-audio1-base, kent-audio1
Changes since 1.147: +3 -3 lines
Diff to previous 1.147 (colored)

pmap_pte_init_arm9() is necessary only when defined(CPU_ARM9) and defined(ARM9_CACHE_WRITE_THROUGH)

Revision 1.147 / (download) - annotate - [select for diffs], Sun Jan 18 13:03:50 2004 UTC (8 years, 4 months ago) by scw
Branch: MAIN
CVS Tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Changes since 1.146: +27 -2 lines
Diff to previous 1.146 (colored)

Fix ARM_VECTORS_LOW fallout caused by the recent reaper removal.

Just before removing the vector page mapping, switch to the kernel
pmap's L1/vector page mapping so as not to pull the rug out from
under ourselves.

To prevent the stale L1/vector page mapping from being restored by
cpu_switch, replace the relevant fields of the dying process' pcb
with those of lwp0's pcb.

Revision 1.146 / (download) - annotate - [select for diffs], Sat Nov 1 17:35:42 2003 UTC (8 years, 6 months ago) by jdolecek
Branch: MAIN
Changes since 1.145: +3 -3 lines
Diff to previous 1.145 (colored)

avoid stong words in comments

Revision 1.145 / (download) - annotate - [select for diffs], Wed Oct 29 05:48:19 2003 UTC (8 years, 6 months ago) by mycroft
Branch: MAIN
Changes since 1.144: +4 -7 lines
Diff to previous 1.144 (colored)

Whitespace.

Revision 1.144 / (download) - annotate - [select for diffs], Wed Oct 29 05:47:04 2003 UTC (8 years, 6 months ago) by mycroft
Branch: MAIN
Changes since 1.143: +3 -3 lines
Diff to previous 1.143 (colored)

The previous patch was wrong -- mcr does not output anything.  Instead give a
junk input (it's not used when the last argument is 0).

Revision 1.143 / (download) - annotate - [select for diffs], Tue Oct 28 08:22:55 2003 UTC (8 years, 6 months ago) by scw
Branch: MAIN
Changes since 1.142: +5 -12 lines
Diff to previous 1.142 (colored)

Fix an uninitialised variable warning, reported by Shoichi Miyake
in port-arm/23293.

Revision 1.142 / (download) - annotate - [select for diffs], Sun Oct 26 23:11:15 2003 UTC (8 years, 7 months ago) by chris
Branch: MAIN
Changes since 1.141: +3 -3 lines
Diff to previous 1.141 (colored)

Fix up some unitialised variables.

Revision 1.141 / (download) - annotate - [select for diffs], Mon Oct 13 20:50:34 2003 UTC (8 years, 7 months ago) by scw
Branch: MAIN
Changes since 1.140: +57 -3 lines
Diff to previous 1.140 (colored)

On Xscale, define PMAP_UAREA() and use it to tweak uarea mappings so
they use the mini D$.

This results in a small performance boost on xscale platforms, since
flushing the main cache on a context switch won't affect the kernel
stack/pcb.

Revision 1.140 / (download) - annotate - [select for diffs], Sun Oct 5 19:44:58 2003 UTC (8 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.139: +4 -6 lines
Diff to previous 1.139 (colored)

Add SA_SIGINFO support for ARM (from Chris Gilbert).

Revision 1.139 / (download) - annotate - [select for diffs], Sun Sep 21 00:26:09 2003 UTC (8 years, 8 months ago) by matt
Branch: MAIN
Changes since 1.138: +4 -4 lines
Diff to previous 1.138 (colored)

Change some type-punning detected by gcc 3.3.1 to (void *).

Revision 1.138 / (download) - annotate - [select for diffs], Sat Sep 6 09:44:10 2003 UTC (8 years, 8 months ago) by rearnsha
Branch: MAIN
Changes since 1.137: +24 -2 lines
Diff to previous 1.137 (colored)

Support for initializing ARM10 processors in write-through mode.

Revision 1.137 / (download) - annotate - [select for diffs], Mon Jun 23 11:01:07 2003 UTC (8 years, 11 months ago) by martin
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.136: +4 -2 lines
Diff to previous 1.136 (colored)

Make sure to include opt_foo.h if a defflag option FOO is used.

Revision 1.136 / (download) - annotate - [select for diffs], Sun Jun 15 18:18:16 2003 UTC (8 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.135: +14 -3 lines
Diff to previous 1.135 (colored)

Add another devmap routine that allows bootstrap code to register
a devmap reflecting mappings that are created by really early
bootstrap code before pmap_devmap_bootstrap() is called.

Revision 1.135 / (download) - annotate - [select for diffs], Sun Jun 15 17:45:21 2003 UTC (8 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.134: +71 -2 lines
Diff to previous 1.134 (colored)

Replace the ad-hoc "section mapping table" for static device mappings
with a more generic "devmap" structure that can also handle mappings
made with large and small pages.  Add new pmap routines to enter these
mappings during bootstrap (and "remember" the devmap), and routines to
look up the static mappings once the kernel is running.

Revision 1.134 / (download) - annotate - [select for diffs], Wed May 21 18:07:07 2003 UTC (9 years ago) by thorpej
Branch: MAIN
Changes since 1.133: +3584 -2825 lines
Diff to previous 1.133 (colored)

Move the new pmap from arm32/pmap_new.c to arm32/pmap.c, fully replacing
the old.

Revision 1.133 / (download) - annotate - [select for diffs], Sat May 10 21:10:27 2003 UTC (9 years ago) by thorpej
Branch: MAIN
Changes since 1.132: +17 -4 lines
Diff to previous 1.132 (colored)

Back out the following chagne:
    http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.

Revision 1.132 / (download) - annotate - [select for diffs], Thu May 8 18:13:14 2003 UTC (9 years ago) by thorpej
Branch: MAIN
Changes since 1.131: +6 -19 lines
Diff to previous 1.131 (colored)

Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM.  Machine-dependent code is
responsible for initializing them before main() is called.  Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).

Revision 1.131 / (download) - annotate - [select for diffs], Tue Apr 22 00:24:49 2003 UTC (9 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.130: +27 -7 lines
Diff to previous 1.130 (colored)

Some ARM32_PMAP_NEW-related cleanup:
* Define a new "MMU type", ARM_MMU_SA1.  While the SA-1's MMU is basically
  compatible with the generic, the SA-1 cache does not have a write-through
  mode, and it is useful to know have an indication of this.
* Add a new PMAP_NEEDS_PTE_SYNC indicator, and try to evaluate it at
  compile time.  We evaluate it like so:
  - If SA-1-style MMU is the only type configured -> 1
  - If SA-1-style MMU is not configured -> 0
  - Otherwise, defer to a run-time variable.
  If PMAP_NEEDS_PTE_SYNC might evaluate to true (SA-1 only or run-time
  check), then we also define PMAP_INCLUDE_PTE_SYNC so that e.g. assembly
  code can include the necessary run-time support.  PMAP_INCLUDE_PTE_SYNC
  largely replaces the ARM32_PMAP_NEEDS_PTE_SYNC manual setting Steve
  included with the original new pmap.
* In the new pmap, make pmap_pte_init_generic() check to see if the CPU
  has a write-back cache.  If so, init the PT cache mode to C=1,B=0 to get
  write-through mode.  Otherwise, init the PT cache mode to C=1,B=1.
* Add a new pmap_pte_init_arm8().  Old pmap, same as generic.  New pmap,
  sets page table cacheability to 0 (ARM8 has a write-back cache, but
  flushing it is quite expensive).
* In the new pmap, make pmap_pte_init_arm9() reset the PT cache mode to
  C=1,B=0, since the write-back check in generic gets it wrong for ARM9,
  since we use write-through mode all the time on ARM9 right now.  (What
  this really tells me is that the test for write-through cache is less
  than perfect, but we can fix that later.)
* Add a new pmap_pte_init_sa1().  Old pmap, same as generic.  New pmap,
  does generic initialization, then resets page table cache mode to
  C=1,B=1, since C=1,B=0 does not produce write-through on the SA-1.

Revision 1.130 / (download) - annotate - [select for diffs], Tue Apr 1 23:19:09 2003 UTC (9 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.129: +25 -25 lines
Diff to previous 1.129 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.129 / (download) - annotate - [select for diffs], Sat Mar 29 07:58:16 2003 UTC (9 years, 2 months ago) by bsh
Branch: MAIN
Changes since 1.128: +35 -5 lines
Diff to previous 1.128 (colored)

for Intel PXA2[15][05] processors, select write-back/write-through
cache based on CPU id.  write-through on PXA2[15]0 B2 stepping and
earlier. write-back on C0 and C1 stepping (a.k.a PXA2[15]5 A0)

options XSCALE_CACHE_WRITE_{THROUGH,BACK} can override it.

for other XScale CPUs than PXA2xx, XSCALE_CACHE_WRITE_THROUGH works
same as before.

Revision 1.128 / (download) - annotate - [select for diffs], Thu Mar 27 19:42:30 2003 UTC (9 years, 2 months ago) by mycroft
Branch: MAIN
Changes since 1.127: +2 -3 lines
Diff to previous 1.127 (colored)

Remove references to variables that aren't used here.

Revision 1.127 / (download) - annotate - [select for diffs], Sun Mar 23 15:59:23 2003 UTC (9 years, 2 months ago) by chris
Branch: MAIN
Changes since 1.126: +2 -32 lines
Diff to previous 1.126 (colored)

Garbage collect pmap_map, the last (and only?) use has been removed.

Revision 1.126 / (download) - annotate - [select for diffs], Sun Feb 23 23:40:01 2003 UTC (9 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.125: +7 -6 lines
Diff to previous 1.125 (colored)

Change pcb32_pagedir to a paddr_t (after all, it's used as a paddr_t
everywhere in the code).

Revision 1.125 / (download) - annotate - [select for diffs], Fri Feb 21 00:23:03 2003 UTC (9 years, 3 months ago) by chris
Branch: MAIN
Changes since 1.124: +30 -29 lines
Diff to previous 1.124 (colored)

Convert a few types into things that are more accurate, mostly:
int's to unsigned int/u_int where they shouldn't go negative.
int's to boolean_t's where they're being used as bools.

No real functional change (in the produced asm a few condition codes changed)

Revision 1.97.4.6 / (download) - annotate - [select for diffs], Fri Feb 14 22:21:16 2003 UTC (9 years, 3 months ago) by he
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001
Changes since 1.97.4.5: +15 -11 lines
Diff to previous 1.97.4.5 (colored) to branchpoint 1.97 (colored) next main 1.98 (colored)

Revert pull-up of revision 1.110 (requested by rearnsha in ticket #1170):
  Revert cached memory access to L1 tables, this causes instability
  on the release branch.

Revision 1.124 / (download) - annotate - [select for diffs], Fri Jan 17 22:28:49 2003 UTC (9 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.123: +10 -10 lines
Diff to previous 1.123 (colored)

Merge the nathanw_sa branch.

Revision 1.30.2.19 / (download) - annotate - [select for diffs], Wed Dec 11 05:53:02 2002 UTC (9 years, 5 months ago) by thorpej
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.30.2.18: +69 -65 lines
Diff to previous 1.30.2.18 (colored) to branchpoint 1.30 (colored) next main 1.31 (colored)

Sync with HEAD.

Revision 1.97.4.5 / (download) - annotate - [select for diffs], Sat Dec 7 20:44:23 2002 UTC (9 years, 5 months ago) by he
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-PATCH001-RC1
Changes since 1.97.4.4: +120 -50 lines
Diff to previous 1.97.4.4 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.111 (requested by thorpej in ticket #714):
  Use a pool cache for PT-PTs.

Revision 1.97.4.4 / (download) - annotate - [select for diffs], Sat Dec 7 20:43:02 2002 UTC (9 years, 5 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.3: +129 -3 lines
Diff to previous 1.97.4.3 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.105 (requested by thorpej in ticket #714):
  Add code, conditional on PMAP_ALIAS_DEBUG, which can be
  used to hunt for virtual aliases between managed (pmap_enter)
  and unmanaged (pmap_kenter_pa) mappings.

Revision 1.123 / (download) - annotate - [select for diffs], Sun Nov 24 01:09:09 2002 UTC (9 years, 6 months ago) by chris
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base
Changes since 1.122: +9 -6 lines
Diff to previous 1.122 (colored)

Add a debug assert that wired pages provide protection flags in the flags
argument as well.

Also update a couple of debug messages to NPDEBUG.

Revision 1.97.4.3 / (download) - annotate - [select for diffs], Thu Nov 21 20:15:23 2002 UTC (9 years, 6 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.2: +12 -16 lines
Diff to previous 1.97.4.2 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.110 (requested by thorpej in ticket #712):
  Do cached memory access to L1 tables, making sure to
  write-back the cache after any L1 table modifications.

Revision 1.97.4.2 / (download) - annotate - [select for diffs], Sat Nov 16 10:03:47 2002 UTC (9 years, 6 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.1: +9 -19 lines
Diff to previous 1.97.4.1 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.107 (requested by thorpej in ticket #662):
  Clean up some warts in pmap_protect().

Revision 1.122 / (download) - annotate - [select for diffs], Tue Nov 12 22:14:21 2002 UTC (9 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.121: +23 -22 lines
Diff to previous 1.121 (colored)

Tweak a few minor things:
when looking to reenable caching, only do so if all the pages aren't already
cached.
Convert some ints to unsigned int.  (scarily this actually shows the biggest
decrease in timing for my benchmark, I guess the compiler can optimise better)

Revision 1.30.2.18 / (download) - annotate - [select for diffs], Mon Nov 11 21:56:35 2002 UTC (9 years, 6 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.17: +25 -19 lines
Diff to previous 1.30.2.17 (colored) to branchpoint 1.30 (colored)

Catch up to -current

Revision 1.121 / (download) - annotate - [select for diffs], Mon Nov 11 20:34:03 2002 UTC (9 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.120: +42 -42 lines
Diff to previous 1.120 (colored)

gratuitous whitespace and de-__P'ing.  No functional change.

Revision 1.120 / (download) - annotate - [select for diffs], Mon Nov 11 09:34:44 2002 UTC (9 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.119: +24 -14 lines
Diff to previous 1.119 (colored)

A few minor tweaks.

Use pmap_free_pvs in pmap_remove, should save on the overhead of freeing
each pv on it's own.

Correctly set ptp when calling pmap_enter_pv, this adds more overhead, but
the effect is minimal.  Timings show that it increases gmake's make configure
step from 2:07.90 to 2:08.90.  I've more optimisations planned that should
negate this increase.

Revision 1.119 / (download) - annotate - [select for diffs], Mon Nov 11 08:58:05 2002 UTC (9 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.118: +3 -7 lines
Diff to previous 1.118 (colored)

Remove unused pa variable (it's assigned but not used any more)

Revision 1.30.2.17 / (download) - annotate - [select for diffs], Fri Oct 18 02:35:22 2002 UTC (9 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.16: +10 -10 lines
Diff to previous 1.30.2.16 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.14.2.9 / (download) - annotate - [select for diffs], Thu Oct 10 18:31:45 2002 UTC (9 years, 7 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.8: +10 -10 lines
Diff to previous 1.14.2.8 (colored) next main 1.15 (colored)

sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work

Revision 1.118 / (download) - annotate - [select for diffs], Fri Sep 27 15:35:42 2002 UTC (9 years, 8 months ago) by provos
Branch: MAIN
CVS Tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge, bjh21-hydra-base, bjh21-hydra
Changes since 1.117: +4 -4 lines
Diff to previous 1.117 (colored)

remove trailing \n in panic().  approved perry.

Revision 1.117 / (download) - annotate - [select for diffs], Sun Sep 22 07:56:57 2002 UTC (9 years, 8 months ago) by chs
Branch: MAIN
Changes since 1.116: +8 -8 lines
Diff to previous 1.116 (colored)

rename the existing pmap_remove_all() here to pmap_page_remove()
(ala the x86 pmap) to avoid conflicting with the new pmap interface
function of the same name.

Revision 1.30.2.16 / (download) - annotate - [select for diffs], Tue Sep 17 21:13:22 2002 UTC (9 years, 8 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.15: +3 -2 lines
Diff to previous 1.30.2.15 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.14.2.8 / (download) - annotate - [select for diffs], Fri Sep 6 08:32:26 2002 UTC (9 years, 8 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.7: +500 -279 lines
Diff to previous 1.14.2.7 (colored)

sync kqueue branch with HEAD

Revision 1.116 / (download) - annotate - [select for diffs], Thu Sep 5 18:34:00 2002 UTC (9 years, 8 months ago) by jdolecek
Branch: MAIN
Changes since 1.115: +3 -2 lines
Diff to previous 1.115 (colored)

whitespace fix past __KERNEL_RCSID()

Revision 1.97.2.2 / (download) - annotate - [select for diffs], Fri Aug 30 00:19:08 2002 UTC (9 years, 8 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.97.2.1: +500 -276 lines
Diff to previous 1.97.2.1 (colored) to branchpoint 1.97 (colored) next main 1.98 (colored)

catch up with -current.

Revision 1.30.2.15 / (download) - annotate - [select for diffs], Wed Aug 28 18:17:53 2002 UTC (9 years, 8 months ago) by wrstuden
Branch: nathanw_sa
Changes since 1.30.2.14: +4 -4 lines
Diff to previous 1.30.2.14 (colored) to branchpoint 1.30 (colored)

There is no 'p', there is only 'l'.

Revision 1.30.2.14 / (download) - annotate - [select for diffs], Tue Aug 27 06:03:16 2002 UTC (9 years, 9 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.13: +270 -93 lines
Diff to previous 1.30.2.13 (colored) to branchpoint 1.30 (colored)

Sync with -current.

Revision 1.115 / (download) - annotate - [select for diffs], Sat Aug 24 03:10:40 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: gehenna-devsw-base
Changes since 1.114: +13 -9 lines
Diff to previous 1.114 (colored)

In pmap_map_in_l1() and pmap_unmap_in_l1(), make sure that the VA
that is passed in is already aligned to a 4M super-section.

Revision 1.114 / (download) - annotate - [select for diffs], Sat Aug 24 02:50:53 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.113: +13 -7 lines
Diff to previous 1.113 (colored)

When we allocate a PTP, make sure the offset we specify is for
the 4M super-section that the PTP will map, not some random 1M
chunk of it.  This gives the PTP hint code a much better chance
to working properly, and allows us to tidy up the code that
flushes a PTP from the cache in pmap_destroy().

Revision 1.113 / (download) - annotate - [select for diffs], Sat Aug 24 02:16:31 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.112: +117 -23 lines
Diff to previous 1.112 (colored)

Enable caching on kernel and user page tables.  This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).

Revision 1.112 / (download) - annotate - [select for diffs], Thu Aug 22 01:13:55 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.111: +9 -2 lines
Diff to previous 1.111 (colored)

* Add PTE_SYNC() and PTE_SYNC_RANGE() macros.  These don't actually do
  anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
  where vtopte() is used.

Revision 1.111 / (download) - annotate - [select for diffs], Wed Aug 21 21:22:52 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.110: +120 -50 lines
Diff to previous 1.110 (colored)

Use a pool cache for PT-PTs.

Revision 1.110 / (download) - annotate - [select for diffs], Wed Aug 21 18:34:31 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.109: +12 -16 lines
Diff to previous 1.109 (colored)

Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.

Revision 1.30.2.13 / (download) - annotate - [select for diffs], Tue Aug 13 04:17:36 2002 UTC (9 years, 9 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.12: +13 -2 lines
Diff to previous 1.30.2.12 (colored) to branchpoint 1.30 (colored)

From trunk:

Add the brutal hack that allows us to limp along using the read/write
cache line allocation policy on XScale CPUs: in pmap_enter(), if the
pmap is the kernel pmap, clear the X-bit in the PTE, thus disabling
read/write-allocate for managed kernel mappings.

Yes, this is ugly.  But it makes userland code run with r/w-allocate,
which is a huge improvement on systems with low core memory performance.

Revision 1.109 / (download) - annotate - [select for diffs], Tue Aug 13 03:36:30 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.108: +13 -2 lines
Diff to previous 1.108 (colored)

Add the brutal hack that allows us to limp along using the read/write
cache line allocation policy on XScale CPUs: in pmap_enter(), if the
pmap is the kernel pmap, clear the X-bit in the PTE, thus disabling
read/write-allocate for managed kernel mappings.

Yes, this is ugly.  But it makes userland code run with r/w-allocate,
which is a huge improvement on systems with low core memory performance.

Revision 1.30.2.12 / (download) - annotate - [select for diffs], Tue Aug 13 02:17:51 2002 UTC (9 years, 9 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.11: +216 -53 lines
Diff to previous 1.30.2.11 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.108 / (download) - annotate - [select for diffs], Sat Aug 10 00:48:35 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.107: +19 -19 lines
Diff to previous 1.107 (colored)

Tidy up pmap_clean_page() a little, and reenable some code that was
disabled previously: Skip cleaning mappings which are read-only, because
the pmap (now) does clean pages on a r/w -> r/o transition.

Revision 1.107 / (download) - annotate - [select for diffs], Sat Aug 10 00:11:51 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.106: +9 -19 lines
Diff to previous 1.106 (colored)

Clean up some warts in pmap_protect().

Revision 1.106 / (download) - annotate - [select for diffs], Fri Aug 9 21:49:09 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.105: +21 -2 lines
Diff to previous 1.105 (colored)

Add an XSCALE_CACHE_READ_WRITE_ALLOCATE option for people who
want to play fast-and-loose.

Revision 1.105 / (download) - annotate - [select for diffs], Fri Aug 9 18:22:59 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.104: +129 -3 lines
Diff to previous 1.104 (colored)

Add some code, conditional on PMAP_ALIAS_DEBUG, that can be used to
hunt for virtual aliases between managed (pmap_enter) and non-managed
(pmap_kenter_pa) mappings.

Revision 1.104 / (download) - annotate - [select for diffs], Tue Aug 6 21:43:51 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.103: +46 -18 lines
Diff to previous 1.103 (colored)

- pmap_remove(): unmap the PTEs *after* we have finished with the
  page tables.
- pmap_enter(): if making a mapping for the same PA rw->ro, write-back
  the cache before doing so.
- pmap_clearbit(): if revoking REF on a page, make sure to wbinv the
  cache if the page has write permission, else inv the cache if the page's
  PTE is valid (XXX we actually wbinv in this case, as well, due to lack
  of idcache_inv_range()).  Only flush the TLB if the PTE changed.

Revision 1.30.2.11 / (download) - annotate - [select for diffs], Thu Aug 1 02:41:13 2002 UTC (9 years, 9 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.10: +12 -139 lines
Diff to previous 1.30.2.10 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.103 / (download) - annotate - [select for diffs], Wed Jul 31 17:34:23 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.102: +2 -57 lines
Diff to previous 1.102 (colored)

Overhaul how DMA ranges work in the ARM bus_dma implementation.

A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.

Revision 1.97.4.1 / (download) - annotate - [select for diffs], Wed Jul 31 00:23:17 2002 UTC (9 years, 9 months ago) by lukem
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1
Changes since 1.97: +13 -4 lines
Diff to previous 1.97 (colored)

Pull up revision 1.100 (requested by thorpej in ticket #587):
Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().

Revision 1.102 / (download) - annotate - [select for diffs], Wed Jul 31 00:20:52 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.101: +3 -79 lines
Diff to previous 1.101 (colored)

Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.

Revision 1.101 / (download) - annotate - [select for diffs], Tue Jul 30 16:16:39 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.100: +2 -7 lines
Diff to previous 1.100 (colored)

Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().

Revision 1.100 / (download) - annotate - [select for diffs], Tue Jul 30 16:07:23 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.99: +13 -4 lines
Diff to previous 1.99 (colored)

Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().

Revision 1.97.2.1 / (download) - annotate - [select for diffs], Sun Jul 14 17:45:54 2002 UTC (9 years, 10 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.97: +6 -7 lines
Diff to previous 1.97 (colored)

catch up with -current.

Revision 1.30.2.10 / (download) - annotate - [select for diffs], Tue Jul 2 19:04:40 2002 UTC (9 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.9: +8 -10 lines
Diff to previous 1.30.2.9 (colored) to branchpoint 1.30 (colored)

Several curlwp references here can revert to curproc.

Revision 1.30.2.9 / (download) - annotate - [select for diffs], Mon Jun 24 22:03:54 2002 UTC (9 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.8: +11 -11 lines
Diff to previous 1.30.2.8 (colored) to branchpoint 1.30 (colored)

Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).

Revision 1.14.2.7 / (download) - annotate - [select for diffs], Sun Jun 23 17:34:45 2002 UTC (9 years, 11 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.6: +903 -829 lines
Diff to previous 1.14.2.6 (colored)

catch up with -current on kqueue branch

Revision 1.30.2.8 / (download) - annotate - [select for diffs], Thu Jun 20 03:38:05 2002 UTC (9 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.7: +65 -22 lines
Diff to previous 1.30.2.7 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.99 / (download) - annotate - [select for diffs], Sun Jun 2 14:44:42 2002 UTC (9 years, 11 months ago) by drochner
Branch: MAIN
Changes since 1.98: +2 -3 lines
Diff to previous 1.98 (colored)

move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling

Revision 1.98 / (download) - annotate - [select for diffs], Sat Jun 1 23:50:54 2002 UTC (9 years, 11 months ago) by lukem
Branch: MAIN
Changes since 1.97: +6 -6 lines
Diff to previous 1.97 (colored)

SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field).  whilst it's O(n),
  this mirrors the functionality of SLIST_REMOVE() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups

Revision 1.97 / (download) - annotate - [select for diffs], Tue May 14 19:22:34 2002 UTC (10 years ago) by chris
Branch: MAIN
CVS Tags: netbsd-1-6-base
Branch point for: netbsd-1-6, gehenna-devsw
Changes since 1.96: +8 -2 lines
Diff to previous 1.96 (colored)

Implement scheduler lock protocol, this fixes PR arm/10863.

Also add correct locking when freeing pages in pmap_destroy (fix from potr)

This now means that arm32 kernels can be built with LOCKDEBUG enabled. (only tested on cats though)

Revision 1.96 / (download) - annotate - [select for diffs], Wed Apr 24 17:35:10 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.95: +55 -17 lines
Diff to previous 1.95 (colored)

* pmap_clean_page(): Clean up a comment.
* pmap_protect(): write back the range when doing a r/w -> r/o
  transition.  (Still leave the block concerned with this in
  pmap_clean_page() disabled, for now.)
* pmap_pte_init_xscale(): Disable read/write-allocate for now, until
  we figure out why sometimes cache lines of NULs get deposited into
  file data.  Also, make sure ECC protection of page table access is
  disabled for now.
* xscale_setup_minidata(): Make sure the mini-data cache is configured
  write-back with read/write-allocate.

Revision 1.30.2.7 / (download) - annotate - [select for diffs], Wed Apr 17 00:02:26 2002 UTC (10 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.6: +526 -223 lines
Diff to previous 1.30.2.6 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.95 / (download) - annotate - [select for diffs], Fri Apr 12 21:52:47 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.94: +19 -18 lines
Diff to previous 1.94 (colored)

Default all XScale core processors to the read/write-allocate write-back
cache mode.  Add a new XSCALE_CACHE_WRITE_THROUGH option for people who
are paranoid about the cache-related errata (you *do* have to line up
the planets correctly to trip them, but having the option is useful).

Revision 1.94 / (download) - annotate - [select for diffs], Wed Apr 10 17:39:31 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.93: +11 -6 lines
Diff to previous 1.93 (colored)

On XScale processors where we use write-back caching, use are
read/write-allocate line allocation policy.

On the i80321, this improves nearly every lmbench benchmark, dramatically
so the ones that are sensitive to memory bandwidth (100-300% improvement
for these).

Revision 1.93 / (download) - annotate - [select for diffs], Wed Apr 10 17:08:13 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.92: +67 -26 lines
Diff to previous 1.92 (colored)

Add a new function, pmap_alloc_ptpt(), that allocates the PTPT and
maps it the way we want, rather than using uvm_km_zalloc() and playing
the "revoke cacheability" song-and-dance.

Revision 1.92 / (download) - annotate - [select for diffs], Wed Apr 10 15:56:21 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.91: +13 -10 lines
Diff to previous 1.91 (colored)

pmap_alloc_l1pt(): Just enter the mappings for the L1 table by
hand, rather than calling pmap_kenter_pa() and then revoking
cacheability in the PTE.

Revision 1.91 / (download) - annotate - [select for diffs], Wed Apr 10 15:44:23 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.90: +5 -5 lines
Diff to previous 1.90 (colored)

Use L2_S_CACHE_MASK in places where we revoke cacheability.

Revision 1.90 / (download) - annotate - [select for diffs], Wed Apr 10 04:40:58 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.89: +3 -5 lines
Diff to previous 1.89 (colored)

pmap_kenter_pa(): Obey the "prot" argument, rather than simply making
all mappings r/w (!!).

Revision 1.89 / (download) - annotate - [select for diffs], Wed Apr 10 01:30:42 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.88: +4 -4 lines
Diff to previous 1.88 (colored)

In pmap_copy_page_xscale(), put the source page in the mini-data
cache, as well.  The mini-data cache is 2-way, so src and dst won't
clobber each other, and the smallness of the cache doesn't matter,
since we access each page once sequentially.

While we still have to do the initial clean of the source page, this
saves another 4K of main D$ pollution, and also means we don't have
to do 2 cache passes after the copy is complete (i.e. we can skip the
invalidation of the source page in the main cache, since it's no longer
there).

Revision 1.88 / (download) - annotate - [select for diffs], Wed Apr 10 00:45:43 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.87: +87 -4 lines
Diff to previous 1.87 (colored)

Add separate pmap_{zero,copy}_page() functions for generic ARM
vs. XScale.  Use the mini-data cache for the destination on XScale,
thus saving tossing out 4K of possible-useful data from the main
data cache each time.

This significantly improves every test in lmbench.

Revision 1.87 / (download) - annotate - [select for diffs], Tue Apr 9 23:44:01 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.86: +36 -2 lines
Diff to previous 1.86 (colored)

* Move the code that cleans the XScale mini-data cache into its
  own function.
* Add a new function which sets up the mini-data cache clean area
  properly.

Revision 1.86 / (download) - annotate - [select for diffs], Tue Apr 9 22:37:01 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.85: +50 -29 lines
Diff to previous 1.85 (colored)

* Split pte_cache_mode into pte_l1_s_cache_mode, pte_l2_l_cache_mode,
  and pte_l2_s_cache_mode.  The cache-meaningful bits are different
  for these descriptor types on some processor models.
* Add pte_*_cache_mask, corresponding to each above, which has a mask
  of the cache-meangful bits, and define those for generic and XScale
  MMU classes.  Note, the L2_S_CACHE_MASK_xscale definition requires
  use of the Extended Small Page L2 descriptor (the "X" bit overlaps
  with AP bits otherwise).

Revision 1.85 / (download) - annotate - [select for diffs], Tue Apr 9 21:00:43 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.84: +86 -2 lines
Diff to previous 1.84 (colored)

Define 2 classes of ARM MMUs:
1. Generic (compatible with ARM6)
1. XScale (can be used as generic, but also has certainly nifty extensions).

Define abstract PTE bit defintions for each MMU class.  If only one MMU
class is configured into the kernel (based on CPU_* options), then we
get the constants for that MMU class.  Otherwise we indirect through
varaibles set up via set_cpufuncs().

XXX The XScale bits are currently the same as the generic bits.  Baby steps.

Revision 1.84 / (download) - annotate - [select for diffs], Tue Apr 9 19:44:22 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.83: +8 -8 lines
Diff to previous 1.83 (colored)

L2_TYPE_S -> L2_S_PROTO

Revision 1.83 / (download) - annotate - [select for diffs], Tue Apr 9 19:37:16 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.82: +43 -35 lines
Diff to previous 1.82 (colored)

Use abstract names for the protection and PTE type bits in
L1 and L2 descriptors.  This will allow us to support different
PTE layouts that enable the use of extensions on different
processor models.

Revision 1.82 / (download) - annotate - [select for diffs], Fri Apr 5 22:17:41 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.81: +28 -30 lines
Diff to previous 1.81 (colored)

Back-out rev 1.75 (pmap_extract() rewrite), and fix the (minor)
bug that revision intended to fix properly.

Revision 1.81 / (download) - annotate - [select for diffs], Fri Apr 5 16:58:05 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.80: +77 -79 lines
Diff to previous 1.80 (colored)

* Rewrite the 32-bit ARM pte.h based on the ARM architecture manual.
  Significant cleanup, here, including better PTE bit names.
* Add XScale PTE extensions (ECC enable, write-allocate cache mode).
* Mechanical changes everywhere else to update for new pte.h.  While
  doing this, two bugs (as a result of typos) were fixed in

	arm/arm32/bus_dma.c
	evbarm/integrator/int_bus_dma.c

Revision 1.80 / (download) - annotate - [select for diffs], Thu Apr 4 05:42:29 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.79: +3 -3 lines
Diff to previous 1.79 (colored)

Eliminate a mask against PD_MASK.

Revision 1.79 / (download) - annotate - [select for diffs], Thu Apr 4 04:43:20 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.78: +24 -18 lines
Diff to previous 1.78 (colored)

There is no need to mask VAs and PAs w/ PG_FRAME to clear
the lower bits; UVM provides us page-aligned addresses for
everything.  For the paranoid, we'll leave KDASSERT()'s in
that check for this if the kernel is built with DEBUG.

Low-hanging fruit that shaves some cycles.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Apr 4 04:25:44 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.77: +46 -46 lines
Diff to previous 1.77 (colored)

Rename flags that are really part of the pv_entry/mdpage into
pmap.h and give them more descriptive names and better comments:
* PT_M  -> PVF_MOD (page is modified)
* PT_H  -> PVF_REF (page is referenced)
* PT_W  -> PVF_WIRED (mapping is wired)
* PT_Wr -> PVF_WRITE (mapping is writable)
* PT_NC -> PVF_NC (mapping is non-cacheable; multiple mappings)

Revision 1.77 / (download) - annotate - [select for diffs], Thu Apr 4 02:06:46 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.76: +8 -6 lines
Diff to previous 1.76 (colored)

Catch a couple more vector page mapping manipulations.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Apr 3 23:33:28 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.75: +29 -6 lines
Diff to previous 1.75 (colored)

Clean up handling of the vector page on 32-bit ARM systems:
* Don't refer to VA 0, instead refer to a new variable: vector_page
* Delete the old zero_page_*() functions, replacing them with a new
  one: vector_page_setprot().
* When manipulating vector page mappings in user pmaps, only do so if
  the vector page is below KERNEL_BASE (if it's above KERNEL_BASE, the
  vector page is mapped by the kernel pmap).
* Add a new function, arm32_vector_init(), which takes the virtual
  address of the vector page (which MUST be valid when the function
  is called) and a bitmask of vectors the kernel is going to take
  over, and performs all vector page initialization, including setting
  the V bit in the CPU Control register ("relocate vectors to high
  address"), if necessary.

Revision 1.75 / (download) - annotate - [select for diffs], Wed Apr 3 15:59:58 2002 UTC (10 years, 1 month ago) by reinoud
Branch: MAIN
Changes since 1.74: +25 -27 lines
Diff to previous 1.74 (colored)

Rototil and fix the pmap_extract function. It wouldn't even return data
when the part being quiried was mapped with a section (!) giving weird
results and had become a mess of goto's.

Complete rewrite and cleaned up the `goto'-jungle entirely ... ripped all
goto's. The resulting code is much better to read and might even have a
small performance gain.

Revision 1.30.2.6 / (download) - annotate - [select for diffs], Mon Apr 1 07:39:08 2002 UTC (10 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.5: +629 -961 lines
Diff to previous 1.30.2.5 (colored) to branchpoint 1.30 (colored)

Catch up to -current.
(CVS: It's not just a program. It's an adventure!)

Revision 1.74 / (download) - annotate - [select for diffs], Mon Mar 25 22:11:12 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.73: +3 -4 lines
Diff to previous 1.73 (colored)

Fix reporting of the kernel virtual address space range to UVM.

Revision 1.73 / (download) - annotate - [select for diffs], Mon Mar 25 19:53:38 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.72: +80 -224 lines
Diff to previous 1.72 (colored)

* Some cleanup.
* Delete the call to pmap_copy() in pmap.h

Revision 1.72 / (download) - annotate - [select for diffs], Mon Mar 25 17:50:12 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.71: +15 -14 lines
Diff to previous 1.71 (colored)

Clean up pmap_map_ptes() and pmap_unmap_ptes() a little, and add
a debug assertion that curproc is never NULL if mapping a non-current
pmap.

Revision 1.71 / (download) - annotate - [select for diffs], Mon Mar 25 17:33:26 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.70: +29 -30 lines
Diff to previous 1.70 (colored)

The target page of pmap_zero_page(), pmap_pageidlezero(), and
pmap_copy_page() will never have any mappings.  Therefore, it
is unnecessary to do a cache clean for that page.

Add assertions in #ifdef DEBUG that assert this invariant.

This shaves some cycles off the frequently-called pmap_zero_page()
and pmap_copy_page() (no need to look up the dst page's vm_page
structure, and one less function call to clean the page).

Revision 1.70 / (download) - annotate - [select for diffs], Mon Mar 25 04:51:20 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.69: +13 -13 lines
Diff to previous 1.69 (colored)

* Fix use of pmap_curmaxkvaddr.
* Use the PTP hint in the pmap.

Revision 1.69 / (download) - annotate - [select for diffs], Mon Mar 25 03:00:28 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.68: +16 -4 lines
Diff to previous 1.68 (colored)

Move some private pmap data structures into pmap.c

Revision 1.68 / (download) - annotate - [select for diffs], Sun Mar 24 21:32:18 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.67: +2 -104 lines
Diff to previous 1.67 (colored)

Garbage-collect pmap_pte() (and good riddance!)

Revision 1.67 / (download) - annotate - [select for diffs], Sun Mar 24 21:10:25 2002 UTC (10 years, 2 months ago) by chris
Branch: MAIN
Changes since 1.66: +2 -3 lines
Diff to previous 1.66 (colored)

remove pointless pg = NULL in else part of if (pg != NULL)

Revision 1.66 / (download) - annotate - [select for diffs], Sun Mar 24 20:48:59 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.65: +16 -55 lines
Diff to previous 1.65 (colored)

pmap_enter(): Use pmap_map_ptes() correctly.

Revision 1.65 / (download) - annotate - [select for diffs], Sun Mar 24 18:05:45 2002 UTC (10 years, 2 months ago) by chris
Branch: MAIN
Changes since 1.64: +4 -4 lines
Diff to previous 1.64 (colored)

Update pmap_copy_page to only map in the src readonly and only invalidate it after the copy, no need for it to flush the wb.

Revision 1.64 / (download) - annotate - [select for diffs], Sun Mar 24 06:07:00 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.63: +8 -10 lines
Diff to previous 1.63 (colored)

pmap_allocpagedir(): Don't use pmap_pte(), and simplify a little.

Revision 1.63 / (download) - annotate - [select for diffs], Sun Mar 24 05:55:31 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.62: +9 -2 lines
Diff to previous 1.62 (colored)

pmap_handled_emulation(): Fix locking protocol botch.
XXX Should we traverse the PV list and enable all PTEs?

Revision 1.62 / (download) - annotate - [select for diffs], Sun Mar 24 05:52:10 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.61: +29 -28 lines
Diff to previous 1.61 (colored)

pmap_handled_emulation(): Use pmap_map_ptes() correctly.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Mar 24 05:39:53 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.60: +32 -27 lines
Diff to previous 1.60 (colored)

pmap_modified_emulation(): Use pmap_map_ptes() correctly.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Mar 24 05:28:46 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.59: +28 -22 lines
Diff to previous 1.59 (colored)

pmap_unwire(): Use pmap_map_ptes() correctly.

Revision 1.59 / (download) - annotate - [select for diffs], Sun Mar 24 05:15:59 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.58: +15 -13 lines
Diff to previous 1.58 (colored)

pmap_clearbit(): Use pmap_map_ptes() correctly.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Mar 24 04:56:49 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.57: +11 -14 lines
Diff to previous 1.57 (colored)

Use pmap_is_curpmap() consistently.

Revision 1.57 / (download) - annotate - [select for diffs], Sun Mar 24 04:49:16 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.56: +27 -46 lines
Diff to previous 1.56 (colored)

Clean up the PTP allocation functions a bit.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Mar 24 03:37:21 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.55: +11 -13 lines
Diff to previous 1.55 (colored)

* arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()

Revision 1.55 / (download) - annotate - [select for diffs], Sun Mar 24 03:25:10 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.54: +6 -6 lines
Diff to previous 1.54 (colored)

Remove some redundant tests in pmap_enter().

Revision 1.54 / (download) - annotate - [select for diffs], Sat Mar 23 19:21:58 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.53: +43 -38 lines
Diff to previous 1.53 (colored)

Garbage-collect the "pagehook" stuff.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Mar 23 02:22:57 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.52: +27 -27 lines
Diff to previous 1.52 (colored)

* Rename PROCESS_PAGE_TBLS_BASE -> PTE_BASE
* Rename ALT_PAGE_TBLS_BASE -> APTE_BASE
* Garbage-collect PAGE_TABLE_SPACE_START

Revision 1.14.2.6 / (download) - annotate - [select for diffs], Sat Mar 16 15:56:04 2002 UTC (10 years, 2 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.5: +518 -390 lines
Diff to previous 1.14.2.5 (colored)

Catch up with -current.

Revision 1.52 / (download) - annotate - [select for diffs], Fri Mar 8 20:48:29 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
CVS Tags: newlock-base, newlock, eeh-devprop-base, eeh-devprop
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (colored)

Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.

Revision 1.51 / (download) - annotate - [select for diffs], Wed Mar 6 10:55:21 2002 UTC (10 years, 2 months ago) by chris
Branch: MAIN
Changes since 1.50: +19 -35 lines
Diff to previous 1.50 (colored)

Mostly style changes to stop us directly referencing tqh_first, and use TAILQ_FIRST instead.  Based on rev 1.130 of the i386 pmap.c.

Revision 1.50 / (download) - annotate - [select for diffs], Tue Mar 5 04:48:03 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.49: +44 -60 lines
Diff to previous 1.49 (colored)

* Make pmap_is_{modified,referenced}() macros in pmap.h that just
  test the attributes in the vm_page_md directly.
* Clean up pmap_clear_{modified,referenced}().
* Delete now-unused pmap_testbit().

Revision 1.49 / (download) - annotate - [select for diffs], Tue Mar 5 04:19:59 2002 UTC (10 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.48: +173 -267 lines
Diff to previous 1.48 (colored)

Switch back to using vm_page_md (thanks chuq for finding the bug
in the code that made it unstable before!)

Revision 1.48 / (download) - annotate - [select for diffs], Sun Mar 3 11:22:59 2002 UTC (10 years, 2 months ago) by chris
Branch: MAIN
Changes since 1.47: +133 -54 lines
Diff to previous 1.47 (colored)

Implement pmap_growkernel for arm32 based ports.
Note that this has been compiled on some systems, cats, IQ80310, IPAQ, netwinder and shark (note that shark's build is currently broken due to other reasons), but only actually run on cats.
Shark doesn't make use of the functionality as I believe there has to be a correlation between OFW and the kernel tables so that calls into OFW work.

Revision 1.30.2.5 / (download) - annotate - [select for diffs], Thu Feb 28 04:07:23 2002 UTC (10 years, 2 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.4: +216 -41 lines
Diff to previous 1.30.2.4 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Feb 22 04:49:20 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: ifpoll-base, ifpoll
Changes since 1.46: +13 -8 lines
Diff to previous 1.46 (colored)

Change pmap_map_entry() to work like pmap_map_chunk(): take a pointer
to the L1 table and a virtual address, and no pointer to the L2 table.
The L2 table will be looked up by pmap_map_entry(), which will panic
if the there is no L2 table for the requested VA.

NOTE: IT IS EXTREMELY IMPORTANT THAT THE CORRECT VIRTUAL ADDRESS
BE PROVIDED TO pmap_map_entry()!  Notably, the code that mapped
the kernel L2 tables into the kernel PT mapping L2 table were not
passing actual virtual addresses, but rather offsets into the range
mapped by the L2 table.  I have fixed up all of these call sites,
and tested the resulting kernel on both an IQ80310 and a Shark.
Other portmasters should examine their pmap_map_entry() calls if
their new kernels fail.

Revision 1.46 / (download) - annotate - [select for diffs], Thu Feb 21 21:58:01 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.45: +41 -22 lines
Diff to previous 1.45 (colored)

Keep track of which kernel PTs are available during bootstrap,
and let pmap_map_chunk() lookup the correct one to use for the
current VA.  Eliminate the "l2table" argument to pmap_map_chunk().

Add a second L2 table for mapping kernel text/data/bss on the
IQ80310 (fixes booting kernels with ramdisks).

Revision 1.45 / (download) - annotate - [select for diffs], Thu Feb 21 06:36:11 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.44: +11 -2 lines
Diff to previous 1.44 (colored)

In pmap_map_chunk(), if we can't use a section mapping, then
make sure that the L1 slot for the current VA points to an L2
table, and panic if it doesn't.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Feb 21 05:25:24 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.43: +6 -4 lines
Diff to previous 1.43 (colored)

Always pass the L1 table to pmap_map_chunk().  This allows pmap_map_chunk()
to perform some error checking.

Revision 1.43 / (download) - annotate - [select for diffs], Thu Feb 21 02:52:20 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.42: +87 -6 lines
Diff to previous 1.42 (colored)

map_chunk() -> pmap_map_chunk(), and move it to pmap.c

Revision 1.42 / (download) - annotate - [select for diffs], Wed Feb 20 20:41:16 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.41: +22 -2 lines
Diff to previous 1.41 (colored)

map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c

Revision 1.41 / (download) - annotate - [select for diffs], Wed Feb 20 02:32:57 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.40: +23 -2 lines
Diff to previous 1.40 (colored)

Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that
takes a prot and a "cacheable" indicator.

Revision 1.40 / (download) - annotate - [select for diffs], Wed Feb 20 00:10:17 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.39: +21 -3 lines
Diff to previous 1.39 (colored)

Rename map_section() to pmap_map_section(), move it to pmap.c, and give it
an extra argument (prot - specifies protection of the mapping).

Revision 1.14.2.5 / (download) - annotate - [select for diffs], Mon Feb 11 20:07:18 2002 UTC (10 years, 3 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.4: +40 -40 lines
Diff to previous 1.14.2.4 (colored)

Sync w/ -current.

Revision 1.39 / (download) - annotate - [select for diffs], Wed Feb 6 17:41:42 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.38: +301 -183 lines
Diff to previous 1.38 (colored)

Back out all the vm_page_md changes.  They are causing some
mysterious problems (a similar change to the i386 pmap causes
mysterious problems there, as well), and the issue needs to
be investigated more.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Feb 6 17:32:35 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.37: +26 -48 lines
Diff to previous 1.37 (colored)

Efficiency tweaks, some made possible by vm_page_md.

Revision 1.37 / (download) - annotate - [select for diffs], Tue Feb 5 21:14:36 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.36: +171 -267 lines
Diff to previous 1.36 (colored)

Use vm_page_md rather than pmap_physseg.  Saves lots of cycles in
common operations.

Revision 1.36 / (download) - annotate - [select for diffs], Fri Jan 25 19:19:25 2002 UTC (10 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.35: +18 -17 lines
Diff to previous 1.35 (colored)

Overhaul of the ARM cache code.  This is mostly a simplification
pass.  Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

	icache_sync_all         Synchronize I-cache
	icache_sync_range       Synchronize I-cache range

	dcache_wbinv_all        Write-back and Invalidate D-cache
	dcache_wbinv_range      Write-back and Invalidate D-cache range
	dcache_inv_range        Invalidate D-cache range
	dcache_wb_range         Write-back D-cache range

	idcache_wbinv_all       Write-back and Invalidate D-cache,
				Invalidate I-cache
	idcache_wbinv_range     Write-back and Invalidate D-cache,
				Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives.  Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jan 20 03:41:48 2002 UTC (10 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.34: +2 -4 lines
Diff to previous 1.34 (colored)

Some prototype cleanup.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Jan 17 03:06:21 2002 UTC (10 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.33: +24 -23 lines
Diff to previous 1.33 (colored)

Teach pmap_extract() about section mappings.

Revision 1.30.2.4 / (download) - annotate - [select for diffs], Fri Jan 11 23:38:01 2002 UTC (10 years, 4 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.3: +19 -43 lines
Diff to previous 1.30.2.3 (colored) to branchpoint 1.30 (colored)

More catchup.

Revision 1.14.2.4 / (download) - annotate - [select for diffs], Thu Jan 10 19:37:49 2002 UTC (10 years, 4 months ago) by thorpej
Branch: kqueue
Changes since 1.14.2.3: +355 -146 lines
Diff to previous 1.14.2.3 (colored)

Sync kqueue branch with -current.

Revision 1.30.2.3 / (download) - annotate - [select for diffs], Tue Jan 8 00:23:09 2002 UTC (10 years, 4 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.2: +28 -5 lines
Diff to previous 1.30.2.2 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jan 5 22:41:47 2002 UTC (10 years, 4 months ago) by chris
Branch: MAIN
Changes since 1.32: +19 -43 lines
Diff to previous 1.32 (colored)

Make some of the arm32 files build with LOOSE_PROTOTYPES not set in the makefile.  Turned up a few mismatched functions.  Note that this isn't all of the arm32 files.  Aim will be to get arm32 kernels built with LOOSE_PROTOTYPES not set.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Nov 22 18:24:43 2001 UTC (10 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.31: +15 -5 lines
Diff to previous 1.31 (colored)

Add cpu_cpwait() calls after TLB updates that are not expected to
be followed up by a pmap_update().

Revision 1.31 / (download) - annotate - [select for diffs], Mon Nov 19 18:41:32 2001 UTC (10 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.30: +15 -2 lines
Diff to previous 1.30 (colored)

Implement pmap_update().  Currently it just calls cpu_cpwait(),
which ensures that TLB/cache operations have completed.

Revision 1.30.2.2 / (download) - annotate - [select for diffs], Thu Nov 15 06:39:22 2001 UTC (10 years, 6 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.1: +3736 -0 lines
Diff to previous 1.30.2.1 (colored) to branchpoint 1.30 (colored)

Machine-dependent kernel mods for scheduler activations on
32-bit ARM processors.  Kernel boots multi-user on an XScale,
but upcalls not yet tested.

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Mon Nov 12 21:16:30 2001 UTC (10 years, 6 months ago) by thorpej
Branch: thorpej-mips-cache
Changes since 1.28: +70 -46 lines
Diff to previous 1.28 (colored) next main 1.29 (colored)

Sync the thorpej-mips-cache branch with -current.

Revision 1.30.2.1, Sat Nov 3 00:06:02 2001 UTC (10 years, 6 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30: +0 -3724 lines
FILE REMOVED

file pmap.c was added on branch nathanw_sa on 2001-11-15 06:39:22 +0000

Revision 1.30 / (download) - annotate - [select for diffs], Sat Nov 3 00:06:02 2001 UTC (10 years, 6 months ago) by rearnsha
Branch: MAIN
CVS Tags: thorpej-mips-cache-base
Branch point for: nathanw_sa
Changes since 1.29: +19 -13 lines
Diff to previous 1.29 (colored)

Replace most uses of pmap_pde_p with pmap_pde_page, since that is what
we need later in the code.  This fixes a fatal kernel fault in
pmap_modified_emulation if a user application tries to access a kernel
address that is section-mapped.

Add a diagnostic that detects attempts to call pmap_kenter_pa with a
va that is section-mapped.

Revision 1.29 / (download) - annotate - [select for diffs], Thu Nov 1 15:49:16 2001 UTC (10 years, 6 months ago) by rearnsha
Branch: MAIN
Changes since 1.28: +53 -35 lines
Diff to previous 1.28 (colored)

When clearing the modified bit for modified emulation, don't turn
caching on for a page just because we are clearing the writable bit in
the PTE: this is incompatible with the way pmap_vac_me_harder works,
and the code in the modified emulation handler doesn't know about
recalculating the cachable attributes (nor should it, IMO).

Also, if we are invalidating a page, flush its TLB entry; for some
reason we were only doing this when clearing the Write or modified
bits.

These patches together seem to solve the random seg-faults that were
still occuring occasionally under heavy paging.

Revision 1.28 / (download) - annotate - [select for diffs], Thu Oct 18 18:15:56 2001 UTC (10 years, 7 months ago) by rearnsha
Branch: MAIN
Branch point for: thorpej-mips-cache
Changes since 1.27: +21 -2 lines
Diff to previous 1.27 (colored)

Add a comment describing the logic implemented by pmap_vac_me_harder.

Revision 1.27 / (download) - annotate - [select for diffs], Thu Oct 18 17:06:14 2001 UTC (10 years, 7 months ago) by rearnsha
Branch: MAIN
Changes since 1.26: +12 -5 lines
Diff to previous 1.26 (colored)

On processors that support both write-through and write-back cacheing
(eg ARM920), the mode in which the processor operates is governed by
the use of both the PT_C and PT_B bits:

	PT_C=1,PT_B=1 -> Write-back
	PT_C=1,PT_B=0 -> Write-through

To support this define pte_cache_mode (initialized to PT_C|PT_B) and
use that when enabling cacheing for a page.

Revision 1.26 / (download) - annotate - [select for diffs], Thu Oct 18 16:50:30 2001 UTC (10 years, 7 months ago) by rearnsha
Branch: MAIN
Changes since 1.25: +24 -6 lines
Diff to previous 1.25 (colored)

With a diagnostic kernel, printing out a message each time we fail
to allocate a L1 pt is often enough to bring the system to its knees:
so make the messages PDEBUG(0,...).

However, even with this step having more than a small number of
processes searching for a L1 pt can still be enough to bring the system
down, since they all run at high priority and sleep for very little time,
thus blocking out user code from completing.  So implement an exponential
backoff when waiting for a page table, so that we don't hog the CPU when
memory is scarce.

Tested by running a make of the C compiler with "gnumake -j30" (and plenty
of swap space).

Revision 1.25 / (download) - annotate - [select for diffs], Thu Oct 18 16:32:40 2001 UTC (10 years, 7 months ago) by rearnsha
Branch: MAIN
Changes since 1.24: +168 -48 lines
Diff to previous 1.24 (colored)

Fix pmap_vac_me_harder to take into account pages that are mapped
into both kernel and user space.

Fixes port-arm32/13998.

Revision 1.18.2.1 / (download) - annotate - [select for diffs], Mon Oct 1 12:37:35 2001 UTC (10 years, 7 months ago) by fvdl
Branch: thorpej-devvp
Changes since 1.18: +79 -65 lines
Diff to previous 1.18 (colored) next main 1.19 (colored)

Catch up with -current.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Sep 29 09:39:12 2001 UTC (10 years, 7 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base3, thorpej-devvp-base2
Changes since 1.23: +8 -2 lines
Diff to previous 1.23 (colored)

Add a couple of simplelocks to make sure we call pagealloc with the uvm_object locked.  Found while running a LOCKDEBUG kernel on cats.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Sep 15 20:36:33 2001 UTC (10 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: post-chs-ubcperf
Changes since 1.22: +8 -31 lines
Diff to previous 1.22 (colored)

a whole bunch of changes to improve performance and robustness under load:

 - remove special treatment of pager_map mappings in pmaps.  this is
   required now, since I've removed the globals that expose the address range.
   pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
   no longer any need to special-case it.
 - eliminate struct uvm_vnode by moving its fields into struct vnode.
 - rewrite the pageout path.  the pager is now responsible for handling the
   high-level requests instead of only getting control after a bunch of work
   has already been done on its behalf.  this will allow us to UBCify LFS,
   which needs tighter control over its pages than other filesystems do.
   writing a page to disk no longer requires making it read-only, which
   allows us to write wired pages without causing all kinds of havoc.
 - use a new PG_PAGEOUT flag to indicate that a page should be freed
   on behalf of the pagedaemon when it's unlocked.  this flag is very similar
   to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
   pageout fails due to eg. an indirect-block buffer being locked.
   this allows us to remove the "version" field from struct vm_page,
   and together with shrinking "loan_count" from 32 bits to 16,
   struct vm_page is now 4 bytes smaller.
 - no longer use PG_RELEASED for swap-backed pages.  if the page is busy
   because it's being paged out, we can't release the swap slot to be
   reallocated until that write is complete, but unlike with vnodes we
   don't keep a count of in-progress writes so there's no good way to
   know when the write is done.  instead, when we need to free a busy
   swap-backed page, just sleep until we can get it busy ourselves.
 - implement a fast-path for extending writes which allows us to avoid
   zeroing new pages.  this substantially reduces cpu usage.
 - encapsulate the data used by the genfs code in a struct genfs_node,
   which must be the first element of the filesystem-specific vnode data
   for filesystems which use genfs_{get,put}pages().
 - eliminate many of the UVM pagerops, since they aren't needed anymore
   now that the pager "put" operation is a higher-level operation.
 - enhance the genfs code to allow NFS to use the genfs_{get,put}pages
   instead of a modified copy.
 - clean up struct vnode by removing all the fields that used to be used by
   the vfs_cluster.c code (which we don't use anymore with UBC).
 - remove kmem_object and mb_object since they were useless.
   instead of allocating pages to these objects, we now just allocate
   pages with no object.  such pages are mapped in the kernel until they
   are freed, so we can use the mapping to find the page to free it.
   this allows us to remove splvm() protection in several places.

The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.

Revision 1.22 / (download) - annotate - [select for diffs], Thu Sep 13 23:56:01 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
CVS Tags: pre-chs-ubcperf
Changes since 1.21: +9 -7 lines
Diff to previous 1.21 (colored)

Sprinkle some static and inline into a couple of functions.  Remove dead entries from pmap.h.

Revision 1.21 / (download) - annotate - [select for diffs], Thu Sep 13 22:45:23 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.20: +42 -6 lines
Diff to previous 1.20 (colored)

Update pmap_clearbit to flush the cache if the area is being made readonly.  Also only do this and the tlb flush if the pmap is the current pmap.

Revision 1.14.2.3 / (download) - annotate - [select for diffs], Thu Sep 13 01:13:07 2001 UTC (10 years, 8 months ago) by thorpej
Branch: kqueue
Changes since 1.14.2.2: +20 -27 lines
Diff to previous 1.14.2.2 (colored)

Update the kqueue branch to HEAD.

Revision 1.20 / (download) - annotate - [select for diffs], Mon Sep 10 23:40:02 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.19: +14 -21 lines
Diff to previous 1.19 (colored)

Update the pmap following some comments from Chuck Silvers:
Remove some overzealous locking of HEAD_TO_MAP
Remove a potential deadlock in pmap_copy_page
Change alloc and free l1pt to use kenter/kremove.
Update pmap_map to use kenter (only actually used by dumpsys, so no matching kremove)

Revision 1.19 / (download) - annotate - [select for diffs], Mon Sep 10 21:19:35 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.18: +8 -8 lines
Diff to previous 1.18 (colored)

Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.

Revision 1.14.2.2 / (download) - annotate - [select for diffs], Sat Aug 25 06:15:08 2001 UTC (10 years, 9 months ago) by thorpej
Branch: kqueue
Changes since 1.14.2.1: +1014 -446 lines
Diff to previous 1.14.2.1 (colored)

Merge Aug 24 -current into the kqueue branch.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Aug 11 14:47:56 2001 UTC (10 years, 9 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base
Branch point for: thorpej-devvp
Changes since 1.17: +2 -4 lines
Diff to previous 1.17 (colored)

Fix compile without DIAGNOSTICs enabled

Revision 1.17 / (download) - annotate - [select for diffs], Sat Aug 11 13:20:19 2001 UTC (10 years, 9 months ago) by chris
Branch: MAIN
Changes since 1.16: +1014 -444 lines
Diff to previous 1.16 (colored)

Checking a whole host of pmap changes:
Improved locking (not that we actually use it on a uniprocessor, but one day :)
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.
Laid framework 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, until they get freed off by pmap_remove.

Also implemented a page zeroing function when the processor is idling.  Note that hpcarm may wish to disable this.

I believe this code to be stable, if anyone has any problems please shout up.

Revision 1.14.2.1 / (download) - annotate - [select for diffs], Fri Aug 3 04:10:58 2001 UTC (10 years, 9 months ago) by lukem
Branch: kqueue
Changes since 1.14: +90 -80 lines
Diff to previous 1.14 (colored)

update to -current

Revision 1.16 / (download) - annotate - [select for diffs], Sun Jul 29 12:45:27 2001 UTC (10 years, 9 months ago) by chris
Branch: MAIN
Changes since 1.15: +43 -30 lines
Diff to previous 1.15 (colored)

Rework the pmap_release code to not have to walk the ptpt, it now uses a uvm_object to track the allocated vm_pages, this means it can free off the entries in the uvm_object.

Testing shows that it's about 5% faster on the make configure step for gmake.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Jul 28 18:12:43 2001 UTC (10 years, 10 months ago) by chris
Branch: MAIN
Changes since 1.14: +49 -52 lines
Diff to previous 1.14 (colored)

A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jul 8 19:44:43 2001 UTC (10 years, 10 months ago) by chs
Branch: MAIN
Branch point for: kqueue
Changes since 1.13: +18 -56 lines
Diff to previous 1.13 (colored)

clean up pmap_k{enter_pa,remove}():
a page is allowed to be mapped normally when k-mapped.
use UVM_PGA_ZERO to get zeroed pages rather than zeroing here.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Jul 6 20:15:13 2001 UTC (10 years, 10 months ago) by chris
Branch: MAIN
Changes since 1.12: +77 -3 lines
Diff to previous 1.12 (colored)

Implement proper versions of kenter_pa and kremove, I've based them on versions provided by Richard E.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Jun 25 23:22:38 2001 UTC (10 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.11: +92 -23 lines
Diff to previous 1.11 (colored)

Improve the vac_me_harder function, it is now slightly faster, however pmap_enter_pv is also now slightly slower, so they appear to balance out.

Note that I've some ideas in the works on how to improve the pv handling, so the slow down is short term only.

Also added non-advertising licence and copyright to myself and richard.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jun 24 23:21:04 2001 UTC (10 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.10: +100 -43 lines
Diff to previous 1.10 (colored)

Add a pmap_map_ptes function to map another process page table entries into the current pmap (similair to pmap_pte) but this allows multiple use of it, rather than repeated calls of pmap_pte for pte, map_ptes returns a pointer to the va where the entries were mapped so it can be reused ptes can be found by indexing into it.

Update some of the functions that use pmap_pte to pmap_map_ptes.

Note that there's a dummy macro for pmap_unmap_ptes, this is because at some point locking will be needed, so we need to be able to unlock them.

Performance gain seems to be minimal, however long term it should help improve things.

This is similair to the i386 pmap_map_ptes, however it's based on a version from Richard Earnshaw.

Revision 1.10 / (download) - annotate - [select for diffs], Fri Jun 22 09:09:42 2001 UTC (10 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.9: +21 -4 lines
Diff to previous 1.9 (colored)

Use a pool to store pmap structs.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Thu Jun 21 19:18:50 2001 UTC (10 years, 11 months ago) by nathanw
Changes since 1.3.2.1: +15 -18 lines
Diff to previous 1.3.2.1 (colored) next main 1.4 (colored)

Catch up to -current.

Revision 1.9 / (download) - annotate - [select for diffs], Sat May 26 21:27:04 2001 UTC (11 years ago) by chs
Branch: MAIN
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

replace vm_page_t with struct vm_page *.

Revision 1.8 / (download) - annotate - [select for diffs], Wed Apr 25 17:35:01 2001 UTC (11 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.7: +1 -2 lines
Diff to previous 1.7 (colored)

Garbage-collect pmap_page_index().

Revision 1.7 / (download) - annotate - [select for diffs], Tue Apr 24 04:30:53 2001 UTC (11 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_beforemerge
Changes since 1.6: +6 -1 lines
Diff to previous 1.6 (colored)

Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.

Revision 1.3.4.4 / (download) - annotate - [select for diffs], Mon Apr 23 09:41:33 2001 UTC (11 years, 1 month ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.3: +9 -16 lines
Diff to previous 1.3.4.3 (colored) next main 1.4 (colored)

Sync with HEAD.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Apr 22 23:42:13 2001 UTC (11 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase, thorpej_scsipi_base
Changes since 1.5: +1 -15 lines
Diff to previous 1.5 (colored)

Remove pmap_kenter_pgs().  It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.

Revision 1.5 / (download) - annotate - [select for diffs], Fri Apr 20 18:11:53 2001 UTC (11 years, 1 month ago) by toshii
Branch: MAIN
Changes since 1.4: +9 -2 lines
Diff to previous 1.4 (colored)

In pmap_allocpagedir(), check if uvm_km_zalloc of ptpt is successful,
and handle alloc failure case.

Revision 1.3.2.1 / (download) - annotate - [select for diffs], Mon Apr 9 01:50:46 2001 UTC (11 years, 1 month ago) by nathanw
Changes since 1.3: +2 -6 lines
Diff to previous 1.3 (colored)

Catch up with -current.

Revision 1.3.4.3 / (download) - annotate - [select for diffs], Tue Mar 27 15:30:18 2001 UTC (11 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.2: +2 -6 lines
Diff to previous 1.3.4.2 (colored)

Sync with HEAD.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Mar 15 06:10:35 2001 UTC (11 years, 2 months ago) by chs
Branch: MAIN
Changes since 1.3: +2 -6 lines
Diff to previous 1.3 (colored)

eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>

Revision 1.3.4.2 / (download) - annotate - [select for diffs], Mon Mar 12 13:27:20 2001 UTC (11 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.1: +2772 -0 lines
Diff to previous 1.3.4.1 (colored)

Sync with HEAD.

Revision 1.3.4.1, Sun Mar 4 19:05:55 2001 UTC (11 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3: +0 -2772 lines
FILE REMOVED

file pmap.c was added on branch thorpej_scsipi on 2001-03-12 13:27:20 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Sun Mar 4 19:05:55 2001 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Branch point for: thorpej_scsipi
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

more vm_offset_t/vm_size_t -> {p,v}{addr,size}_t changes
move pmap_* declarations to pmap.h.  fix conflicts this
exposed (e.g different definitions for pmap_bootstrap).

Revision 1.2 / (download) - annotate - [select for diffs], Sun Mar 4 07:30:19 2001 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.1: +47 -46 lines
Diff to previous 1.1 (colored)

Convert some vm_size_t to vsize_t/psize_t.   Change vaddr_t to paddr_t
where appropriate.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Mar 4 05:08:09 2001 UTC (11 years, 2 months ago) by matt
Branch: MAIN

Move from arm32/arm32.  s/vm_offset_t/vaddr_t/g

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>