The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.55.4.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.55: +9 -17 lines
Diff to previous 1.55 (colored) next main 1.56 (colored)

sync with head

Revision 1.55.8.1 / (download) - annotate - [select for diffs], Fri Feb 24 09:11:27 2012 UTC (3 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.55: +9 -17 lines
Diff to previous 1.55 (colored) next main 1.56 (colored)

sync to -current.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Feb 19 21:06:05 2012 UTC (3 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, HEAD
Changes since 1.55: +9 -17 lines
Diff to previous 1.55 (colored)

Remove COMPAT_SA / KERN_SA.  Welcome to 6.99.3!
Approved by core@.

Revision 1.54.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.54: +5 -3 lines
Diff to previous 1.54 (colored) next main 1.55 (colored)

Sync with HEAD.

Revision 1.53.4.1 / (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.53: +6 -4 lines
Diff to previous 1.53 (colored) next main 1.54 (colored)

sync with head

Revision 1.54.4.1 / (download) - annotate - [select for diffs], Thu Feb 17 11:59:33 2011 UTC (15 months, 1 week ago) by bouyer
Branch: bouyer-quota2
Changes since 1.54: +5 -3 lines
Diff to previous 1.54 (colored) next main 1.55 (colored)

Sync with HEAD

Revision 1.55 / (download) - annotate - [select for diffs], Thu Feb 10 14:46:46 2011 UTC (15 months, 2 weeks ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, uebayasi-xip-base7, rmind-uvmplock-nbase, rmind-uvmplock-base, netbsd-6-base, netbsd-6, jym-xensuspend-nbase, jym-xensuspend-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.54: +5 -3 lines
Diff to previous 1.54 (colored)

Make vmapbuf() return success/error and make physio deal with a
failure.

Revision 1.54 / (download) - annotate - [select for diffs], Fri Jan 14 02:06:23 2011 UTC (16 months, 1 week ago) by rmind
Branch: MAIN
CVS Tags: jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored)

Retire struct user, remove sys/user.h inclusions.  Note sys/user.h header
as obsolete.  Remove USER_TO_UAREA/UAREA_TO_USER macros.

Various #include fixes and review by matt@.

Revision 1.43.4.2 / (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.43.4.1: +28 -74 lines
Diff to previous 1.43.4.1 (colored) to branchpoint 1.43 (colored) next main 1.44 (colored)

sync with head

Revision 1.53 / (download) - annotate - [select for diffs], Sun Nov 29 04:15:42 2009 UTC (2 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, matt-premerge-20091211, matt-mips64-premerge-20101231
Branch point for: rmind-uvmplock
Changes since 1.52: +7 -5 lines
Diff to previous 1.52 (colored)

Replace l_addr with uvm_lwp_getuarea() in various MD code, mostly cpu_lwp_fork().

Revision 1.52 / (download) - annotate - [select for diffs], Thu Nov 26 00:19:12 2009 UTC (2 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (colored)

Kill proc0paddr.  Use lwp0.l_addr instead.

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

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

Revision 1.50 / (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.49: +2 -55 lines
Diff to previous 1.49 (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.46.8.1 / (download) - annotate - [select for diffs], Wed May 13 17:16:13 2009 UTC (3 years ago) by jym
Branch: jym-xensuspend
Changes since 1.46: +9 -16 lines
Diff to previous 1.46 (colored) next main 1.47 (colored)

Sync with HEAD.

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

Revision 1.43.4.1 / (download) - annotate - [select for diffs], Mon May 4 08:10:39 2009 UTC (3 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.43: +29 -34 lines
Diff to previous 1.43 (colored)

sync with head.

Revision 1.46.2.1 / (download) - annotate - [select for diffs], Tue Apr 28 07:33:43 2009 UTC (3 years ago) by skrll
Branch: nick-hppapmap
Changes since 1.46: +9 -16 lines
Diff to previous 1.46 (colored) next main 1.47 (colored)

Sync with HEAD.

Revision 1.49 / (download) - annotate - [select for diffs], Sat Mar 14 21:04:05 2009 UTC (3 years, 2 months ago) by dsl
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.48: +3 -4 lines
Diff to previous 1.48 (colored)

ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.

Revision 1.48 / (download) - annotate - [select for diffs], Sat Mar 14 15:36:01 2009 UTC (3 years, 2 months ago) by dsl
Branch: MAIN
Changes since 1.47: +6 -12 lines
Diff to previous 1.47 (colored)

Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)

Revision 1.47 / (download) - annotate - [select for diffs], Sat Mar 14 14:45:55 2009 UTC (3 years, 2 months ago) by dsl
Branch: MAIN
Changes since 1.46: +4 -4 lines
Diff to previous 1.46 (colored)

Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.

Revision 1.42.6.3 / (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.42.6.2: +15 -7 lines
Diff to previous 1.42.6.2 (colored) to branchpoint 1.42 (colored) next main 1.43 (colored)

Sync with HEAD.

Revision 1.44.2.3 / (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.44.2.2: +17 -9 lines
Diff to previous 1.44.2.2 (colored) to branchpoint 1.44 (colored) next main 1.45 (colored)

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

Revision 1.46 / (download) - annotate - [select for diffs], Tue Oct 21 19:01:00 2008 UTC (3 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: nick-hppapmap-base2, netbsd-5-base, 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, 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, netbsd-5, mjf-devfs2-base, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, jym-xensuspend
Changes since 1.45: +17 -9 lines
Diff to previous 1.45 (colored)

Adapt to SA (conditional KERN_SA) and add cpu_setfunc

Revision 1.44.2.2 / (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.44.2.1: +375 -0 lines
Diff to previous 1.44.2.1 (colored) to branchpoint 1.44 (colored)

Sync with HEAD.

Revision 1.42.6.2 / (download) - annotate - [select for diffs], Sun Sep 28 10:39:48 2008 UTC (3 years, 7 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.42.6.1: +5 -11 lines
Diff to previous 1.42.6.1 (colored) to branchpoint 1.42 (colored)

Sync with HEAD.

Revision 1.43.6.1 / (download) - annotate - [select for diffs], Thu Sep 18 04:33:19 2008 UTC (3 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.43: +7 -13 lines
Diff to previous 1.43 (colored) next main 1.44 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Aug 7 04:16:26 2008 UTC (3 years, 9 months ago) by matt
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, haad-dm-base1
Changes since 1.44: +3 -3 lines
Diff to previous 1.44 (colored)

Remove unneeded cast.

Revision 1.43.8.1 / (download) - annotate - [select for diffs], Fri Jul 18 16:37:27 2008 UTC (3 years, 10 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.43: +6 -12 lines
Diff to previous 1.43 (colored) next main 1.44 (colored)

Sync with head.

Revision 1.44.2.1, Mon Jul 7 12:18:45 2008 UTC (3 years, 10 months ago) by haad
Branch: haad-dm
Changes since 1.44: +0 -375 lines
FILE REMOVED

file vm_machdep.c was added on branch haad-dm on 2008-10-19 22:15:41 +0000

Revision 1.44 / (download) - annotate - [select for diffs], Mon Jul 7 12:18:45 2008 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: simonb-wapbl-nbase, simonb-wapbl-base
Branch point for: haad-dm
Changes since 1.43: +6 -12 lines
Diff to previous 1.43 (colored)

Update a comment.

Revision 1.42.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.42: +24 -2 lines
Diff to previous 1.42 (colored)

Sync with HEAD.

Revision 1.42.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:14:53 2008 UTC (4 years, 2 months ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.42: +24 -2 lines
Diff to previous 1.42 (colored) next main 1.43 (colored)

sync with head.

Revision 1.38.12.2 / (download) - annotate - [select for diffs], Sun Mar 23 02:03:54 2008 UTC (4 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.38.12.1: +26 -12 lines
Diff to previous 1.38.12.1 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored)

sync with HEAD

Revision 1.38.10.3 / (download) - annotate - [select for diffs], Fri Mar 21 13:34:40 2008 UTC (4 years, 2 months ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.38.10.2: +24 -2 lines
Diff to previous 1.38.10.2 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored)

Sync with head.

Revision 1.33.2.6 / (download) - annotate - [select for diffs], Mon Mar 17 09:14:15 2008 UTC (4 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.33.2.5: +24 -2 lines
Diff to previous 1.33.2.5 (colored) to branchpoint 1.33 (colored) next main 1.34 (colored)

sync with head.

Revision 1.43 / (download) - annotate - [select for diffs], Sat Mar 15 10:19:40 2008 UTC (4 years, 2 months ago) by rearnsha
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-1, wrstuden-revivesa-base, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-nbase, chris-arm-intr-rework-base7, ad-socklock-base1
Branch point for: yamt-nfs-mp, wrstuden-revivesa, simonb-wapbl
Changes since 1.42: +24 -2 lines
Diff to previous 1.42 (colored)

VFP support.

Revision 1.38.6.2 / (download) - annotate - [select for diffs], Thu Feb 28 21:47:42 2008 UTC (4 years, 2 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.38.6.1: +4 -12 lines
Diff to previous 1.38.6.1 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored)

Sync with HEAD.

Revision 1.40.2.1 / (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.40: +4 -12 lines
Diff to previous 1.40 (colored) next main 1.41 (colored)

Sync with HEAD.

Revision 1.33.2.5 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:38 2008 UTC (4 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.33.2.4: +4 -12 lines
Diff to previous 1.33.2.4 (colored) to branchpoint 1.33 (colored)

sync with head

Revision 1.40.8.2 / (download) - annotate - [select for diffs], Sun Jan 20 17:51:03 2008 UTC (4 years, 4 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.40.8.1: +1 -10 lines
Diff to previous 1.40.8.1 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored)

Sync with HEAD

Revision 1.38.10.2 / (download) - annotate - [select for diffs], Sun Jan 20 16:03:58 2008 UTC (4 years, 4 months ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.38.10.1: +4 -12 lines
Diff to previous 1.38.10.1 (colored) to branchpoint 1.38 (colored)

Sync to HEAD.

Revision 1.42 / (download) - annotate - [select for diffs], Sat Jan 19 15:04:10 2008 UTC (4 years, 4 months ago) by chris
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base, chris-arm-intr-rework-base6, chris-arm-intr-rework-base5, chris-arm-intr-rework-base4, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.41: +3 -12 lines
Diff to previous 1.41 (colored)

With the removal of IPKDB on arm, the undefined stack is only used to
bounce into SVC32 mode, there is no per-process data stored on it.

We can therefore use the undefined stack setup by the platform machdep.c
as a system wide undefined stack.

This removes the need for a per-process undefined stack, and the processor
mode switching overhead it causes in cpu_switchto.

The space freed in the USPACE is used to increase the per process kernel
stack size.

Revision 1.40.8.1 / (download) - annotate - [select for diffs], Sat Jan 19 12:14:11 2008 UTC (4 years, 4 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored)

Sync with HEAD

Revision 1.41 / (download) - annotate - [select for diffs], Sat Jan 12 20:50:24 2008 UTC (4 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored)

Push a switchframe in dumpsys and cpu_switchto, but as dumpsys calls
other funcs a switchframe needs to be a multiple of 8 bytes. Stash sp as
well in the switchframe to bump it to 24bytes.

Setup the switchframe appropriately in cpu_lwp_fork.

Remove savectx - nothing uses it.

All of this make gdb's life much easier when dealing with crash dumps and
live kernels.

Reviewd by chris.

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

Sync with HEAD.

Revision 1.38.12.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:15:01 2007 UTC (4 years, 6 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.38: +2 -4 lines
Diff to previous 1.38 (colored)

sync with HEAD

Revision 1.38.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.38: +2 -4 lines
Diff to previous 1.38 (colored)

Sync with HEAD.

Revision 1.33.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:25:22 2007 UTC (4 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.33.2.3: +2 -4 lines
Diff to previous 1.33.2.3 (colored) to branchpoint 1.33 (colored)

sync with head.

Revision 1.40 / (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, 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, matt-armv6-base, jmcneill-pm-base, jmcneill-base, cube-autoconf-base, cube-autoconf, chris-arm-intr-rework-base3, bouyer-xeni386-merge1, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: mjf-devfs, bouyer-xeni386
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (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.37.2.2 / (download) - annotate - [select for diffs], Tue Oct 9 13:37:30 2007 UTC (4 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.37.2.1: +2 -4 lines
Diff to previous 1.37.2.1 (colored) to branchpoint 1.37 (colored) next main 1.38 (colored)

Sync with head.

Revision 1.37.10.2 / (download) - annotate - [select for diffs], Wed Oct 3 19:22:39 2007 UTC (4 years, 7 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.37.10.1: +2 -4 lines
Diff to previous 1.37.10.1 (colored) to branchpoint 1.37 (colored) next main 1.38 (colored)

Sync with HEAD

Revision 1.38.8.1 / (download) - annotate - [select for diffs], Tue Oct 2 18:26:53 2007 UTC (4 years, 7 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.38: +2 -4 lines
Diff to previous 1.38 (colored) next main 1.39 (colored)

Sync with HEAD.

Revision 1.39 / (download) - annotate - [select for diffs], Sat Sep 15 09:25:22 2007 UTC (4 years, 8 months ago) by scw
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking-base, ppcoea-renovation-base, bouyer-xenamd64
Changes since 1.38: +2 -4 lines
Diff to previous 1.38 (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.33.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:23:16 2007 UTC (4 years, 8 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.33.2.2: +7 -33 lines
Diff to previous 1.33.2.2 (colored) to branchpoint 1.33 (colored)

sync with head.

Revision 1.37.4.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.37: +6 -32 lines
Diff to previous 1.37 (colored) next main 1.38 (colored)

Sync with head.

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

Sync with head.

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

Update to HEAD.

Revision 1.38 / (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.37: +6 -32 lines
Diff to previous 1.37 (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.35.14.4 / (download) - annotate - [select for diffs], Mon Apr 23 21:04:20 2007 UTC (5 years, 1 month ago) by skrll
Branch: yamt-idlelwp
Changes since 1.35.14.3: +2 -15 lines
Diff to previous 1.35.14.3 (colored) to branchpoint 1.35 (colored) next main 1.36 (colored)

Nuke cpu_setfunc

Revision 1.35.14.3 / (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.35.14.2: +7 -20 lines
Diff to previous 1.35.14.2 (colored) to branchpoint 1.35 (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.35.14.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:47:03 2007 UTC (5 years, 2 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.35.14.1: +3 -3 lines
Diff to previous 1.35.14.1 (colored) to branchpoint 1.35 (colored)

Sync with HEAD.

Revision 1.37 / (download) - annotate - [select for diffs], Sun Mar 4 05:59:37 2007 UTC (5 years, 2 months ago) by christos
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: vmlocking, ppcoea-renovation, mjf-ufs-trans
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

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

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

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

Revision 1.33.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:05:56 2007 UTC (5 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.33.2.1: +7 -2 lines
Diff to previous 1.33.2.1 (colored) to branchpoint 1.33 (colored)

sync with head.

Revision 1.36 / (download) - annotate - [select for diffs], Sun Feb 18 07:25:35 2007 UTC (5 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.35: +7 -2 lines
Diff to previous 1.35 (colored)

Changes for newlock2.

Revision 1.34.4.1 / (download) - annotate - [select for diffs], Sat Sep 9 02:37:53 2006 UTC (5 years, 8 months ago) by rpaulo
Branch: rpaulo-netinet-merge-pcb
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored) next main 1.35 (colored)

sync with head

Revision 1.33.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.33: +4 -3 lines
Diff to previous 1.33 (colored)

sync with head.

Revision 1.34.6.1 / (download) - annotate - [select for diffs], Thu Jun 1 22:34:15 2006 UTC (5 years, 11 months ago) by kardel
Branch: simonb-timecounters
CVS Tags: simonb-timcounters-final
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored) next main 1.35 (colored)

Sync with head.

Revision 1.34.12.1 / (download) - annotate - [select for diffs], Wed May 24 15:47:51 2006 UTC (6 years ago) by tron
Branch: peter-altq
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored) next main 1.35 (colored)

Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.34.8.1 / (download) - annotate - [select for diffs], Wed May 24 10:56:35 2006 UTC (6 years ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored) next main 1.35 (colored)

sync with head.

Revision 1.34.10.1 / (download) - annotate - [select for diffs], Thu May 11 23:26:18 2006 UTC (6 years ago) by elad
Branch: elad-kernelauth
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored) next main 1.35 (colored)

sync with head

Revision 1.35 / (download) - annotate - [select for diffs], Wed May 10 06:24:02 2006 UTC (6 years ago) by skrll
Branch: MAIN
CVS Tags: 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, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, post-newlock2-merge, newlock2-nbase, newlock2-base, newlock2, netbsd-4-base, 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, netbsd-4, matt-nb4-arm-base, matt-nb4-arm, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-idlelwp
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored)

Fix a bunch of cast lvalues.

Revision 1.34 / (download) - annotate - [select for diffs], Sun Dec 11 12:16:41 2005 UTC (6 years, 5 months ago) by christos
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, simonb-timecounters, rpaulo-netinet-merge-pcb, peter-altq, elad-kernelauth
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

merge ktrace-lwp.

Revision 1.32.4.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.32: +4 -4 lines
Diff to previous 1.32 (colored) next main 1.33 (colored)

sync with -current

Revision 1.28.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.28.2.4: +4 -4 lines
Diff to previous 1.28.2.4 (colored) next main 1.29 (colored)

Sync with HEAD.

Revision 1.33 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:23 2005 UTC (7 years, 1 month ago) by yamt
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, ktrace-lwp-base, kent-audio2-base
Branch point for: yamt-lazymbuf
Changes since 1.32: +4 -4 lines
Diff to previous 1.32 (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.32.6.1 / (download) - annotate - [select for diffs], Fri Jan 28 10:33:59 2005 UTC (7 years, 3 months ago) by yamt
Branch: yamt-km
Changes since 1.32: +4 -4 lines
Diff to previous 1.32 (colored) next main 1.33 (colored)

convert arch/arm to new apis.

Revision 1.28.2.4 / (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.28.2.3: +2 -2 lines
Diff to previous 1.28.2.3 (colored)

Fix the sync with head I botched.

Revision 1.28.2.3 / (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.28.2.2: +2 -2 lines
Diff to previous 1.28.2.2 (colored)

Sync with HEAD.

Revision 1.28.2.2 / (download) - annotate - [select for diffs], Fri Sep 3 12:44:28 2004 UTC (7 years, 8 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.28.2.1: +2 -37 lines
Diff to previous 1.28.2.1 (colored)

Sync with HEAD

Revision 1.32 / (download) - annotate - [select for diffs], Sat Aug 28 22:12:40 2004 UTC (7 years, 8 months ago) by thorpej
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, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Changes since 1.31: +2 -37 lines
Diff to previous 1.31 (colored)

Garbage-collect pagemove(); nothing use it anymore (YAY!!!)

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

Sync with HEAD

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jan 4 11:33:29 2004 UTC (8 years, 4 months ago) by jdolecek
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.30: +8 -5 lines
Diff to previous 1.30 (colored)

Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread

Revision 1.30 / (download) - annotate - [select for diffs], Thu Oct 23 08:59:10 2003 UTC (8 years, 7 months ago) by scw
Branch: MAIN
Changes since 1.29: +2 -4 lines
Diff to previous 1.29 (colored)

Don't drop to spl0 in cpu_switch/cpu_switchto. Do it in the idle loop
instead.

With this change, we no longer need to save the current interrupt level
in the switchframe. This is no great loss since both cpu_switch and
cpu_switchto are always called at splsched, so the process' spl is
effectively saved somewhere in the callstack.

This fixes an evbarm problem reported by Allen Briggs:

        lwp gets into sa_switch -> mi_switch with newl != NULL
            when it's the last element on the runqueue, so it
            hits the second bit of:
                if (newl == NULL) {
                        retval = cpu_switch(l, NULL);
                } else {
                        remrunqueue(newl);
                        cpu_switchto(l, newl);
                        retval = 0;
                }

        mi_switch calls remrunqueue() and cpu_switchto()

        cpu_switchto unlocks the sched lock
        cpu_switchto drops CPU priority
        softclock is received
        schedcpu is called from softclock
        schedcpu hits the first if () {} block here:
                if (l->l_priority >= PUSER) {
                        if (l->l_stat == LSRUN &&
                            (l->l_flag & L_INMEM) &&
                            (l->l_priority / PPQ) != (l->l_usrpri / PPQ)) {
                                remrunqueue(l);
                                l->l_priority = l->l_usrpri;
                                setrunqueue(l);
                        } else
                                l->l_priority = l->l_usrpri;
                }

        Since mi_switch has already run remrunqueue, the LWP has been
            removed, but it's not been put back on any queue, so the
            remrunqueue panics.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Jul 15 00:24:42 2003 UTC (8 years, 10 months ago) by lukem
Branch: MAIN
Changes since 1.28: +4 -1 lines
Diff to previous 1.28 (colored)

__KERNEL_RCSID()

Revision 1.28 / (download) - annotate - [select for diffs], Sat May 17 00:41:36 2003 UTC (9 years ago) by thorpej
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.27: +15 -26 lines
Diff to previous 1.27 (colored)

Rewrite pagemove() to use pmap functions, rather than frobbing PTEs
directly.  The old code was totally bogus for the new pmap.  New code
lifted from SH5 port.

Fixes panics in ffs_balloc_ufs2() seen while stress-testing a file
system on an XScale-based server platform.

Revision 1.27 / (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.26: +1 -4 lines
Diff to previous 1.26 (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.26 / (download) - annotate - [select for diffs], Fri Apr 18 11:08:26 2003 UTC (9 years, 1 month ago) by scw
Branch: MAIN
Changes since 1.25: +4 -1 lines
Diff to previous 1.25 (colored)

Add the generic arm32 bits of the new pmap, contributed by Wasabi Systems.

Some features of the new pmap are:

 - It allows L1 descriptor tables to be shared efficiently between
   multiple processes. A typical "maxusers 32" kernel, where NPROC is set
   to 532, requires 35 L1s. A "maxusers 2" kernel runs quite happily
   with just 4 L1s. This completely solves the problem of running out
   of contiguous physical memory for allocating new L1s at runtime on a
   busy system.

 - Much improved cache/TLB management "smarts". This change ripples
   out to encompass the low-level context switch code, which is also
   much smarter about when to flush the cache/TLB, and when not to.

 - Faster allocation of L2 page tables and associated metadata thanks,
   in part, to the pool_cache enhancements recently contributed to
   NetBSD by Wasabi Systems.

 - Faster VM space teardown due to accurate referenced tracking of L2
   page tables.

 - Better/faster cache-alias tracking.

The new pmap is enabled by adding options ARM32_PMAP_NEW to the kernel
config file, and making the necessary changes to the port-specific
initarm() function. Several ports have already been converted and will
be committed shortly.

Revision 1.25 / (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.24: +5 -5 lines
Diff to previous 1.24 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.24 / (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.23: +68 -44 lines
Diff to previous 1.23 (colored)

Merge the nathanw_sa branch.

Revision 1.8.4.14 / (download) - annotate - [select for diffs], Fri Jan 3 21:19:10 2003 UTC (9 years, 4 months ago) by thorpej
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.8.4.13: +4 -7 lines
Diff to previous 1.8.4.13 (colored) to branchpoint 1.8 (colored) next main 1.9 (colored)

Merge switch_exit() and switch_lwp_exit(), and hand-schedule the
resulting function to avoid stalls on StrongARM and XScale.

Revision 1.8.4.13 / (download) - annotate - [select for diffs], Tue Dec 31 02:37:57 2002 UTC (9 years, 4 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.8.4.12: +16 -10 lines
Diff to previous 1.8.4.12 (colored) to branchpoint 1.8 (colored)

Copy/initialize PMC state in cpu_proc_fork().

Revision 1.8.4.12 / (download) - annotate - [select for diffs], Wed Dec 11 05:53:03 2002 UTC (9 years, 5 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.8.4.11: +2 -2 lines
Diff to previous 1.8.4.11 (colored) to branchpoint 1.8 (colored)

Sync with HEAD.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Nov 24 01:07:47 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.22: +2 -2 lines
Diff to previous 1.22 (colored)

Fix's DEBUG kernel's not making it into multiuser on cats. (as spotted by
nick)
When wiring a page with pmap_enter you must supply the protection in the
flags as well as in the prot.

Revision 1.22.2.2 / (download) - annotate - [select for diffs], Sat Oct 19 11:59:37 2002 UTC (9 years, 7 months ago) by bjh21
Branch: bjh21-hydra
Changes since 1.22.2.1: +410 -0 lines
Diff to previous 1.22.2.1 (colored) to branchpoint 1.22 (colored) next main 1.23 (colored)

Re-do the following revisions, this time on a branch where they won't
interfere with the nathanw_sa merge:

syssrc/sys/arch/arm/arm32/cpuswitch.S			1.26
syssrc/sys/arch/arm/arm32/genassym.cf			1.18
syssrc/sys/arch/arm/arm32/vm_machdep.c			1.21
syssrc/sys/arch/arm/include/pcb.h			1.5

Original commit message:

In cpu_switch(), stack more registers at the start of the function,
and hence save fewer into the PCB.  This should give me enough free
registers in cpu_switch to tidy things up and support MULTIPROCESSOR
properly.  While we're here, make the stacked registers into an
APCS stack frame, so that DDB backtraces through cpu_switch() will
work.

This also affects cpu_fork(), which has to fabricate a switchframe and
PCB for the new process.

Revision 1.22.2.1, Sat Oct 19 00:10:53 2002 UTC (9 years, 7 months ago) by bjh21
Branch: bjh21-hydra
Changes since 1.22: +0 -407 lines
FILE REMOVED

file vm_machdep.c was added on branch bjh21-hydra on 2002-10-19 11:59:37 +0000

Revision 1.22 / (download) - annotate - [select for diffs], Sat Oct 19 00:10:53 2002 UTC (9 years, 7 months ago) by bjh21
Branch: MAIN
CVS Tags: kqueue-beforemerge, kqueue-aftermerge, bjh21-hydra-base
Branch point for: bjh21-hydra
Changes since 1.21: +0 -3 lines
Diff to previous 1.21 (colored)

Undo recent cpu_switch register usage changes in order to decrease nathanw_sa
merge pain.

Revision 1.21 / (download) - annotate - [select for diffs], Fri Oct 18 21:32:58 2002 UTC (9 years, 7 months ago) by bjh21
Branch: MAIN
Changes since 1.20: +4 -1 lines
Diff to previous 1.20 (colored)

In cpu_switch(), stack more registers at the start of the function,
and hence save fewer into the PCB.  This should give me enough free
registers in cpu_switch to tidy things up and support MULTIPROCESSOR
properly.  While we're here, make the stacked registers into an
APCS stack frame, so that DDB backtraces through cpu_switch() will
work.

This also affects cpu_fork(), which has to fabricate a switchframe and
PCB for the new process.

Revision 1.8.4.11 / (download) - annotate - [select for diffs], Mon Oct 7 02:51:26 2002 UTC (9 years, 7 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.8.4.10: +5 -5 lines
Diff to previous 1.8.4.10 (colored) to branchpoint 1.8 (colored)

LWP'ify some debug printfs.

Revision 1.1.2.9 / (download) - annotate - [select for diffs], Fri Sep 6 08:32:29 2002 UTC (9 years, 8 months ago) by jdolecek
Branch: kqueue
Changes since 1.1.2.8: +18 -4 lines
Diff to previous 1.1.2.8 (colored) next main 1.2 (colored)

sync kqueue branch with HEAD

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Fri Aug 30 00:19:09 2002 UTC (9 years, 8 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.16: +18 -4 lines
Diff to previous 1.16 (colored) next main 1.17 (colored)

catch up with -current.

Revision 1.8.4.10 / (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.8.4.9: +5 -2 lines
Diff to previous 1.8.4.9 (colored) to branchpoint 1.8 (colored)

Sync with -current.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Aug 22 01:13:55 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: kqueue-base, gehenna-devsw-base
Changes since 1.19: +5 -2 lines
Diff to previous 1.19 (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.8.4.9 / (download) - annotate - [select for diffs], Tue Aug 13 02:17:52 2002 UTC (9 years, 9 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.8.4.8: +12 -3 lines
Diff to previous 1.8.4.8 (colored) to branchpoint 1.8 (colored)

Catch up to -current.

Revision 1.19 / (download) - annotate - [select for diffs], Fri Aug 9 23:44:17 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.18: +5 -1 lines
Diff to previous 1.18 (colored)

cpu_fork(): If PMCs are not enabled in the parent, clear the machine-
dependent PMC state in the child.

Revision 1.18 / (download) - annotate - [select for diffs], Wed Aug 7 05:14:58 2002 UTC (9 years, 9 months ago) by briggs
Branch: MAIN
Changes since 1.17: +8 -1 lines
Diff to previous 1.17 (colored)

Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Aug 6 17:44:35 2002 UTC (9 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16 (colored)

* Pass proc0 to switch_exit(), to make this a little more like the
  nathanw_sa branch.
* In switch_exit(), set the outgoing-proc register to NULL (rather than
  proc0) so that we actually use the "exiting process" optimization in
  cpu_switch().

Revision 1.8.4.8 / (download) - annotate - [select for diffs], Mon Jun 24 22:03:57 2002 UTC (9 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.8.4.7: +3 -3 lines
Diff to previous 1.8.4.7 (colored) to branchpoint 1.8 (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.1.2.8 / (download) - annotate - [select for diffs], Sun Jun 23 17:34:46 2002 UTC (9 years, 11 months ago) by jdolecek
Branch: kqueue
Changes since 1.1.2.7: +13 -8 lines
Diff to previous 1.1.2.7 (colored)

catch up with -current on kqueue branch

Revision 1.8.4.7 / (download) - annotate - [select for diffs], Wed Apr 17 00:02:27 2002 UTC (10 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.8.4.6: +13 -8 lines
Diff to previous 1.8.4.6 (colored) to branchpoint 1.8 (colored)

Catch up to -current.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Apr 3 23:33:29 2002 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, 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-RC1, netbsd-1-6-PATCH001, netbsd-1-6
Branch point for: gehenna-devsw
Changes since 1.15: +13 -8 lines
Diff to previous 1.15 (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.8.4.6 / (download) - annotate - [select for diffs], Mon Apr 1 07:39:09 2002 UTC (10 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.8.4.5: +1 -3 lines
Diff to previous 1.8.4.5 (colored) to branchpoint 1.8 (colored)

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

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

Catch up with -current.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Mar 4 02:43:23 2002 UTC (10 years, 2 months ago) by simonb
Branch: MAIN
CVS Tags: newlock-base, newlock, eeh-devprop-base, eeh-devprop
Changes since 1.14: +1 -3 lines
Diff to previous 1.14 (colored)

Don't need to declare phys_map - it is declared in <uvm/uvm_extern.h>.

Revision 1.8.4.5 / (download) - annotate - [select for diffs], Thu Feb 28 04:07:25 2002 UTC (10 years, 2 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.8.4.4: +5 -13 lines
Diff to previous 1.8.4.4 (colored) to branchpoint 1.8 (colored)

Catch up to -current.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Feb 26 15:13:28 2002 UTC (10 years, 3 months ago) by simonb
Branch: MAIN
CVS Tags: ifpoll-base, ifpoll
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).

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

Sync w/ -current.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Jan 29 23:02:48 2002 UTC (10 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.12: +2 -6 lines
Diff to previous 1.12 (colored)

When initializing sf->sf_spl, simply always assume that 0 is
equivalent to spl0().

Revision 1.12 / (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.11: +2 -2 lines
Diff to previous 1.11 (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.1.2.5 / (download) - annotate - [select for diffs], Thu Jan 10 19:37:50 2002 UTC (10 years, 4 months ago) by thorpej
Branch: kqueue
Changes since 1.1.2.4: +18 -8 lines
Diff to previous 1.1.2.4 (colored)

Sync kqueue branch with -current.

Revision 1.8.4.4 / (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.8.4.3: +10 -2 lines
Diff to previous 1.8.4.3 (colored) to branchpoint 1.8 (colored)

Catch up to -current.

Revision 1.8.4.3 / (download) - annotate - [select for diffs], Sat Dec 8 04:22:19 2001 UTC (10 years, 5 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.8.4.2: +3 -3 lines
Diff to previous 1.8.4.2 (colored) to branchpoint 1.8 (colored)

cpu_fork() -> cpu_lwp_fork().  This logically forks an LWP, not a
complete process.  As noted by Gregory McGarry on tech-kern.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Nov 29 17:12:22 2001 UTC (10 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.10: +5 -1 lines
Diff to previous 1.10 (colored)

Provide a hook for platform-specific interrupt code to specify
the "spl" cookie in the switch frame.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Nov 24 01:26:24 2001 UTC (10 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 (colored)

Move the ARM, Ltd. floating point emulator to arch/arm.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Nov 19 20:38:58 2001 UTC (10 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

Give the idle loop a non-profiled entry, means it appears in profile info correctly (rather than all it's time being under remrunqueue)
switch_exit only needs to take 1 parameter, it loads the value of proc0 into R1 itself
Fixup some comments to reflect the real state of things.
Tweak a couple of bits of asm to avoid a load delay.
remove excess code for setting curpcb and curproc.

Revision 1.8.4.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.8.4.1: +413 -0 lines
Diff to previous 1.8.4.1 (colored) to branchpoint 1.8 (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.8.4.1, Thu Oct 18 09:26:08 2001 UTC (10 years, 7 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.8: +0 -390 lines
FILE REMOVED

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

Revision 1.8 / (download) - annotate - [select for diffs], Thu Oct 18 09:26:08 2001 UTC (10 years, 7 months ago) by rearnsha
Branch: MAIN
CVS Tags: thorpej-mips-cache-base, thorpej-mips-cache
Branch point for: nathanw_sa
Changes since 1.7: +10 -3 lines
Diff to previous 1.7 (colored)

Don't unmap page 0 when preparing to swap out a process.  If the pmap
is shared with another process (as can happen if vfork is being used),
then that other process will end up not having a page 0, which is bad
news indeed, since then there is no way back into the kernel.

Found this using a multi-ice box, so they are useful after all!

This seems to fix pr port-arm32/11921 and (possibly) kern/9859.

Revision 1.4.2.1 / (download) - annotate - [select for diffs], Mon Oct 1 12:37:36 2001 UTC (10 years, 7 months ago) by fvdl
Branch: thorpej-devvp
Changes since 1.4: +12 -11 lines
Diff to previous 1.4 (colored) next main 1.5 (colored)

Catch up with -current.

Revision 1.7 / (download) - annotate - [select for diffs], Thu Sep 20 23:32:23 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base3, thorpej-devvp-base2
Changes since 1.6: +2 -3 lines
Diff to previous 1.6 (colored)

Fix bug in vmapbuf, was using len before it had been adjusted.  Found by Frank while Luke was tracking down a bug.

Revision 1.1.2.4 / (download) - annotate - [select for diffs], Thu Sep 13 01:13:08 2001 UTC (10 years, 8 months ago) by thorpej
Branch: kqueue
Changes since 1.1.2.3: +11 -9 lines
Diff to previous 1.1.2.3 (colored)

Update the kqueue branch to HEAD.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Sep 10 21:19:35 2001 UTC (10 years, 8 months ago) by chris
Branch: MAIN
CVS Tags: pre-chs-ubcperf, post-chs-ubcperf
Changes since 1.5: +5 -5 lines
Diff to previous 1.5 (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.5 / (download) - annotate - [select for diffs], Sun Sep 9 10:33:43 2001 UTC (10 years, 8 months ago) by toshii
Branch: MAIN
Changes since 1.4: +7 -5 lines
Diff to previous 1.4 (colored)

Don't define pcb_* register macros.
pcb_sp macro conflicts with sys/netinet6/ipsec.c.

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Sat Aug 25 06:15:09 2001 UTC (10 years, 9 months ago) by thorpej
Branch: kqueue
Changes since 1.1.2.2: +21 -46 lines
Diff to previous 1.1.2.2 (colored)

Merge Aug 24 -current into the kqueue branch.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Aug 20 21:52:09 2001 UTC (10 years, 9 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base
Branch point for: thorpej-devvp
Changes since 1.3: +5 -3 lines
Diff to previous 1.3 (colored)

Arm has a vac, so we must use pmap_enter/remove for vmapbuf rather than k* versions, otherwise we may not be doing the right caching thing.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Aug 11 12:57:25 2001 UTC (10 years, 9 months ago) by chris
Branch: MAIN
Changes since 1.2: +16 -44 lines
Diff to previous 1.2 (colored)

Update to make use of a proper kenter implementation for vmapbuf and vunmapbuf.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Aug 5 05:07:27 2001 UTC (10 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.1: +4 -3 lines
Diff to previous 1.1 (colored)

Force size_t formats/arge to be (u_long).  I'd use 'z' for this but gcc
2.95.3

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Fri Aug 3 04:10:59 2001 UTC (10 years, 9 months ago) by lukem
Branch: kqueue
Changes since 1.1.2.1: +407 -0 lines
Diff to previous 1.1.2.1 (colored)

update to -current

Revision 1.1.2.1, Sat Jul 28 13:28:04 2001 UTC (10 years, 10 months ago) by lukem
Branch: kqueue
Changes since 1.1: +0 -407 lines
FILE REMOVED

file vm_machdep.c was added on branch kqueue on 2001-08-03 04:10:59 +0000

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jul 28 13:28:04 2001 UTC (10 years, 10 months ago) by chris
Branch: MAIN
Branch point for: kqueue

Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.

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>