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
Current tag: MAIN


Revision 1.79 / (download) - annotate - [select for diffs], Mon Jan 15 20:35:22 2024 UTC (2 months ago) by andvar
Branch: MAIN
CVS Tags: triaxx-drm, HEAD
Changes since 1.78: +5 -2 lines
Diff to previous 1.78 (colored)

Include <sys/syslog.h> with "#ifdef STACKCHECKS" guard.

The include was lost on rev 1.77 during includes cleanup and KNF, however
it is still needed with STACKCHECKS build option.

Revision 1.78 / (download) - annotate - [select for diffs], Sun Mar 28 10:29:05 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.77: +4 -4 lines
Diff to previous 1.77 (colored)

fix a comment that has been c&p'ed around and not updated

Revision 1.77 / (download) - annotate - [select for diffs], Sat Jun 20 07:10:36 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Branch point for: thorpej-futex, thorpej-cfargs
Changes since 1.76: +7 -8 lines
Diff to previous 1.76 (colored)

KNF #includes

Remove some unnecessary ones while I'm here.

Revision 1.76 / (download) - annotate - [select for diffs], Sat Apr 18 11:00:37 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Changes since 1.75: +19 -25 lines
Diff to previous 1.75 (colored)

PMAP_DEBUG has been deleted on arm

Revision 1.75 / (download) - annotate - [select for diffs], Thu Jul 12 12:48:50 2018 UTC (5 years, 8 months ago) by jakllsch
Branch: MAIN
CVS Tags: phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: bouyer-xenpvh
Changes since 1.74: +2 -3 lines
Diff to previous 1.74 (colored)

<sys/pmc.h> is gone; don't #include it

Revision 1.74 / (download) - annotate - [select for diffs], Thu Jul 12 10:46:42 2018 UTC (5 years, 8 months ago) by maxv
Branch: MAIN
Changes since 1.73: +2 -12 lines
Diff to previous 1.73 (colored)

Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

 * Removes "options PERFCTRS", the associated includes, and the associated
   ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
   good.

 * Removes the PMC code of ARM XSCALE.

 * Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

 * Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
   definitions are put in sysarch.h.

 * Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
   and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
   netbsd32 and rump.

 * Removes the pmc_evid_t and pmc_ctr_t types.

 * Removes all the associated man pages. The sets are marked as obsolete.

Revision 1.73 / (download) - annotate - [select for diffs], Mon May 28 21:05:00 2018 UTC (5 years, 9 months ago) by chs
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.72: +90 -2 lines
Diff to previous 1.72 (colored)

merge a new version of the CDDL dtrace and ZFS code.
this changes the upstream vendor from OpenSolaris to FreeBSD,
and this version is based on FreeBSD svn r315983.

in addition to the 10 years of improvements from upstream,
this version also has these NetBSD-specific enhancements:
 - dtrace FBT probes can now be placed in kernel modules.
 - ZFS now supports mmap().

Revision 1.72 / (download) - annotate - [select for diffs], Tue Oct 17 16:23:50 2017 UTC (6 years, 5 months ago) by skrll
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, pgoyette-compat-base, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.71: +4 -4 lines
Diff to previous 1.71 (colored)

Fix eva argument to pmap_remove and passed prot bits in flags for
pmap_enter, i.e. fix previous.

Revision 1.71 / (download) - annotate - [select for diffs], Sun Oct 8 12:09:44 2017 UTC (6 years, 5 months ago) by flxd
Branch: MAIN
Changes since 1.70: +4 -4 lines
Diff to previous 1.70 (colored)

In vmapbuf use pmap_enter(pmap_kernel(), ...) and not pmap_kenter_pa as the
former handles multiple mappings for VIPT AND VIVT correctly whereas the latter
doesn't work for VIVT. PR port-shark/52102
From skrll@. Tested by martin@ and me.

