The NetBSD Project

CVS log for src/sys/arch/arm/arm32/cpuswitch.S

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.90.10.1: download - view: text, markup, annotated - select for diffs
Mon Jul 31 13:56:15 2023 UTC (19 months, 3 weeks ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE
Diff to: previous 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90: +40 -2 lines
Pull up following revision(s) (requested by riastradh in ticket #1859):

	sys/arch/ia64/ia64/vm_machdep.c: revision 1.18
	sys/arch/powerpc/powerpc/locore_subr.S: revision 1.67
	sys/arch/aarch64/aarch64/locore.S: revision 1.91
	sys/arch/mips/include/asm.h: revision 1.74
	sys/arch/hppa/include/cpu.h: revision 1.13
	sys/arch/arm/arm/armv6_start.S: revision 1.38
	 (applied also to sys/arch/arm/cortex/a9_mpsubr.S,
	 sys/arch/arm/cortex/a9_mpsubr.S,
	 sys/arch/arm/cortex/cortex_init.S)
	sys/arch/evbmips/ingenic/cpu_startup.S: revision 1.2
	sys/arch/mips/mips/locore.S: revision 1.229
	sys/arch/alpha/include/asm.h: revision 1.45
	 (applied to sys/arch/alpha/alpha/multiproc.s)
	sys/arch/sparc64/sparc64/locore.s: revision 1.432
	sys/arch/vax/vax/subr.S: revision 1.42
	sys/arch/mips/mips/locore_mips3.S: revision 1.116
	sys/arch/ia64/ia64/machdep.c: revision 1.44
	sys/arch/arm/arm32/cpuswitch.S: revision 1.106
	sys/arch/sparc/sparc/locore.s: revision 1.284
	(all via patch)

aarch64: Add missing barriers in cpu_switchto.
Details in comments.

Note: This is a conservative change that inserts a barrier where
there was a comment saying none is needed, which is probably correct.
The goal of this change is to systematically add barriers to be
confident in correctness; subsequent changes may remove some bariers,
as an optimization, with an explanation of why each barrier is not
needed.

PR kern/57240

alpha: Add missing barriers in cpu_switchto.
Details in comments.

arm32: Add missing barriers in cpu_switchto.
Details in comments.

hppa: Add missing barriers in cpu_switchto.
Not sure hppa has ever had working MULTIPROCESSOR, so maybe no
pullups needed?

ia64: Add missing barriers in cpu_switchto.
(ia64 has never really worked, so no pullups needed, right?)

mips: Add missing barriers in cpu_switchto.
Details in comments.

powerpc: Add missing barriers in cpu_switchto.
Details in comments.

sparc: Add missing barriers in cpu_switchto.

sparc64: Add missing barriers in cpu_switchto.
Details in comments.

vax: Note where cpu_switchto needs barriers.

Not sure vax has ever had working MULTIPROCESSOR, though, and I'm not
even sure how to spell store-before-load barriers on VAX, so no
functional change for now.

Revision 1.93.4.1: download - view: text, markup, annotated - select for diffs
Mon Jul 31 13:44:16 2023 UTC (19 months, 3 weeks ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE
Diff to: previous 1.93: preferred, colored; next MAIN 1.94: preferred, colored
Changes since revision 1.93: +40 -2 lines
Pull up following revision(s) (requested by riastradh in ticket #1676):

	sys/arch/ia64/ia64/vm_machdep.c: revision 1.18
	sys/arch/powerpc/powerpc/locore_subr.S: revision 1.67
	sys/arch/aarch64/aarch64/locore.S: revision 1.91
	sys/arch/mips/include/asm.h: revision 1.74
	sys/arch/hppa/include/cpu.h: revision 1.13
	sys/arch/arm/arm/armv6_start.S: revision 1.38
	sys/arch/evbmips/ingenic/cpu_startup.S: revision 1.2
	sys/arch/mips/mips/locore.S: revision 1.229
	sys/arch/aarch64/aarch64/cpuswitch.S: revision 1.40
	sys/arch/alpha/include/asm.h: revision 1.45
	sys/arch/sparc64/sparc64/locore.s: revision 1.432
	sys/arch/vax/vax/subr.S: revision 1.42
	sys/arch/mips/mips/locore_mips3.S: revision 1.116
	sys/arch/ia64/ia64/machdep.c: revision 1.44
	sys/arch/arm/arm32/cpuswitch.S: revision 1.106
	sys/arch/sparc/sparc/locore.s: revision 1.284
	(all via patch)

aarch64: Add missing barriers in cpu_switchto.
Details in comments.

Note: This is a conservative change that inserts a barrier where
there was a comment saying none is needed, which is probably correct.
The goal of this change is to systematically add barriers to be
confident in correctness; subsequent changes may remove some bariers,
as an optimization, with an explanation of why each barrier is not
needed.

PR kern/57240

alpha: Add missing barriers in cpu_switchto.
Details in comments.

arm32: Add missing barriers in cpu_switchto.
Details in comments.

hppa: Add missing barriers in cpu_switchto.
Not sure hppa has ever had working MULTIPROCESSOR, so maybe no
pullups needed?

ia64: Add missing barriers in cpu_switchto.
(ia64 has never really worked, so no pullups needed, right?)

mips: Add missing barriers in cpu_switchto.
Details in comments.

powerpc: Add missing barriers in cpu_switchto.
Details in comments.

sparc: Add missing barriers in cpu_switchto.

sparc64: Add missing barriers in cpu_switchto.
Details in comments.

vax: Note where cpu_switchto needs barriers.

Not sure vax has ever had working MULTIPROCESSOR, though, and I'm not
even sure how to spell store-before-load barriers on VAX, so no
functional change for now.

Revision 1.105.12.1: download - view: text, markup, annotated - select for diffs
Mon Jul 31 13:36:32 2023 UTC (19 months, 3 weeks ago) by martin
Branches: netbsd-10
CVS tags: netbsd-10-1-RELEASE, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1
Diff to: previous 1.105: preferred, colored; next MAIN 1.106: preferred, colored
Changes since revision 1.105: +35 -5 lines
Pull up following revision(s) (requested by riastradh in ticket #264):

	sys/arch/ia64/ia64/vm_machdep.c: revision 1.18
	sys/arch/powerpc/powerpc/locore_subr.S: revision 1.67
	sys/arch/aarch64/aarch64/locore.S: revision 1.91
	sys/arch/mips/include/asm.h: revision 1.74
	sys/arch/hppa/include/cpu.h: revision 1.13
	sys/arch/arm/arm/armv6_start.S: revision 1.38
	sys/arch/evbmips/ingenic/cpu_startup.S: revision 1.2
	sys/arch/mips/mips/locore.S: revision 1.229
	sys/arch/aarch64/aarch64/cpuswitch.S: revision 1.40
	sys/arch/alpha/include/asm.h: revision 1.45
	sys/arch/sparc64/sparc64/locore.s: revision 1.432
	sys/arch/vax/vax/subr.S: revision 1.42
	sys/arch/mips/mips/locore_mips3.S: revision 1.116
	sys/arch/riscv/riscv/cpu_switch.S: revision 1.3
	sys/arch/ia64/ia64/machdep.c: revision 1.44
	sys/arch/arm/arm32/cpuswitch.S: revision 1.106
	sys/arch/sparc/sparc/locore.s: revision 1.284

aarch64: Add missing barriers in cpu_switchto.
Details in comments.

Note: This is a conservative change that inserts a barrier where
there was a comment saying none is needed, which is probably correct.
The goal of this change is to systematically add barriers to be
confident in correctness; subsequent changes may remove some bariers,
as an optimization, with an explanation of why each barrier is not
needed.

PR kern/57240

alpha: Add missing barriers in cpu_switchto.
Details in comments.

arm32: Add missing barriers in cpu_switchto.
Details in comments.

hppa: Add missing barriers in cpu_switchto.
Not sure hppa has ever had working MULTIPROCESSOR, so maybe no
pullups needed?

ia64: Add missing barriers in cpu_switchto.
(ia64 has never really worked, so no pullups needed, right?)

mips: Add missing barriers in cpu_switchto.
Details in comments.

powerpc: Add missing barriers in cpu_switchto.
Details in comments.

riscv: Add missing barriers in cpu_switchto.
Details in comments.

sparc: Add missing barriers in cpu_switchto.

sparc64: Add missing barriers in cpu_switchto.
Details in comments.

vax: Note where cpu_switchto needs barriers.

Not sure vax has ever had working MULTIPROCESSOR, though, and I'm not
even sure how to spell store-before-load barriers on VAX, so no
functional change for now.

Revision 1.107: download - view: text, markup, annotated - select for diffs
Wed Mar 1 08:17:53 2023 UTC (2 years ago) by riastradh
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +9 -5 lines
arm32: Optimization: Omit needless membar when triggering softint.

When we are triggering a softint, it can't already hold any mutexes.
So any path to mutex_exit(mtx) must go via mutex_enter(mtx), which is
always done with atomic r/m/w, and we need not issue any explicit
barrier between ci->ci_curlwp = softlwp and a potential load of
mtx->mtx_owner in mutex_exit.

PR kern/57240

XXX pullup-8
XXX pullup-9
XXX pullup-10

Revision 1.106: download - view: text, markup, annotated - select for diffs
Thu Feb 23 14:55:25 2023 UTC (2 years ago) by riastradh
Branches: MAIN
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +35 -5 lines
arm32: Add missing barriers in cpu_switchto.

Details in comments.

PR kern/57240

XXX pullup-8
XXX pullup-9
XXX pullup-10

Revision 1.104.4.1: download - view: text, markup, annotated - select for diffs
Thu Jun 17 04:46:17 2021 UTC (3 years, 9 months ago) by thorpej
Branches: thorpej-i2c-spi-conf
Diff to: previous 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104: +3 -3 lines
Sync w/ HEAD.

Revision 1.104.6.1: download - view: text, markup, annotated - select for diffs
Mon May 31 22:15:10 2021 UTC (3 years, 9 months ago) by cjep
Branches: cjep_staticlib_x
Diff to: previous 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104: +3 -3 lines
sync with head

Revision 1.105: download - view: text, markup, annotated - select for diffs
Sun May 30 06:53:15 2021 UTC (3 years, 9 months ago) by dholland
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2, netbsd-10-base, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +3 -3 lines
typo in comment

Revision 1.103.2.1: download - view: text, markup, annotated - select for diffs
Mon Dec 14 14:37:47 2020 UTC (4 years, 3 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.103: preferred, colored; next MAIN 1.104: preferred, colored
Changes since revision 1.103: +4 -3 lines
Sync w/ HEAD.

Revision 1.104: download - view: text, markup, annotated - select for diffs
Sat Nov 21 19:44:52 2020 UTC (4 years, 4 months ago) by skrll
Branches: MAIN
CVS tags: thorpej-futex-base, thorpej-cfargs-base, thorpej-cfargs, cjep_staticlib_x-base
Branch point for: thorpej-i2c-spi-conf, cjep_staticlib_x
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +4 -3 lines
Ensure that r5 contains curlwp before DO_AST_AND_RESTORE_ALIGNMENT_FAULTS
in lwp_trampoline as required by the move to make ASTs operate per-LWP
rather than per-CPU.

Thanks to martin@ for bisecting the amap corruption he was seeing and
testing this fix.

Revision 1.103: download - view: text, markup, annotated - select for diffs
Sat Aug 15 13:33:54 2020 UTC (4 years, 7 months ago) by skrll
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +7 -2 lines
#ifdef _ARM_ARCH_7 the dmbs

Revision 1.102: download - view: text, markup, annotated - select for diffs
Fri Aug 14 16:18:36 2020 UTC (4 years, 7 months ago) by skrll
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +4 -2 lines
Mirror the changes to aarch64 and

- Switch to TPIDRPRW_IS_CURLWP, because curlwp is accessed much more often
  by MI code.  It also makes curlwp preemption safe,

- Make ASTs operate per-LWP rather than per-CPU, otherwise sometimes LWPs
  can see spurious ASTs (which doesn't cause a problem, it just means some
  time may be wasted).

- Make sure ASTs are always set on the same CPU as the target LWP, and
  delivered via IPI if posted from a remote CPU so that they are resolved
  quickly.

- Add some cache line padding to struct cpu_info.

- Add a memory barrier in a couple of places where ci_curlwp is set.  This
  is needed whenever an LWP that is resuming on the CPU could hold an
  adaptive mutex.  The barrier needs to drain the CPU's store buffer, so
  that the update to ci_curlwp becomes globally visible before the LWP can
  resume and call mutex_exit().

Revision 1.101: download - view: text, markup, annotated - select for diffs
Fri Jul 10 12:25:09 2020 UTC (4 years, 8 months ago) by skrll
Branches: MAIN
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +8 -2 lines
Add support for KASAN on ARMv[67]

Thanks to maxv for many pointers and reviews.

Revision 1.100: download - view: text, markup, annotated - select for diffs
Mon Jul 6 07:36:14 2020 UTC (4 years, 8 months ago) by skrll
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +3 -3 lines
Whitespace

Revision 1.99: download - view: text, markup, annotated - select for diffs
Fri Jul 3 06:35:05 2020 UTC (4 years, 8 months ago) by skrll
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +3 -3 lines
KNF (sort #includes)

Revision 1.92.6.3: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:03:32 2020 UTC (4 years, 11 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.92.6.2: preferred, colored; branchpoint 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92.6.2: +5 -1 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.92.6.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:07:28 2020 UTC (4 years, 11 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.92.6.1: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.6.1: +3 -27 lines
Merge changes from current as of 20200406

Revision 1.95.2.2: download - view: text, markup, annotated - select for diffs
Sat Feb 29 20:18:17 2020 UTC (5 years ago) by ad
Branches: ad-namecache
Diff to: previous 1.95.2.1: preferred, colored; branchpoint 1.95: preferred, colored; next MAIN 1.96: preferred, colored
Changes since revision 1.95.2.1: +2 -3 lines
Sync with head.

Revision 1.98: download - view: text, markup, annotated - select for diffs
Tue Feb 11 15:11:27 2020 UTC (5 years, 1 month ago) by skrll
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +2 -3 lines
G/C

Revision 1.95.2.1: download - view: text, markup, annotated - select for diffs
Fri Jan 17 21:47:23 2020 UTC (5 years, 2 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +3 -26 lines
Sync with head.

Revision 1.97: download - view: text, markup, annotated - select for diffs
Wed Jan 8 20:59:18 2020 UTC (5 years, 2 months ago) by skrll
Branches: MAIN
CVS tags: ad-namecache-base2, ad-namecache-base1
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +3 -23 lines
oldlwp is always non-NULL in cpu_switchto so remove the test for NULL.

Revision 1.96: download - view: text, markup, annotated - select for diffs
Wed Jan 8 17:38:41 2020 UTC (5 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +2 -5 lines
Hopefully fix some problems seen with MP support on non-x86, in particular
where curcpu() is defined as curlwp->l_cpu:

- mi_switch(): undo the ~2007ish optimisation to unlock curlwp before
  calling cpu_switchto().  It's not safe to let other actors mess with the
  LWP (in particular l->l_cpu) while it's still context switching.  This
  removes l->l_ctxswtch.

- Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since
  it's now covered by the LWP's lock.

- Ditch lwp_exit_switchaway() and just call mi_switch() instead.  Everything
  is in cache anyway so it wasn't buying much by trying to avoid saving old
  state.  This means cpu_switchto() will never be called with prevlwp ==
  NULL.

- Remove some KERNEL_LOCK handling which hasn't been needed for years.

Revision 1.95: download - view: text, markup, annotated - select for diffs
Tue Oct 29 16:18:23 2019 UTC (5 years, 4 months ago) by joerg
Branches: MAIN
CVS tags: phil-wifi-20191119, ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +6 -2 lines
Explicitly annotate FPU requirements for LLVM MC.

When using GCC, this annotations change the global state, but there is
no push/pop functionality for .fpu to avoid this problem. The state is
local to each inline assembler block with LLVM MC.

Revision 1.94: download - view: text, markup, annotated - select for diffs
Fri Sep 13 06:30:10 2019 UTC (5 years, 6 months ago) by skrll
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +3 -3 lines
Typo in comment

Revision 1.92.6.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:05:51 2019 UTC (5 years, 9 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +3 -3 lines
Sync with HEAD

Revision 1.92.4.1: download - view: text, markup, annotated - select for diffs
Mon Nov 26 01:52:17 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92: +3 -3 lines
Sync with HEAD, resolve a couple of conflicts

Revision 1.93: download - view: text, markup, annotated - select for diffs
Thu Nov 22 21:28:21 2018 UTC (6 years, 4 months ago) by skrll
Branches: MAIN
CVS tags: phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, 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, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +3 -3 lines
Typo in comment

Revision 1.72.2.5: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:35:51 2017 UTC (7 years, 3 months ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.72.2.4: preferred, colored; branchpoint 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72.2.4: +90 -101 lines
update from HEAD

Revision 1.85.2.3: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:51:29 2017 UTC (7 years, 6 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.85.2.2: preferred, colored; branchpoint 1.85: preferred, colored; next MAIN 1.86: preferred, colored
Changes since revision 1.85.2.2: +14 -14 lines
Sync with HEAD

Revision 1.92: download - view: text, markup, annotated - select for diffs
Sat Jul 1 15:30:41 2017 UTC (7 years, 8 months ago) by skrll
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, phil-wifi-base, pgoyette-compat-base, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825
Branch point for: phil-wifi, pgoyette-compat
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +14 -14 lines
Whitespace (align comments)

Revision 1.91: download - view: text, markup, annotated - select for diffs
Sat Jul 1 15:28:18 2017 UTC (7 years, 8 months ago) by skrll
Branches: MAIN
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +3 -3 lines
Trailing whitespace

Revision 1.85.2.2: download - view: text, markup, annotated - select for diffs
Sat Jun 6 14:39:55 2015 UTC (9 years, 9 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.85.2.1: preferred, colored; branchpoint 1.85: preferred, colored
Changes since revision 1.85.2.1: +25 -46 lines
Sync with HEAD

Revision 1.90: download - view: text, markup, annotated - select for diffs
Wed Apr 8 12:07:40 2015 UTC (9 years, 11 months ago) by matt
Branches: 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, 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, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +24 -45 lines
Make TPIDRPRW_IS_CURLWP work for MULTIPROCESSOR.
get curcpu() from new lwp.
don't set lwp l_cpu (already done).
Remove support for __HAVE_UNNESTED_INTRS
don't set curlwp until after we are done saving the oldlwp.
disable interrupts when setting curlwp/kernel stack pointer.
Overall, these changes simplify cpu_switchto even more.

Revision 1.85.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 6 15:17:52 2015 UTC (9 years, 11 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +61 -51 lines
Sync with HEAD

Revision 1.84.2.1: download - view: text, markup, annotated - select for diffs
Fri Mar 27 11:27:39 2015 UTC (9 years, 11 months ago) by martin
Branches: netbsd-7
CVS tags: netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, 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
Diff to: previous 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84: +61 -51 lines
Pull up following revision(s) (requested by skrll in ticket #646):
	sys/arch/arm/arm32/genassym.cf: revision 1.70
	sys/arch/arm/arm32/cpuswitch.S: revision 1.86-1.89

Only set vfp & tpid registers and do ras lookups if new
lwp is not LW_SYSTEM.

Revision 1.89: download - view: text, markup, annotated - select for diffs
Tue Mar 24 21:09:11 2015 UTC (10 years ago) by skrll
Branches: MAIN
CVS tags: nick-nhusb-base-20150406
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +2 -11 lines
There is no need to save/restore l_private in softint_switch now that
cpu_switchto is fixed

Revision 1.88: download - view: text, markup, annotated - select for diffs
Tue Mar 24 07:16:16 2015 UTC (10 years ago) by matt
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +52 -51 lines
Rework register usage in cpu_switchto so curcpu() is preserved across
ras_lookup.  Only set vfp & tpid registers and do ras lookups if new lwp
is not LW_SYSTEM.  (tested on RPI and atf tests on BPI by skrll).

Revision 1.87: download - view: text, markup, annotated - select for diffs
Sun Mar 22 23:46:08 2015 UTC (10 years ago) by matt
Branches: MAIN
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +12 -3 lines
Fix register usage in softint_switch.  load / restore l_private across
softint_dispatch

Revision 1.86: download - view: text, markup, annotated - select for diffs
Sun Mar 22 23:17:57 2015 UTC (10 years ago) by matt
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +11 -2 lines
Make sure to save the user thread point in softint_switch in case it was
set just before we got an interrupt.  Otherwise if the softint blocks, the
old value would be restored and change lost.

Revision 1.85: download - view: text, markup, annotated - select for diffs
Sat Oct 18 08:33:24 2014 UTC (10 years, 5 months ago) by snj
Branches: MAIN
CVS tags: nick-nhusb-base
Branch point for: nick-nhusb
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +4 -4 lines
src is too big these days to tolerate superfluous apostrophes.  It's
"its", people!

Revision 1.72.2.4: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:02:45 2014 UTC (10 years, 7 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.72.2.3: preferred, colored; branchpoint 1.72: preferred, colored
Changes since revision 1.72.2.3: +30 -30 lines
Rebase to HEAD as of a few days ago.

Revision 1.83.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:53:50 2014 UTC (10 years, 7 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.83: preferred, colored; next MAIN 1.84: preferred, colored
Changes since revision 1.83: +3 -3 lines
Rebase.

Revision 1.84: download - view: text, markup, annotated - select for diffs
Sun Jun 15 02:27:15 2014 UTC (10 years, 9 months ago) by ozaki-r
Branches: MAIN
CVS tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +3 -3 lines
Fix wrong instruction; mcr => mrc

Revision 1.63.4.4: download - view: text, markup, annotated - select for diffs
Thu May 22 11:39:31 2014 UTC (10 years, 10 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.63.4.3: preferred, colored; branchpoint 1.63: preferred, colored; next MAIN 1.64: preferred, colored
Changes since revision 1.63.4.3: +31 -32 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.77.6.2: download - view: text, markup, annotated - select for diffs
Sun May 18 17:44:56 2014 UTC (10 years, 10 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.77.6.1: preferred, colored; branchpoint 1.77: preferred, colored; next MAIN 1.78: preferred, colored
Changes since revision 1.77.6.1: +19 -20 lines
sync with head

Revision 1.83: download - view: text, markup, annotated - select for diffs
Fri Mar 28 21:52:53 2014 UTC (10 years, 11 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Branch point for: tls-earlyentropy
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +4 -2 lines
ARM_MMU_EXTENDED support.

Revision 1.82: download - view: text, markup, annotated - select for diffs
Wed Feb 26 02:07:58 2014 UTC (11 years ago) by matt
Branches: MAIN
CVS tags: riastradh-drm2-base3
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +7 -10 lines
Move pmap_recent_user to ci->ci_pmap_lastuser and
pmap_previous_active_lwp to ci->ci_lastlwp.  Fix some comments.

Revision 1.58.14.1: download - view: text, markup, annotated - select for diffs
Sat Feb 15 16:18:36 2014 UTC (11 years, 1 month ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.58: preferred, colored; next MAIN 1.59: preferred, colored
Changes since revision 1.58: +97 -95 lines
Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.

Revision 1.81: download - view: text, markup, annotated - select for diffs
Thu Dec 26 18:49:23 2013 UTC (11 years, 2 months ago) by joerg
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +3 -3 lines
Replicate mcr with equivalent vms instruction.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Sun Dec 1 02:54:33 2013 UTC (11 years, 3 months ago) by joerg
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +11 -11 lines
For load/store double, name the second register explicitly.

Revision 1.77.6.1: download - view: text, markup, annotated - select for diffs
Wed Aug 28 23:59:11 2013 UTC (11 years, 6 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +14 -13 lines
sync with head

Revision 1.79: download - view: text, markup, annotated - select for diffs
Sun Aug 18 06:32:15 2013 UTC (11 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +4 -5 lines
Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>

Revision 1.78: download - view: text, markup, annotated - select for diffs
Sun Aug 18 06:28:18 2013 UTC (11 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +12 -10 lines
Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>

Revision 1.72.2.3: download - view: text, markup, annotated - select for diffs
Sun Jun 23 06:19:59 2013 UTC (11 years, 9 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.72.2.2: preferred, colored; branchpoint 1.72: preferred, colored
Changes since revision 1.72.2.2: +3 -4 lines
resync from head

Revision 1.77: download - view: text, markup, annotated - select for diffs
Wed Feb 27 17:52:44 2013 UTC (12 years ago) by matt
Branches: MAIN
CVS tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +3 -4 lines
Don't include <machine/param.h> since we should be getting that stuff from
"assym.h"

Revision 1.72.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 25 00:28:24 2013 UTC (12 years ago) by tls
Branches: tls-maxphys
Diff to: previous 1.72.2.1: preferred, colored; branchpoint 1.72: preferred, colored
Changes since revision 1.72.2.1: +28 -25 lines
resync with head

Revision 1.63.4.3: download - view: text, markup, annotated - select for diffs
Wed Jan 23 00:05:40 2013 UTC (12 years, 2 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.63.4.2: preferred, colored; branchpoint 1.63: preferred, colored
Changes since revision 1.63.4.2: +27 -13 lines
sync with head

Revision 1.63.4.2: download - view: text, markup, annotated - select for diffs
Wed Jan 16 05:32:43 2013 UTC (12 years, 2 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.63.4.1: preferred, colored; branchpoint 1.63: preferred, colored
Changes since revision 1.63.4.1: +5 -16 lines
sync with (a bit old) head

Revision 1.76: download - view: text, markup, annotated - select for diffs
Mon Dec 17 17:45:01 2012 UTC (12 years, 3 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base8
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +27 -13 lines
Make sure to load the FPEXC context on context switch (if there a VFP) so
that the VFP state will be what the LWP expects.  (This isn't needed on
PPC or MIPS since their FPU/VEC state is reflected in the PSL/CPO_STATUS
which is handled automatically.)

Revision 1.75: download - view: text, markup, annotated - select for diffs
Mon Dec 10 01:37:30 2012 UTC (12 years, 3 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base7
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +4 -4 lines
Rename pcb_sp/PCB_SP to pcb_ksp/PCB_KSP so that ipsec.c will compile.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Wed Dec 5 19:05:45 2012 UTC (12 years, 3 months ago) by matt
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +2 -13 lines
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.63.12.1: download - view: text, markup, annotated - select for diffs
Wed Nov 28 22:40:18 2012 UTC (12 years, 3 months ago) by matt
Branches: matt-nb6-plus
Diff to: previous 1.63: preferred, colored; next MAIN 1.64: preferred, colored
Changes since revision 1.63: +36 -46 lines
Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.

Revision 1.72.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 20 03:01:02 2012 UTC (12 years, 4 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +3 -3 lines
Resync to 2012-11-19 00:00:00 UTC

Revision 1.73: download - view: text, markup, annotated - select for diffs
Thu Nov 8 08:22:56 2012 UTC (12 years, 4 months ago) by skrll
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +3 -3 lines
Use ENTRY_NP for lwp_trampoline

Revision 1.63.4.1: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:18:56 2012 UTC (12 years, 4 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +35 -45 lines
sync with head

Revision 1.72: download - view: text, markup, annotated - select for diffs
Wed Sep 5 00:11:20 2012 UTC (12 years, 6 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base6
Branch point for: tls-maxphys
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +3 -2 lines
After calling lwp_startup, set fp to 0 to terminate call stack.

Revision 1.71: download - view: text, markup, annotated - select for diffs
Sat Sep 1 22:20:52 2012 UTC (12 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +3 -2 lines
Need to do a GET_CURCPU(r4) before invoking DO_AST_AND_RESTORE_ALIGNMENT_FAULTS

Revision 1.70: download - view: text, markup, annotated - select for diffs
Sat Sep 1 14:46:51 2012 UTC (12 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +3 -3 lines
blx reg is V5, not V4T

Revision 1.69: download - view: text, markup, annotated - select for diffs
Fri Aug 31 11:45:38 2012 UTC (12 years, 6 months ago) by skrll
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +4 -2 lines
DO_AST_AND_RESTORE_ALIGNMENT_FAULTS needs AST_ALIGNMENT_FAULT_LOCALS

Revision 1.68: download - view: text, markup, annotated - select for diffs
Wed Aug 29 16:45:34 2012 UTC (12 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +3 -3 lines
Fix typo.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Wed Aug 29 07:14:04 2012 UTC (12 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +26 -21 lines
Rename ARM options PROCESS_ID_IS_CUR{CPU,LWP} to TPIDRPRW_IS_CUR{CPU,LWP}
since TPIDRPRW is the cp15 register name.
Initialize it early in start along with CI_ARM_CPUID.
Remove other initializations.
We alays have ci_curlwp.
Enable TIPRPRW_IS_CURCPU in std.beagle.
[tested on a beaglboard (cortex-a8)]

Revision 1.66: download - view: text, markup, annotated - select for diffs
Thu Aug 16 17:35:01 2012 UTC (12 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +5 -5 lines
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.65: download - view: text, markup, annotated - select for diffs
Tue Aug 14 20:42:33 2012 UTC (12 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +4 -10 lines
Kill curpcb/ci_curpcb.  Use device_t in cpu_info.
Add ci_softc (where ci_curpcb was so cpu_info doesn't change).

Revision 1.64: download - view: text, markup, annotated - select for diffs
Sun Aug 12 05:05:47 2012 UTC (12 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +2 -15 lines
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.61.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:05:01 2011 UTC (13 years, 9 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.61: preferred, colored; next MAIN 1.62: preferred, colored
Changes since revision 1.61: +3 -4 lines
Sync with HEAD.

Revision 1.60.4.2: download - view: text, markup, annotated - select for diffs
Thu Apr 21 01:40:51 2011 UTC (13 years, 11 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.60.4.1: preferred, colored; branchpoint 1.60: preferred, colored; next MAIN 1.61: preferred, colored
Changes since revision 1.60.4.1: +1 -1 lines
sync with head

Revision 1.63: download - view: text, markup, annotated - select for diffs
Thu Apr 7 10:03:47 2011 UTC (13 years, 11 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, 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-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache, matt-nb6-plus
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +3 -3 lines
Fetch user read-only thread and process id from l->l_private, not the pcb.
(need to g/c the pcb field formerly used for this).

Revision 1.60.4.1: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:49:30 2011 UTC (14 years ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +4 -5 lines
sync with head

Revision 1.61.4.1: download - view: text, markup, annotated - select for diffs
Tue Feb 8 16:19:12 2011 UTC (14 years, 1 month ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.61: preferred, colored; next MAIN 1.62: preferred, colored
Changes since revision 1.61: +2 -3 lines
Sync with HEAD

Revision 1.62: download - view: text, markup, annotated - select for diffs
Tue Feb 1 01:20:14 2011 UTC (14 years, 1 month ago) by matt
Branches: MAIN
CVS tags: uebayasi-xip-base7, bouyer-quota2-nbase, bouyer-quota2-base
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +2 -3 lines
include "assym.h" instead of pte.h

Revision 1.61: download - view: text, markup, annotated - select for diffs
Fri Jan 14 02:06:23 2011 UTC (14 years, 2 months ago) by rmind
Branches: MAIN
CVS tags: jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +4 -4 lines
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.57.2.3: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:02:04 2010 UTC (15 years ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.57.2.2: preferred, colored; branchpoint 1.57: preferred, colored; next MAIN 1.58: preferred, colored
Changes since revision 1.57.2.2: +7 -7 lines
sync with head

Revision 1.60: download - view: text, markup, annotated - select for diffs
Thu Dec 10 05:10:01 2009 UTC (15 years, 3 months ago) by rmind
Branches: 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
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +7 -7 lines
Rename L_ADDR to L_PCB and amend some comments accordingly.

Revision 1.57.2.2: download - view: text, markup, annotated - select for diffs
Mon May 4 08:10:38 2009 UTC (15 years, 10 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.57.2.1: preferred, colored; branchpoint 1.57: preferred, colored
Changes since revision 1.57.2.1: +13 -3 lines
sync with head.

Revision 1.58.8.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:15:57 2009 UTC (16 years, 2 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.58: preferred, colored; next MAIN 1.59: preferred, colored
Changes since revision 1.58: +13 -3 lines
Sync with HEAD.

Revision 1.55.6.3: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:27:52 2009 UTC (16 years, 2 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.55.6.2: preferred, colored; branchpoint 1.55: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55.6.2: +11 -1 lines
Sync with HEAD.

Revision 1.58.6.1: download - view: text, markup, annotated - select for diffs
Sat Dec 13 01:13:01 2008 UTC (16 years, 3 months ago) by haad
Branches: haad-dm
Diff to: previous 1.58: preferred, colored; next MAIN 1.59: preferred, colored
Changes since revision 1.58: +13 -3 lines
Update haad-dm branch to haad-dm-base2.

Revision 1.59: download - view: text, markup, annotated - select for diffs
Wed Nov 19 06:34:21 2008 UTC (16 years, 4 months ago) by matt
Branches: 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-base2, nick-hppapmap-base, mjf-devfs2-base, jymxensuspend-base, jym-xensuspend, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +13 -3 lines
Use IF32_bits instead of I32_bit.  Only disable/irq is __HAVE_UNNESTED_IRQS
is undefined.

Revision 1.55.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:21:52 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.55.6.1: preferred, colored; branchpoint 1.55: preferred, colored
Changes since revision 1.55.6.1: +192 -56 lines
Sync with HEAD.

Revision 1.56.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:31:33 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.56: preferred, colored; next MAIN 1.57: preferred, colored
Changes since revision 1.56: +193 -57 lines
sync with head.

Revision 1.57.2.1: download - view: text, markup, annotated - select for diffs
Fri May 16 02:21:55 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +188 -51 lines
sync with head.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Sun Apr 27 18:58:43 2008 UTC (16 years, 10 months ago) by matt
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, 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, 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, hpcarm-cleanup-nbase, haad-dm-base1
Branch point for: nick-hppapmap, matt-nb5-mips64, haad-dm
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +188 -51 lines
Merge kernel changes in matt-armv6 to HEAD.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Sun Apr 20 15:42:19 2008 UTC (16 years, 11 months ago) by scw
Branches: MAIN
CVS tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +7 -8 lines
There's really no need to switch VM contexts within cpu_switchto() as
MI code always calls pmap_deactivate/pmap_activate on context switch.

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

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

Revision 1.55.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:42:12 2008 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +13 -1 lines
Sync with HEAD.

Revision 1.55.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:14:53 2008 UTC (17 years ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.55: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55: +13 -1 lines
sync with head.

Revision 1.48.12.6: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:03:54 2008 UTC (17 years ago) by matt
Branches: matt-armv6
Diff to: previous 1.48.12.5: preferred, colored; branchpoint 1.48: preferred, colored; next MAIN 1.49: preferred, colored
Changes since revision 1.48.12.5: +102 -182 lines
sync with HEAD

Revision 1.48.10.3: download - view: text, markup, annotated - select for diffs
Fri Mar 21 13:34:40 2008 UTC (17 years ago) by chris
Branches: chris-arm-intr-rework
Diff to: previous 1.48.10.2: preferred, colored; branchpoint 1.48: preferred, colored; next MAIN 1.49: preferred, colored
Changes since revision 1.48.10.2: +13 -1 lines
Sync with head.

Revision 1.41.16.6: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:14:15 2008 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41.16.5: preferred, colored; branchpoint 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41.16.5: +13 -1 lines
sync with head.

Revision 1.56: download - view: text, markup, annotated - select for diffs
Sat Mar 15 10:19:40 2008 UTC (17 years ago) by rearnsha
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, chris-arm-intr-rework-base7, ad-socklock-base1
Branch point for: yamt-pf42
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +13 -1 lines
VFP support.

Revision 1.48.6.2: download - view: text, markup, annotated - select for diffs
Thu Feb 28 21:47:40 2008 UTC (17 years ago) by rjs
Branches: hpcarm-cleanup
Diff to: previous 1.48.6.1: preferred, colored; branchpoint 1.48: preferred, colored; next MAIN 1.49: preferred, colored
Changes since revision 1.48.6.1: +41 -116 lines
Sync with HEAD.

Revision 1.50.2.1: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:04:22 2008 UTC (17 years, 1 month ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.50: preferred, colored; next MAIN 1.51: preferred, colored
Changes since revision 1.50: +41 -116 lines
Sync with HEAD.

Revision 1.48.12.5: download - view: text, markup, annotated - select for diffs
Mon Jan 28 18:16:16 2008 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
Diff to: previous 1.48.12.4: preferred, colored; branchpoint 1.48: preferred, colored
Changes since revision 1.48.12.4: +118 -1 lines
Add fast softint switch support.

Revision 1.41.16.5: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:35:35 2008 UTC (17 years, 2 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41.16.4: preferred, colored; branchpoint 1.41: preferred, colored
Changes since revision 1.41.16.4: +41 -116 lines
sync with head

Revision 1.50.8.2: download - view: text, markup, annotated - select for diffs
Sun Jan 20 17:51:02 2008 UTC (17 years, 2 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.50.8.1: preferred, colored; branchpoint 1.50: preferred, colored; next MAIN 1.51: preferred, colored
Changes since revision 1.50.8.1: +28 -56 lines
Sync with HEAD

Revision 1.48.10.2: download - view: text, markup, annotated - select for diffs
Sun Jan 20 16:03:55 2008 UTC (17 years, 2 months ago) by chris
Branches: chris-arm-intr-rework
Diff to: previous 1.48.10.1: preferred, colored; branchpoint 1.48: preferred, colored
Changes since revision 1.48.10.1: +41 -116 lines
Sync to HEAD.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Sat Jan 19 16:49:42 2008 UTC (17 years, 2 months ago) by chris
Branches: 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
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +30 -40 lines
Optimize cpu_switchto to store the new PCB address in r7, rather than
loading it from memory in 3 places.

Also adjust ordering of a few loads to try and avoid stalling.

Revision 1.54: download - view: text, markup, annotated - select for diffs
Sat Jan 19 15:04:10 2008 UTC (17 years, 2 months ago) by chris
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +1 -19 lines
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.50.8.1: download - view: text, markup, annotated - select for diffs
Sat Jan 19 12:14:11 2008 UTC (17 years, 2 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +17 -64 lines
Sync with HEAD

Revision 1.53: download - view: text, markup, annotated - select for diffs
Sun Jan 13 02:43:53 2008 UTC (17 years, 2 months ago) by chris
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +6 -36 lines
Take a micro-optimization from FreeBSD/arm.

When switching from SVC32->UND32 to read/write R13_und we don't need to clear
the mode bits as:
PSR_SVC32_MODE | PSR_UND32_MODE = PSR_UND32_MODE

While reading the code I also noted that interrupts are enabled for most of
the function as pmap_switch returns with interrupts in the state they are on
entry.  This appears to be different to what the code after pmap_switch
expects, in that the behaviour suggests they should be disabled.

Because of this I've made the writing of R13_und explicitly disable.
interupts as part of the mode switch.

This also means that the IRQenableALL call is now redundant as the
interrupts are already enabled.

XXX: it's not clear if arm_fpe_core_changecontext should be called with
interrupts disabled.

Remove unused items: IRQdisableALL, IRQenableALL & Lcpufuncs.

Tested on cats. lmbench shows no performance change.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Sat Jan 12 20:57:26 2008 UTC (17 years, 2 months ago) by skrll
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +8 -3 lines
Add and fix a couple of comments.

Revision 1.51: download - view: text, markup, annotated - select for diffs
Sat Jan 12 20:50:23 2008 UTC (17 years, 2 months ago) by skrll
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +6 -28 lines
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.48.10.1: download - view: text, markup, annotated - select for diffs
Tue Jan 1 15:39:14 2008 UTC (17 years, 2 months ago) by chris
Branches: chris-arm-intr-rework
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +7 -199 lines
Sync with HEAD.

Revision 1.44.12.1.4.1: download - view: text, markup, annotated - select for diffs
Sat Nov 10 02:56:25 2007 UTC (17 years, 4 months ago) by matt
Branches: matt-nb4-arm
Diff to: previous 1.44.12.1: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44.12.1: +5 -6 lines
Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc

Revision 1.48.12.4: download - view: text, markup, annotated - select for diffs
Wed Nov 7 06:24:51 2007 UTC (17 years, 4 months ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.48.12.3: preferred, colored; branchpoint 1.48: preferred, colored
Changes since revision 1.48.12.3: +2 -1 lines
Make sure instructions are aligned after .asciz

Revision 1.48.12.3: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:14:58 2007 UTC (17 years, 4 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.48.12.2: preferred, colored; branchpoint 1.48: preferred, colored
Changes since revision 1.48.12.2: +7 -204 lines
sync with HEAD

Revision 1.48.6.1: download - view: text, markup, annotated - select for diffs
Thu Nov 1 16:06:46 2007 UTC (17 years, 4 months ago) by rjs
Branches: hpcarm-cleanup
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +7 -199 lines
Sync with HEAD.

Revision 1.41.16.4: download - view: text, markup, annotated - select for diffs
Sat Oct 27 11:25:20 2007 UTC (17 years, 4 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41.16.3: preferred, colored; branchpoint 1.41: preferred, colored
Changes since revision 1.41.16.3: +7 -199 lines
sync with head.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Wed Oct 17 19:53:30 2007 UTC (17 years, 5 months ago) by garbled
Branches: 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
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +1 -1 lines
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.46.4.2: download - view: text, markup, annotated - select for diffs
Tue Oct 9 13:37:28 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.46.4.1: preferred, colored; branchpoint 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46.4.1: +7 -199 lines
Sync with head.

Revision 1.46.12.3: download - view: text, markup, annotated - select for diffs
Wed Oct 3 19:22:36 2007 UTC (17 years, 5 months ago) by garbled
Branches: ppcoea-renovation
Diff to: previous 1.46.12.2: preferred, colored; branchpoint 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46.12.2: +7 -199 lines
Sync with HEAD

Revision 1.48.8.1: download - view: text, markup, annotated - select for diffs
Tue Oct 2 18:26:51 2007 UTC (17 years, 5 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.48: preferred, colored; next MAIN 1.49: preferred, colored
Changes since revision 1.48: +7 -199 lines
Sync with HEAD.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Sat Sep 15 09:25:21 2007 UTC (17 years, 6 months ago) by scw
Branches: MAIN
CVS tags: yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking-base, ppcoea-renovation-base, bouyer-xenamd64
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +7 -199 lines
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.48.12.2: download - view: text, markup, annotated - select for diffs
Tue Sep 11 19:23:53 2007 UTC (17 years, 6 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.48.12.1: preferred, colored; branchpoint 1.48: preferred, colored
Changes since revision 1.48.12.1: +14 -2 lines
Add a diagnostic check for cpu_switchto(x, NULL);

Revision 1.41.16.3: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:23:14 2007 UTC (17 years, 6 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41.16.2: preferred, colored; branchpoint 1.41: preferred, colored
Changes since revision 1.41.16.2: +48 -488 lines
sync with head.

Revision 1.48.12.1: download - view: text, markup, annotated - select for diffs
Wed Aug 29 04:17:02 2007 UTC (17 years, 6 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +55 -32 lines
Reworked cpuswitch for armv6 and new world order

Revision 1.46.6.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 19:58:05 2007 UTC (17 years, 8 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46: +48 -488 lines
Sync with head.

Revision 1.46.12.2: download - view: text, markup, annotated - select for diffs
Tue Jun 26 18:12:13 2007 UTC (17 years, 9 months ago) by garbled
Branches: ppcoea-renovation
Diff to: previous 1.46.12.1: preferred, colored; branchpoint 1.46: preferred, colored
Changes since revision 1.46.12.1: +5 -11 lines
Sync with HEAD.

Revision 1.46.4.1: download - view: text, markup, annotated - select for diffs
Sun May 27 12:27:07 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +48 -488 lines
Sync with head.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Fri May 25 10:40:04 2007 UTC (17 years, 10 months ago) by skrll
Branches: 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
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +5 -11 lines
No need to check if oldl == newl in cpu_switchto. All the callers ensure
this is never the case.

Fixup a few comments while I'm here.

Revision 1.46.12.1: download - view: text, markup, annotated - select for diffs
Tue May 22 17:26:39 2007 UTC (17 years, 10 months ago) by matt
Branches: ppcoea-renovation
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +48 -482 lines
Update to HEAD.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Thu May 17 14:51:15 2007 UTC (17 years, 10 months ago) by yamt
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +48 -482 lines
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.45.2.3: download - view: text, markup, annotated - select for diffs
Sun Apr 8 08:17:52 2007 UTC (17 years, 11 months ago) by skrll
Branches: yamt-idlelwp
Diff to: previous 1.45.2.2: preferred, colored; branchpoint 1.45: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45.2.2: +12 -1 lines
Set curlwp in cpu_switchto and provide a cpu_did_resched.

Who is copying who now?

Revision 1.45.2.2: download - view: text, markup, annotated - select for diffs
Thu Mar 29 10:52:27 2007 UTC (17 years, 11 months ago) by skrll
Branches: yamt-idlelwp
Diff to: previous 1.45.2.1: preferred, colored; branchpoint 1.45: preferred, colored
Changes since revision 1.45.2.1: +48 -493 lines
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.44.12.1: download - view: text, markup, annotated - select for diffs
Sun Mar 4 12:15:39 2007 UTC (18 years ago) by bouyer
Branches: netbsd-4
CVS tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, matt-nb4-arm-base
Branch point for: matt-nb4-arm
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +2 -1 lines
Pull up following revision(s) (requested by matt in ticket #470):
	sys/arch/evbarm/iq80310/iq80310_timer.c: revision 1.20
	sys/arch/evbarm/ifpga/pl030_rtc.c: revision 1.8
	sys/arch/evbarm/include/types.h: revision 1.7
	sys/arch/arm/arm32/genassym.cf: revision 1.30
	sys/arch/arm/arm32/cpuswitch.S: revision 1.46
Get DOMAIN_CLIENT directly from arm/arm32/pte.h instead of from genassym
to avoid redefinition when both assymh and pte.h are included (as in
INTEGRATOR's intmmu.S, which uses more macros from pte.h).
Convert evbarm to __HAVE_GENERIC_TODR.

Revision 1.45.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 27 16:49:19 2007 UTC (18 years ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +2 -1 lines
- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.

Revision 1.41.16.2: download - view: text, markup, annotated - select for diffs
Mon Feb 26 09:05:54 2007 UTC (18 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41.16.1: preferred, colored; branchpoint 1.41: preferred, colored
Changes since revision 1.41.16.1: +2 -16 lines
sync with head.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Mon Feb 19 01:59:23 2007 UTC (18 years, 1 month ago) by briggs
Branches: MAIN
CVS tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, ad-audiomp-base, ad-audiomp
Branch point for: vmlocking, ppcoea-renovation, mjf-ufs-trans
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +2 -1 lines
Get DOMAIN_CLIENT directly from arm/arm32/pte.h instead of from genassym
to avoid redefinition when both assymh and pte.h are included (as in
INTEGRATOR's intmmu.S, which uses more macros from pte.h).

Revision 1.45: download - view: text, markup, annotated - select for diffs
Fri Feb 9 21:55:02 2007 UTC (18 years, 1 month ago) by ad
Branches: MAIN
CVS tags: post-newlock2-merge
Branch point for: yamt-idlelwp
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +1 -16 lines
Merge newlock2 to head.

Revision 1.44.8.1: download - view: text, markup, annotated - select for diffs
Tue Jan 30 11:45:26 2007 UTC (18 years, 1 month ago) by ad
Branches: newlock2
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +1 -16 lines
For now always call sched_unlock_idle/sched_lock_idle. They will be
removed by yamt's cpu_switchto() changes.

Revision 1.42.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 02:37:53 2006 UTC (18 years, 6 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +11 -11 lines
sync with head

Revision 1.41.16.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 14:49:16 2006 UTC (18 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +11 -11 lines
sync with head.

Revision 1.42.6.1: download - view: text, markup, annotated - select for diffs
Thu Jun 1 22:34:14 2006 UTC (18 years, 9 months ago) by kardel
Branches: simonb-timecounters
CVS tags: simonb-timcounters-final
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +11 -11 lines
Sync with head.

Revision 1.42.12.1: download - view: text, markup, annotated - select for diffs
Wed May 24 15:47:51 2006 UTC (18 years, 10 months ago) by tron
Branches: peter-altq
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +11 -11 lines
Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.42.8.1: download - view: text, markup, annotated - select for diffs
Wed May 24 10:56:35 2006 UTC (18 years, 10 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +11 -11 lines
sync with head.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat May 13 08:56:08 2006 UTC (18 years, 10 months ago) by skrll
Branches: 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, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, newlock2-nbase, newlock2-base, netbsd-4-base, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: newlock2, netbsd-4
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +4 -4 lines
Fix some more comments.

Revision 1.42.10.1: download - view: text, markup, annotated - select for diffs
Thu May 11 23:26:18 2006 UTC (18 years, 10 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42: +8 -8 lines
sync with head

Revision 1.43: download - view: text, markup, annotated - select for diffs
Wed May 10 07:13:30 2006 UTC (18 years, 10 months ago) by skrll
Branches: MAIN
CVS tags: elad-kernelauth-base
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +8 -8 lines
Fix some comments.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:16:41 2005 UTC (19 years, 3 months ago) by christos
Branches: 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
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +1 -1 lines
merge ktrace-lwp.

Revision 1.36.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:13:09 2004 UTC (20 years, 6 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.2: preferred, colored; next MAIN 1.37: preferred, colored
Changes since revision 1.36.2.2: +1 -1 lines
Fix the sync with head I botched.

Revision 1.36.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:32:17 2004 UTC (20 years, 6 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.1: preferred, colored
Changes since revision 1.36.2.1: +0 -0 lines
Sync with HEAD.

Revision 1.36.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:32:29 2004 UTC (20 years, 7 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +147 -101 lines
Sync with HEAD

Revision 1.41: download - view: text, markup, annotated - select for diffs
Sat Nov 15 08:44:18 2003 UTC (21 years, 4 months ago) by scw
Branches: 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, yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, yamt-km, thorpej-vnode-attr-base, thorpej-vnode-attr, 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, 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, ktrace-lwp-base, kent-audio2-base, kent-audio2, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-lazymbuf
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +66 -34 lines
 - Add LOCKDEBUG-protected calls to sched_lock_idle() to cpu_switchto and
   the idle loop. They seem to have gone AWOL sometime in the past.
   Fixes port-arm/23390.
 - While here, tidy up the idle loop.
 - Add a cheap DIAGNOSTIC check for run queue sanity.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Tue Nov 4 22:20:50 2003 UTC (21 years, 4 months ago) by scw
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +4 -4 lines
Fix a braino introduced in r1.37. Thanks to Tom Spindler for spotting it.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Tue Nov 4 10:33:16 2003 UTC (21 years, 4 months ago) by dsl
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -2 lines
Remove p_nras from struct proc - use LIST_EMPTY(&p->p_raslist) instead.
Remove p_raslock and rename p_lwplock p_lock (one lock is enough).
Simplify window test when adding a ras and correct test on VM_MAXUSER_ADDRESS.
Avoid unpredictable branch in i386 locore.S
(pad fields left in struct proc to avoid kernel bump)

Revision 1.38: download - view: text, markup, annotated - select for diffs
Thu Oct 23 08:59:10 2003 UTC (21 years, 5 months ago) by scw
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +51 -75 lines
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.37: download - view: text, markup, annotated - select for diffs
Mon Oct 13 21:44:27 2003 UTC (21 years, 5 months ago) by scw
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +47 -9 lines
A couple of Xscale tweaks:

 - Use the "clz" instruction to pick a run-queue, instead of using the
   ffs-by-table-lookup method.
 - Use strd instead of stmia where possible.
 - Use multiple ldr instructions instead of ldmia where possible.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Mon Jun 23 11:01:07 2003 UTC (21 years, 9 months ago) by martin
Branches: MAIN
Branch point for: ktrace-lwp
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +2 -1 lines
Make sure to include opt_foo.h if a defflag option FOO is used.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Mon Jun 23 09:05:22 2003 UTC (21 years, 9 months ago) by chris
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +1 -5 lines
Fix for port-arm/21962.  Rather than fixing the #ifndef spl0, I removed
the test as spl0 is actually a macro for splx(0). The code now calls
splx(0)

(note building with the #ifdef fixed, caused the build to fail on a
GENERIC acorn32 kernel.)

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sat May 31 01:40:05 2003 UTC (21 years, 9 months ago) by kristerw
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +4 -2 lines
Fix LINTSTUB comments.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Wed May 21 18:04:42 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +3 -103 lines
Remove #ifdefs supporting the old pmap, switching fully to the new.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sat Apr 26 17:50:21 2003 UTC (21 years, 11 months ago) by chris
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +3 -2 lines
Remove a strh.  I don't think it's available on archv3 and it doesn't work
on acorn32's with an SA110 in them as the bus doesn't support halfword
transfers.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Tue Apr 22 00:24:49 2003 UTC (21 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -3 lines
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.30: download - view: text, markup, annotated - select for diffs
Fri Apr 18 11:08:25 2003 UTC (21 years, 11 months ago) by scw
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +319 -2 lines
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.29: download - view: text, markup, annotated - select for diffs
Fri Jan 17 22:28:49 2003 UTC (22 years, 2 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +240 -116 lines
Merge the nathanw_sa branch.

Revision 1.3.2.28: download - view: text, markup, annotated - select for diffs
Tue Jan 7 23:51:53 2003 UTC (22 years, 2 months ago) by thorpej
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.3.2.27: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.2.27: +7 -9 lines
Shave a couple of cycles off the beginning of cpu_switch().

Revision 1.3.2.27: download - view: text, markup, annotated - select for diffs
Fri Jan 3 21:19:10 2003 UTC (22 years, 2 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.26: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.26: +33 -114 lines
Merge switch_exit() and switch_lwp_exit(), and hand-schedule the
resulting function to avoid stalls on StrongARM and XScale.

Revision 1.3.2.26: download - view: text, markup, annotated - select for diffs
Tue Dec 31 01:03:47 2002 UTC (22 years, 2 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.25: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.25: +3 -52 lines
Rename cpu_preempt() to cpu_switchto(), and make the caller remove the
new process from its run queue before calling cpu_switchto().

While here, make a few cpu_switch() and cpu_switchto() implementations
get the outgoing LWP from the args, rather than looking at the curlwp
variable.

Revision 1.28.2.7: download - view: text, markup, annotated - select for diffs
Thu Oct 24 21:25:46 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.6: preferred, colored; branchpoint 1.28: preferred, colored; next MAIN 1.29: preferred, colored
Changes since revision 1.28.2.6: +7 -1 lines
Flush the cache before reading sched_whichqs.  This is entirely the wrong
way to do this, but it should work (very slowly) until I work out the
right way.

Revision 1.28.2.6: download - view: text, markup, annotated - select for diffs
Sat Oct 19 15:13:23 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.5: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.5: +20 -1 lines
Switch to the idle PCB in the idle loop.

Revision 1.28.2.5: download - view: text, markup, annotated - select for diffs
Sat Oct 19 13:30:43 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.4: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.4: +52 -14 lines
In cpu_switch and cpu_exit, use curcpu to find curproc and curpcb, rather
than assuming CPU 0.  Also fix a register-shuffling botch in cpu_exit.

Revision 1.28.2.4: download - view: text, markup, annotated - select for diffs
Sat Oct 19 12:40:25 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.3: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.3: +11 -19 lines
Reshuffle register usage in cpu_exit along the lines of cpu_switch to
reduce saving and restoring of registers.

Revision 1.28.2.3: download - view: text, markup, annotated - select for diffs
Sat Oct 19 12:24:12 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.2: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.2: +38 -48 lines
Redo the following revision:
syssrc/sys/arch/arm/arm32/cpuswitch.S		1.27

Original log message:

The grand cpu_switch register reshuffle!

In particular, use r8 to hold the old process, and r7 for medium-term
scratch, saving r0-r3 for things we don't need saved over function
calls.  This gets rid of five register-to-register MOVs.

Revision 1.28.2.2: download - view: text, markup, annotated - select for diffs
Sat Oct 19 11:59:36 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
Diff to: previous 1.28.2.1: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.1: +665 -0 lines
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.28.2.1
Sat Oct 19 00:10:53 2002 UTC (22 years, 5 months ago) by bjh21
Branches: bjh21-hydra
FILE REMOVED
Changes since revision 1.28: +0 -661 lines
file cpuswitch.S was added on branch bjh21-hydra on 2002-10-19 11:59:36 +0000

Revision 1.28: download - view: text, markup, annotated - select for diffs
Sat Oct 19 00:10:53 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
CVS tags: nathanw_sa_before_merge, nathanw_sa_base, kqueue-beforemerge, kqueue-aftermerge, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base, bjh21-hydra-base
Branch point for: bjh21-hydra
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +58 -52 lines
Undo recent cpu_switch register usage changes in order to decrease nathanw_sa
merge pain.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Fri Oct 18 23:06:33 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +38 -48 lines
The grand cpu_switch register reshuffle!

In particular, use r8 to hold the old process, and r7 for medium-term
scratch, saving r0-r3 for things we don't need saved over function
calls.  This gets rid of five register-to-register MOVs.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Fri Oct 18 21:32:57 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +19 -15 lines
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.3.2.25: download - view: text, markup, annotated - select for diffs
Fri Oct 18 02:35:20 2002 UTC (22 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.24: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.24: +34 -139 lines
Catch up to -current.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Oct 15 20:53:38 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +1 -124 lines
Switch to using the MI C versions of setrunqueue() and remrunqueue().
GCC produces almost exactly the same instructions as the hand-assembled
versions, albeit in a different order.  It even found one place where it
could shave one off.  Its insistence on creating a stack frame might slow
things down marginally, but not, I think, enough to matter.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon Oct 14 22:32:50 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +2 -3 lines
Continue the " - . - 8" purge.  Specifically:

add	rd, pc, #foo - . - 8		->	adr	rd, foo
ldr	rd, [pc, #foo - . - 8]		->	ldr	rd, foo

Also, when saving the return address for a function pointer call, use
"mov lr, pc" just before the call unless the return address is somewhere
other than just after the call site.

Finally, a few obvious little micro-optimisations like using LDR directly
rather than ADR followed by LDR, and loading directly into PC rather than
bouncing via R0.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sun Oct 13 14:54:48 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +7 -12 lines
Instead of "add rd, pc, #foo - . - 8", use either "adr rd, foo" or (where
appropriate) "mov lr, pc".  This makes things slightly less confusing and
ugly.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Oct 12 12:20:10 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +7 -2 lines
Move curpcb into struct cpu_info in MULTIPROCESSOR kernels.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Oct 9 22:28:03 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -2 lines
Use ADR rather than an explicit ADD from PC.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Tue Oct 8 23:48:24 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +1 -2 lines
Remove an outdated register assignment comment.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sat Oct 5 13:46:59 2002 UTC (22 years, 5 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +23 -5 lines
Minimal changes to allow a kernel with "options MULTIPROCESSOR" to compile
and boot multi-user on a single-processor machine.  Many of these changes
are wildly inappropriate for actual multi-processor operation, and correcting
this will be my next task.

Revision 1.3.2.24: download - view: text, markup, annotated - select for diffs
Wed Sep 18 23:57:32 2002 UTC (22 years, 6 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.23: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.23: +12 -8 lines
Fix cpu_switch() after RAS integration from trunk.

Revision 1.3.2.23: download - view: text, markup, annotated - select for diffs
Tue Sep 17 23:50:18 2002 UTC (22 years, 6 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.22: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.22: +4 -4 lines
Rearrange slightly and pass p, not l, to ras_lookup().

Revision 1.3.2.22: download - view: text, markup, annotated - select for diffs
Tue Sep 17 21:13:20 2002 UTC (22 years, 6 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.21: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.21: +31 -11 lines
Catch up to -current.

Revision 1.1.2.6: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:32:22 2002 UTC (22 years, 6 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.1.2.5: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.5: +173 -123 lines
sync kqueue branch with HEAD

Revision 1.7.2.2: download - view: text, markup, annotated - select for diffs
Sat Aug 31 16:38:03 2002 UTC (22 years, 6 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.7.2.1: preferred, colored; branchpoint 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7.2.1: +23 -1 lines
catch up with -current.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sat Aug 31 03:07:32 2002 UTC (22 years, 6 months ago) by thorpej
Branches: MAIN
CVS tags: kqueue-base, gehenna-devsw-base
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +23 -1 lines
Add machine-dependent bits of RAS for arm32.

Revision 1.7.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 30 00:19:06 2002 UTC (22 years, 6 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +151 -123 lines
catch up with -current.

Revision 1.3.2.21: download - view: text, markup, annotated - select for diffs
Tue Aug 20 15:21:29 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.20: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.20: +65 -18 lines
Check to see if the incoming LWP has the same L1 table as the
outgoing LWP.  If so, then we can skip the cache purge and TTB
reload.  This results in a ~40% reduction in cache purges called
from cpu_switch() in my test using two threaded applications which
communicate with each other.

Revision 1.3.2.20: download - view: text, markup, annotated - select for diffs
Mon Aug 19 21:39:00 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.19: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.19: +125 -116 lines
Partial (ARM only) sync with trunk -- significant performance improvements
for XScale-based systems.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Aug 17 16:36:33 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +40 -46 lines
More local label fixups.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sat Aug 17 01:08:21 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +23 -17 lines
Must ... micro ... optimize!

* Save an instruction in the transition from idle to have-process-to-
  switch-to, and eliminate two instructions that cause datadep-stalls
  on StrongARM And XScale (one in each idle block).
* Rearrange some other instructions to avoid datadep-stalls on StrongARM
  and XScale.
* Since cpu_do_powersave == 0 is by far the common case, avoid a
  pipeline flush by reordering the two idle blocks.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Fri Aug 16 15:25:54 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +28 -20 lines
* Add a new machdep.powersave sysctl, which controls the use of
  the CPU's "sleep" function in the idle loop.
* Default all CPUs to not use powersave, except for the PDA processors
  (SA11x0 and PXA2x0).

This significantly reduces inteterrupt latency in high-performance
applications (and was good to squeeze another ~10% out of an XScale
IOP on a Gig-E benchmark).

Revision 1.14: download - view: text, markup, annotated - select for diffs
Thu Aug 15 01:37:01 2002 UTC (22 years, 7 months ago) by briggs
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +27 -27 lines
 * Use local label names (.Lfoo vs. (Lfoo or foo))
 * When moving from cpsr, use "cpsr" instead of "cpsr_all" (which is
   provided, but doesn't make sense since mrs doesn't support fields
   like msr does).

Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Aug 14 23:23:06 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +13 -13 lines
We only need to modify the CPSR's control field, so use cpsr_c rather
than cpsr_all.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Aug 14 23:07:36 2002 UTC (22 years, 7 months ago) by chris
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +3 -3 lines
Tweak asm to avoid a couple of stalls.

Revision 1.3.2.19: download - view: text, markup, annotated - select for diffs
Mon Aug 12 21:00:26 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.18: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.18: +7 -8 lines
Rearrange the beginning of cpu_switch() slightly to reduce data-dep
stalls on StrongARM and XScale.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Aug 12 21:00:12 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +7 -8 lines
Rearrange the beginning of cpu_switch() slightly to reduce data-dep
stalls on StrongARM and XScale.

Revision 1.3.2.18: download - view: text, markup, annotated - select for diffs
Mon Aug 12 20:52:14 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.17: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.17: +39 -1 lines
Add the requisite calls to sched_lock_idle() and sched_unlock_idle() if
LOCKDEBUG is defined, as is done on the trunk.

Revision 1.3.2.17: download - view: text, markup, annotated - select for diffs
Mon Aug 12 20:34:50 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.16: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.16: +7 -10 lines
More register usage tweaks to reduce differences with trunk.

Revision 1.3.2.16: download - view: text, markup, annotated - select for diffs
Mon Aug 12 20:21:25 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.15: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.15: +6 -4 lines
Tweak register usage in cpu_switch() slightly to reduce differences
with the trunk.

Revision 1.3.2.15: download - view: text, markup, annotated - select for diffs
Mon Aug 12 20:13:57 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.14: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.14: +5 -7 lines
Tweak register usage in cpu_preempt() slightly.

Revision 1.3.2.14: download - view: text, markup, annotated - select for diffs
Mon Aug 12 20:02:00 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.13: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.13: +4 -6 lines
Reduce some differences with the trunk.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Aug 12 19:33:01 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +4 -8 lines
Make a slight tweak to register usage to save an instruction.

Revision 1.3.2.13: download - view: text, markup, annotated - select for diffs
Tue Aug 6 19:22:20 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.12: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.12: +50 -15 lines
Rearrange the exit path so that we don't do a idcache_wbinv_all *twice*
when a process or lwp exits.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Tue Aug 6 19:20:29 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +41 -15 lines
Rearrange the exit path so that we don't do a idcache_wbinv_all *twice*
when a process exits.

Revision 1.3.2.12: download - view: text, markup, annotated - select for diffs
Tue Aug 6 17:45:38 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.11: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.11: +10 -12 lines
* In switch_exit()/switch_lwp_exit(), set the outgoing-lwp register to
  NULL (rather than lwp0) so that we actually use the "exiting process"
  optimization in cpu_switch().
* Correct some comments.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue Aug 6 17:44:35 2002 UTC (22 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +4 -5 lines
* 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.3.2.11: download - view: text, markup, annotated - select for diffs
Mon Aug 5 23:08:55 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.10: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.10: +7 -2 lines
Fix cpu_preempt() for the __NEWINTR case.

Revision 1.3.2.10: download - view: text, markup, annotated - select for diffs
Mon Aug 5 19:51:45 2002 UTC (22 years, 7 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.9: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.9: +27 -60 lines
Back out the changes that implement the scheduler locking protocol.
The register usage in this file is very different than on the trunk,
and so the changes made to the trunk don't really apply here.

Fix up some comments while here.

Revision 1.3.2.9: download - view: text, markup, annotated - select for diffs
Mon Jun 24 22:03:50 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.8: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.8: +13 -13 lines
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.5: download - view: text, markup, annotated - select for diffs
Sun Jun 23 17:34:44 2002 UTC (22 years, 9 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.1.2.4: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.4: +50 -15 lines
catch up with -current on kqueue branch

Revision 1.3.2.8: download - view: text, markup, annotated - select for diffs
Fri Jun 21 23:43:50 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.7: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.7: +2 -2 lines
switch_search -> Lswitch_search in switch_exit().

Revision 1.3.2.7: download - view: text, markup, annotated - select for diffs
Thu Jun 20 03:38:04 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.6: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.6: +65 -17 lines
Catch up to -current.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue May 14 19:22:34 2002 UTC (22 years, 10 months ago) by chris
Branches: 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
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +50 -15 lines
Implement scheduler lock protocol, this fixes PR arm/10863.

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

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

Revision 1.3.2.6: download - view: text, markup, annotated - select for diffs
Thu Apr 11 07:00:15 2002 UTC (22 years, 11 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.5: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.5: +2 -2 lines
Make this compile again.

Revision 1.3.2.5: download - view: text, markup, annotated - select for diffs
Thu Feb 28 04:07:21 2002 UTC (23 years ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.4: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.4: +3 -3 lines
Catch up to -current.

Revision 1.1.2.4: download - view: text, markup, annotated - select for diffs
Mon Feb 11 20:07:18 2002 UTC (23 years, 1 month ago) by jdolecek
Branches: kqueue
Diff to: previous 1.1.2.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.3: +3 -3 lines
Sync w/ -current.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Jan 25 19:19:24 2002 UTC (23 years, 2 months ago) by thorpej
Branches: MAIN
CVS tags: newlock-base, newlock, ifpoll-base, eeh-devprop-base, eeh-devprop
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +3 -3 lines
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.3: download - view: text, markup, annotated - select for diffs
Thu Jan 10 19:37:48 2002 UTC (23 years, 2 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.2: +23 -53 lines
Sync kqueue branch with -current.

Revision 1.3.2.4: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:23:08 2002 UTC (23 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.3: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.3: +17 -48 lines
Catch up to -current.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Thu Nov 29 17:14:02 2001 UTC (23 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +7 -27 lines
Provide a way for platforms to move away from the old RiscPC-centric
interrupt code.  Garbage-collect some unused stuff.

Revision 1.3.2.3: download - view: text, markup, annotated - select for diffs
Thu Nov 29 16:20:54 2001 UTC (23 years, 3 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.2: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.2: +2 -2 lines
l_stat is an int now instead of a u_char.  Pointed out by pk in a
commit message.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Nov 19 20:38:58 2001 UTC (23 years, 4 months ago) by chris
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +12 -23 lines
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.3.2.2: download - view: text, markup, annotated - select for diffs
Thu Nov 15 06:39:21 2001 UTC (23 years, 4 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.3.2.1: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.2.1: +888 -0 lines
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.2.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 12 21:16:29 2001 UTC (23 years, 4 months ago) by thorpej
Branches: thorpej-mips-cache
Diff to: previous 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2: +6 -5 lines
Sync the thorpej-mips-cache branch with -current.

Revision 1.3.2.1
Sun Nov 11 22:07:41 2001 UTC (23 years, 4 months ago) by thorpej
Branches: nathanw_sa
FILE REMOVED
Changes since revision 1.3: +0 -714 lines
file cpuswitch.S was added on branch nathanw_sa on 2001-11-15 06:39:21 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Nov 11 22:07:41 2001 UTC (23 years, 4 months ago) by chris
Branches: MAIN
CVS tags: thorpej-mips-cache-base
Branch point for: nathanw_sa
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +6 -5 lines
Correct comments for ffs algoritm (it isn't using register r0)

Revision 1.1.4.1: download - view: text, markup, annotated - select for diffs
Mon Oct 1 12:37:33 2001 UTC (23 years, 5 months ago) by fvdl
Branches: thorpej-devvp
Diff to: previous 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1: +2 -2 lines
Catch up with -current.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Sep 16 17:38:08 2001 UTC (23 years, 6 months ago) by matt
Branches: MAIN
CVS tags: thorpej-devvp-base3, thorpej-devvp-base2
Branch point for: thorpej-mips-cache
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +2 -2 lines
Fix .type which uses wrong symbol name.

Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Fri Aug 3 04:10:58 2001 UTC (23 years, 7 months ago) by lukem
Branches: kqueue
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +713 -0 lines
update to -current

Revision 1.1.2.1
Sat Jul 28 13:28:03 2001 UTC (23 years, 8 months ago) by lukem
Branches: kqueue
FILE REMOVED
Changes since revision 1.1: +0 -713 lines
file cpuswitch.S was added on branch kqueue on 2001-08-03 04:10:58 +0000

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Jul 28 13:28:03 2001 UTC (23 years, 8 months ago) by chris
Branches: MAIN
CVS tags: thorpej-devvp-base, pre-chs-ubcperf, post-chs-ubcperf
Branch point for: thorpej-devvp, kqueue
Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.

Diff request

This form allows you to request diffs 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.

Log view options

CVSweb <webmaster@jp.NetBSD.org>