Revision 1.70 / (download) - annotate - [select for diffs], Sun Mar 29 09:47:48 2015 UTC (8 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, netbsd-8-base, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Changes since 1.69: +5 -4 lines
Diff to previous 1.69 (colored)

cache pmap in vmapbuf.

Revision 1.69 / (download) - annotate - [select for diffs], Mon Mar 10 05:18:34 2014 UTC (10 years ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7
Branch point for: nick-nhusb
Changes since 1.68: +5 -5 lines
Diff to previous 1.68 (colored)

Use pmap_kenter_pa/pmap_kremove for vmapbuf/vunmapbuf

Revision 1.68 / (download) - annotate - [select for diffs], Tue Sep 10 21:30:21 2013 UTC (10 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.67: +6 -2 lines
Diff to previous 1.67 (colored)

Support an optional MARCH ELF tag.
Store the MACHINE_ARCH of the executable in mdproc and override sysctl
so that value returned.

Revision 1.67 / (download) - annotate - [select for diffs], Fri Aug 23 05:22:01 2013 UTC (10 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.66: +2 -3 lines
Diff to previous 1.66 (colored)

Reap LWP_VFPUSED and use PCU internal tracking.
Add bool vfp_used_p(void);

Revision 1.66 / (download) - annotate - [select for diffs], Sat May 11 07:35:58 2013 UTC (10 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Branch point for: rmind-smpnet
Changes since 1.65: +6 -6 lines
Diff to previous 1.65 (colored)

Whitespace

Revision 1.65 / (download) - annotate - [select for diffs], Fri Jan 25 13:17:39 2013 UTC (11 years, 1 month ago) by skrll
Branch: MAIN
CVS Tags: khorben-n900, agc-symver-base, agc-symver
Changes since 1.64: +6 -6 lines
Diff to previous 1.64 (colored)

Shut up noisy debug unless pmap_debug_level > 0

Revision 1.64 / (download) - annotate - [select for diffs], Tue Dec 18 06:30:18 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base8
Changes since 1.63: +15 -19 lines
Diff to previous 1.63 (colored)

Remove unneeded definitions.
When forking a LWP, disable the VFP in the new LWP since it isn't the LWP
that owns the VFP.

Revision 1.63 / (download) - annotate - [select for diffs], Mon Dec 10 01:37:31 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base7
Changes since 1.62: +5 -5 lines
Diff to previous 1.62 (colored)

Rename pcb_sp/PCB_SP to pcb_ksp/PCB_KSP so that ipsec.c will compile.

Revision 1.62 / (download) - annotate - [select for diffs], Wed Dec 5 19:05:45 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.61: +10 -27 lines
Diff to previous 1.61 (colored)

ARMFPE hasn't compiled since NetBSD 4.  Remove it.
Complete support for FPU_VFP.
fpregs now contains vfpreg.
XXX vfpreg only has space for 16 64-bit FP registers though VFPv3 and later
have 32 64-bit FP registers.

Revision 1.61 / (download) - annotate - [select for diffs], Tue Oct 23 22:50:00 2012 UTC (11 years, 4 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Changes since 1.60: +4 -3 lines
Diff to previous 1.60 (colored)

When allocating the kernel virtual addresses, make sure to match the
color of the user addresses.

Revision 1.60 / (download) - annotate - [select for diffs], Wed Aug 29 07:09:12 2012 UTC (11 years, 6 months ago) by matt
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.59: +3 -2 lines
Diff to previous 1.59 (colored)

Use ARMV6+ cpsi{d,f} instructions whenever possible.  Use r7 to hold previous
mode and avoid recomputing it.  Add support for obtaining kernel_lock on
exception entry and exit.

Revision 1.59 / (download) - annotate - [select for diffs], Thu Aug 16 17:35:01 2012 UTC (11 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.58: +9 -9 lines
Diff to previous 1.58 (colored)

small rototill.
pcb_flags is dead.  PCB_NOALIGNFLT is now in stored l_md.md_flags as
MDLWP_NOALIGNFLT.  This avoids a few loads of the PCB in exception handling.
pcb_tf has been moved to l_md.md_tf.  Again this avoids a lot of pcb
references just to access or set this.  It also means that pcb doesn't
need to accessed by MI code.
Move pcb_onfault to after the pcb union.
Add pcb_sp macro to make code prettier.
Add lwp_settrapframe(l, tf) to set the l_md.md_tf field.
Use lwp_trapframe to access it (was process_frame but that name was changed
in a previous commit).
Kill off curpcb in acorn26.
Kill the checks for curlwp being NULL.
Move TRAP_USERMODE from arm32/fault.c to frame.h and a __PROG26 version.
Replace tests for usermode with that macro.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Aug 12 05:05:47 2012 UTC (11 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.57: +3 -22 lines
Diff to previous 1.57 (colored)

Rework VFP support to use PCU.
Add emulation of instruction which save/restore the VFP FPSCR.
Add a sysarch hook to VFP FPSCR manipulation.

[The emulation will be used by libc to store/fetch exception modes and
rounding mode on a per-thread basis.]

Revision 1.57 / (download) - annotate - [select for diffs], Fri Aug 3 07:59:22 2012 UTC (11 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.56: +5 -4 lines
Diff to previous 1.56 (colored)

COMPAT_NETBSD32 support for ARM.  Which is strange since ARM is already
32-bits.  But the newer ARM ABI AAPCS changes the alignment of 64-bit
fields so structures need to copied in and out to deal with the alignment
change.  This is a kludge but makes debugging of AAPCS support much easier.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Feb 19 21:06:05 2012 UTC (12 years, 1 month 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, jmcneill-usbmp-base10
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.55 / (download) - annotate - [select for diffs], Thu Feb 10 14:46:46 2011 UTC (13 years, 1 month 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-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, 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, matt-nb6-plus, 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 (13 years, 2 months 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.53 / (download) - annotate - [select for diffs], Sun Nov 29 04:15:42 2009 UTC (14 years, 3 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 (14 years, 3 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 (14 years, 3 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 (14 years, 5 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.49 / (download) - annotate - [select for diffs], Sat Mar 14 21:04:05 2009 UTC (15 years 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 (15 years 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 (15 years 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.46 / (download) - annotate - [select for diffs], Tue Oct 21 19:01:00 2008 UTC (15 years, 5 months ago) by matt
Branch: MAIN
CVS Tags: nick-hppapmap-base2, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, 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-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, matt-nb5-mips64, 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.45 / (download) - annotate - [select for diffs], Thu Aug 7 04:16:26 2008 UTC (15 years, 7 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.44 / (download) - annotate - [select for diffs], Mon Jul 7 12:18:45 2008 UTC (15 years, 8 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.43 / (download) - annotate - [select for diffs], Sat Mar 15 10:19:40 2008 UTC (16 years 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.42 / (download) - annotate - [select for diffs], Sat Jan 19 15:04:10 2008 UTC (16 years, 2 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.41 / (download) - annotate - [select for diffs], Sat Jan 12 20:50:24 2008 UTC (16 years, 2 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.40 / (download) - annotate - [select for diffs], Wed Oct 17 19:53:31 2007 UTC (16 years, 5 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.39 / (download) - annotate - [select for diffs], Sat Sep 15 09:25:22 2007 UTC (16 years, 6 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.38 / (download) - annotate - [select for diffs], Thu May 17 14:51:16 2007 UTC (16 years, 10 months 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.37 / (download) - annotate - [select for diffs], Sun Mar 4 05:59:37 2007 UTC (17 years 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.36 / (download) - annotate - [select for diffs], Sun Feb 18 07:25:35 2007 UTC (17 years, 1 month 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.35 / (download) - annotate - [select for diffs], Wed May 10 06:24:02 2006 UTC (17 years, 10 months 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 (18 years, 3 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.33 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:23 2005 UTC (18 years, 11 months 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 / (download) - annotate - [select for diffs], Sat Aug 28 22:12:40 2004 UTC (19 years, 6 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, 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.31 / (download) - annotate - [select for diffs], Sun Jan 4 11:33:29 2004 UTC (20 years, 2 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 (20 years, 5 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 (20 years, 8 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 (20 years, 10 months 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 (20 years, 11 months 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 (20 years, 11 months 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 (20 years, 11 months 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 (21 years, 2 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.23 / (download) - annotate - [select for diffs], Sun Nov 24 01:07:47 2002 UTC (21 years, 3 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 / (download) - annotate - [select for diffs], Sat Oct 19 00:10:53 2002 UTC (21 years, 5 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 (21 years, 5 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.20 / (download) - annotate - [select for diffs], Thu Aug 22 01:13:55 2002 UTC (21 years, 7 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.19 / (download) - annotate - [select for diffs], Fri Aug 9 23:44:17 2002 UTC (21 years, 7 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 (21 years, 7 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 (21 years, 7 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.16 / (download) - annotate - [select for diffs], Wed Apr 3 23:33:29 2002 UTC (21 years, 11 months 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.15 / (download) - annotate - [select for diffs], Mon Mar 4 02:43:23 2002 UTC (22 years 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.14 / (download) - annotate - [select for diffs], Tue Feb 26 15:13:28 2002 UTC (22 years ago) by simonb
Branch: MAIN
CVS Tags: ifpoll-base
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.13 / (download) - annotate - [select for diffs], Tue Jan 29 23:02:48 2002 UTC (22 years, 1 month 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 (22 years, 1 month 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.11 / (download) - annotate - [select for diffs], Thu Nov 29 17:12:22 2001 UTC (22 years, 3 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 (22 years, 3 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 (22 years, 4 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 / (download) - annotate - [select for diffs], Thu Oct 18 09:26:08 2001 UTC (22 years, 5 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.7 / (download) - annotate - [select for diffs], Thu Sep 20 23:32:23 2001 UTC (22 years, 6 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.6 / (download) - annotate - [select for diffs], Mon Sep 10 21:19:35 2001 UTC (22 years, 6 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 (22 years, 6 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.4 / (download) - annotate - [select for diffs], Mon Aug 20 21:52:09 2001 UTC (22 years, 7 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 (22 years, 7 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 (22 years, 7 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 / (download) - annotate - [select for diffs], Sat Jul 28 13:28:04 2001 UTC (22 years, 7 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>