The NetBSD Project

CVS log for src/sys/kern/kern_idle.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / kern

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.36 / (download) - annotate - [select for diffs], Fri Mar 1 04:32:38 2024 UTC (6 weeks, 1 day ago) by mrg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.35: +4 -2 lines
Diff to previous 1.35 (colored)

check that l_nopreempt (preemption count) doesn't change after callbacks

check that the idle loop, soft interrupt handlers, workqueue, and xcall
callbacks do not modify the preemption count, in most cases, knowing it
should be 0 currently.

this work was originally done by simonb.  cleaned up slightly and some
minor enhancement made by myself, and with discussion with riastradh@.

other callback call sites could check this as well (such as MD interrupt
handlers, or really anything that includes a callback registration.  x86
version to be commited separately.)

Revision 1.35 / (download) - annotate - [select for diffs], Thu Oct 5 19:10:18 2023 UTC (6 months, 1 week ago) by ad
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.34: +4 -3 lines
Diff to previous 1.34 (colored)

The idle LWP doesn't need to care about kernel_lock.

Revision 1.34 / (download) - annotate - [select for diffs], Sat Sep 5 16:30:12 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, netbsd-10-base, 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, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.33: +2 -3 lines
Diff to previous 1.33 (colored)

Round of uvm.h cleanup.

The poorly named uvm.h is generally supposed to be for uvm-internal
users only.

- Narrow it to files that actually need it -- mostly files that need
  to query whether curlwp is the pagedaemon, which should maybe be
  exposed by an external header.

- Use uvm_extern.h where feasible and uvm_*.h for things not exposed
  by it.  We should split up uvm_extern.h but this will serve for now
  to reduce the uvm.h dependencies.

- Use uvm_stat.h and #ifdef UVMHIST uvm.h for files that use
  UVMHIST(ubchist), since ubchist is declared in uvm.h but the
  reference evaporates if UVMHIST is not defined, so we reduce header
  file dependencies.

- Make uvm_device.h and uvm_swap.h independently includable while
  here.

ok chs@

Revision 1.25.48.1 / (download) - annotate - [select for diffs], Wed Apr 8 14:08:51 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.25: +25 -16 lines
Diff to previous 1.25 (colored) next main 1.26 (colored)

Merge changes from current as of 20200406

Revision 1.33 / (download) - annotate - [select for diffs], Thu Mar 26 19:42:39 2020 UTC (4 years ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Changes since 1.32: +5 -6 lines
Diff to previous 1.32 (colored)

Leave the idle LWPs in state LSIDL even when running, so they don't mess up
output from ps/top/etc.  Correctness isn't at stake, LWPs in other states
are temporarily on the CPU at times too (e.g.  LSZOMB, LSSLEEP).

Revision 1.29.2.4 / (download) - annotate - [select for diffs], Sat Feb 29 21:50:45 2020 UTC (4 years, 1 month ago) by ad
Branch: ad-namecache
Changes since 1.29.2.3: +1 -0 lines
Diff to previous 1.29.2.3 (colored) to branchpoint 1.29 (colored) next main 1.30 (colored)

Sync with head.

Revision 1.29.2.3 / (download) - annotate - [select for diffs], Sat Feb 29 20:21:02 2020 UTC (4 years, 1 month ago) by ad
Branch: ad-namecache
Changes since 1.29.2.2: +4 -4 lines
Diff to previous 1.29.2.2 (colored) to branchpoint 1.29 (colored)

Sync with head.

Revision 1.32 / (download) - annotate - [select for diffs], Sat Feb 15 18:12:15 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Changes since 1.31: +4 -4 lines
Diff to previous 1.31 (colored)

- Move the LW_RUNNING flag back into l_pflag: updating l_flag without lock
  in softint_dispatch() is risky.  May help with the "softint screwup"
  panic.

- Correct the memory barriers around zombies switching into oblivion.

Revision 1.29.2.2 / (download) - annotate - [select for diffs], Sat Jan 25 22:38:50 2020 UTC (4 years, 2 months ago) by ad
Branch: ad-namecache
Changes since 1.29.2.1: +18 -10 lines
Diff to previous 1.29.2.1 (colored) to branchpoint 1.29 (colored)

Sync with head.

Revision 1.31 / (download) - annotate - [select for diffs], Sat Jan 25 20:29:43 2020 UTC (4 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base2
Changes since 1.30: +18 -9 lines
Diff to previous 1.30 (colored)

For secondary CPUs, the idle LWP is the first to run, and it's directly
entered from MD code without a trip through mi_switch().  Make the picture
look good in case the CPU takes an interrupt before it calls idle_loop().

Revision 1.29.2.1 / (download) - annotate - [select for diffs], Fri Jan 17 21:47:35 2020 UTC (4 years, 2 months ago) by ad
Branch: ad-namecache
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored)

Sync with head.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Jan 8 17:38:42 2020 UTC (4 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base1
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored)

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.29 / (download) - annotate - [select for diffs], Tue Dec 31 22:42:51 2019 UTC (4 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base
Branch point for: ad-namecache
Changes since 1.28: +4 -4 lines
Diff to previous 1.28 (colored)

- Add and use wrapper functions that take and acquire page interlocks, and pairs
  of page interlocks.  Require that the page interlock be held over calls to
  uvm_pageactivate(), uvm_pagewire() and similar.

- Solve the concurrency problem with page replacement state.  Rather than
  updating the global state synchronously, set an intended state on
  individual pages (active, inactive, enqueued, dequeued) while holding the
  page interlock.  After the interlock is released put the pages on a 128
  entry per-CPU queue for their state changes to be made real in batch.
  This results in in a ~400 fold decrease in contention on my test system.
  Proposed on tech-kern but modified to use the page interlock rather than
  atomics to synchronise as it's much easier to maintain that way, and
  cheaper.

Revision 1.28 / (download) - annotate - [select for diffs], Fri Dec 6 21:36:10 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.27: +4 -2 lines
Diff to previous 1.27 (colored)

Make it possible to call mi_switch() and immediately switch to another CPU.
This seems to take about 3us on my Intel system.  Two changes required:

- Have the caller to mi_switch() be responsible for calling spc_lock().
- Avoid using l->l_cpu in mi_switch().

While here:

- Add a couple of calls to membar_enter()
- Have the idle LWP set itself to LSIDL, to match softint_thread().
- Remove unused return value from mi_switch().

Revision 1.27 / (download) - annotate - [select for diffs], Sun Dec 1 15:34:46 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.26: +3 -3 lines
Diff to previous 1.26 (colored)

Fix false sharing problems with cpu_info.  Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
  the IPI bitmask and ci_want_resched.

Revision 1.26 / (download) - annotate - [select for diffs], Sat Nov 23 19:42:52 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.25: +9 -10 lines
Diff to previous 1.25 (colored)

Minor scheduler cleanup:

- Adapt to cpu_need_resched() changes. Avoid lost & duplicate IPIs and ASTs.
  sched_resched_cpu() and sched_resched_lwp() contain the logic for this.
- Changes for LSIDL to make the locking scheme match the intended design.
- Reduce lock contention and false sharing further.
- Numerous small bugfixes, including some corrections for SCHED_FIFO/RT.
- Use setrunnable() in more places, and merge cut & pasted code.

Revision 1.24.6.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:08:24 2012 UTC (11 years, 11 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.24: +1 -0 lines
Diff to previous 1.24 (colored) next main 1.25 (colored)

sync with head

Revision 1.24.10.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:35:29 2012 UTC (12 years, 1 month ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored) next main 1.25 (colored)

merge to -current.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jan 29 22:55:40 2012 UTC (12 years, 2 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, tls-maxphys-base-20171202, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, 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, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, 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, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, 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-nb8-mediatek-base, matt-nb8-mediatek, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, localcount-20160914, khorben-n900, 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, jdolecek-ncq-base, jdolecek-ncq, isaki-audio2-base, isaki-audio2, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, agc-symver-base, agc-symver
Branch point for: phil-wifi
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored)

- Add mi_cpu_init() and initialise cpu_lock and kcpuset_attached/running there.
- Add kcpuset_running which gets set in idle_loop().
- Use kcpuset_running in pserialize_perform().

Revision 1.23.6.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:09:28 2011 UTC (12 years, 10 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

Sync with HEAD.

Revision 1.23.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 20:55:14 2011 UTC (13 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

sync with head

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jan 17 07:13:31 2011 UTC (13 years, 2 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, rmind-uvmplock-nbase, rmind-uvmplock-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored)

Include internal definitions (uvm/uvm.h) only where necessary.

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Wed Aug 19 18:48:16 2009 UTC (14 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16.2.2: +3 -2 lines
Diff to previous 1.16.2.2 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored)

sync with head.

Revision 1.21.10.1 / (download) - annotate - [select for diffs], Thu Jul 23 23:32:34 2009 UTC (14 years, 8 months ago) by jym
Branch: jym-xensuspend
Changes since 1.21: +10 -5 lines
Diff to previous 1.21 (colored) next main 1.22 (colored)

Sync with HEAD.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Jul 19 10:11:55 2009 UTC (14 years, 8 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, matt-premerge-20091211, matt-mips64-premerge-20101231, jymxensuspend-base, jym-xensuspend-nbase, jruoho-x86intr-base
Branch point for: rmind-uvmplock, jruoho-x86intr
Changes since 1.22: +3 -2 lines
Diff to previous 1.22 (colored)

set LP_RUNNING when starting lwp0 and idle lwps.
add assertions.

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Sat Jul 18 14:53:23 2009 UTC (14 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16.2.1: +9 -5 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jun 28 09:25:05 2009 UTC (14 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6
Changes since 1.21: +9 -5 lines
Diff to previous 1.21 (colored)

idle_loop: explicitly go to spl0() to sidestep potential MD bugs.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Mon May 4 08:13:46 2009 UTC (14 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16: +17 -63 lines
Diff to previous 1.16 (colored)

sync with head.

Revision 1.11.6.4 / (download) - annotate - [select for diffs], Sun Jun 29 09:33:14 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.11.6.3: +3 -1 lines
Diff to previous 1.11.6.3 (colored) to branchpoint 1.11 (colored) next main 1.12 (colored)

Sync with HEAD.

Revision 1.16.4.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:31:50 2008 UTC (15 years, 9 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.16: +17 -63 lines
Diff to previous 1.16 (colored) next main 1.17 (colored)

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

Revision 1.20.2.1 / (download) - annotate - [select for diffs], Wed Jun 18 16:33:35 2008 UTC (15 years, 9 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.20: +5 -3 lines
Diff to previous 1.20 (colored) next main 1.21 (colored)

Sync with head.

Revision 1.13.2.3 / (download) - annotate - [select for diffs], Tue Jun 17 09:15:03 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.13.2.2: +11 -16 lines
Diff to previous 1.13.2.2 (colored) to branchpoint 1.13 (colored) next main 1.14 (colored)

sync with head.

Revision 1.21 / (download) - annotate - [select for diffs], Wed Jun 11 13:42:02 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, nick-hppapmap, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, jym-xensuspend-base, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: jym-xensuspend
Changes since 1.20: +5 -3 lines
Diff to previous 1.20 (colored)

Don't call uvm_pageidlezero() if the CPU is marked offline.

Revision 1.11.6.3 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:36 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.11.6.2: +7 -14 lines
Diff to previous 1.11.6.2 (colored) to branchpoint 1.11 (colored)

Sync with HEAD.

Also fix build.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jun 4 12:45:28 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Branch point for: simonb-wapbl
Changes since 1.19: +9 -16 lines
Diff to previous 1.19 (colored)

- vm_page: put listq, pageq into a union alongside a LIST_ENTRY, so we can
  use both types of list.

- Make page coloring and idle zero state per-CPU.

- Maintain per-CPU page freelists. When freeing, put pages onto the local
  CPU's lists and the global lists. When allocating, prefer to take pages
  from the local CPU. If none are available take from the global list as
  done now. Proposed on tech-kern@.

Revision 1.13.2.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:39 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.13.2.1: +13 -54 lines
Diff to previous 1.13.2.1 (colored) to branchpoint 1.13 (colored)

sync with head

Revision 1.11.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:08 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.11.6.1: +16 -2 lines
Diff to previous 1.11.6.1 (colored) to branchpoint 1.11 (colored)

Sync with HEAD.

Revision 1.19 / (download) - annotate - [select for diffs], Thu May 29 22:33:27 2008 UTC (15 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.18: +8 -6 lines
Diff to previous 1.18 (colored)

Simplifcation for running LWP migration.  Removes double-locking in
mi_switch(), migration for LSONPROC is now performed via idle loop.
Handles/fixes on-CPU case in lwp_migrate(), misc.

Closes PR/38169, idea of migration via idle loop by Andrew Doran.

Revision 1.18 / (download) - annotate - [select for diffs], Tue May 27 14:48:52 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.17: +6 -51 lines
Diff to previous 1.17 (colored)

PR kern/38707 scheduler related deadlock during build.sh

- Fix performance regression inroduced by the workaround by making job
  stealing a lot simpler: if the local run queue is empty, let the CPU enter
  the idle loop. In the idle loop, try to steal a job from another CPU's run
  queue if we are idle. If we succeed, re-enter mi_switch() immediatley to
  dispatch the job.

- When stealing jobs, consider a remote CPU to have one less job in its
  queue if it's currently in the idle loop. It will dispatch the job soon,
  so there's no point sloshing it about.

- Introduce a few event counters to monitor what's happening with the run
  queues.

- Revert the idle CPU bitmap change. It's pointless considering NUMA.

Revision 1.17 / (download) - annotate - [select for diffs], Sat May 24 12:59:06 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.16: +4 -2 lines
Diff to previous 1.16 (colored)

Set cpu_onproc on entry to the idle loop.

Revision 1.13.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:08 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.13: +9 -4 lines
Diff to previous 1.13 (colored)

sync with head.

Revision 1.16 / (download) - annotate - [select for diffs], Sat Apr 26 08:09:30 2008 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, yamt-nfs-mp-base, hpcarm-cleanup-nbase
Branch point for: yamt-nfs-mp, wrstuden-revivesa
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

fix a comment.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Apr 26 08:08:27 2008 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14 (colored)

idle_loop: unsigned -> uint32_t to be consistent with the rest of the code.
no functional change.

Revision 1.14 / (download) - annotate - [select for diffs], Thu Apr 24 13:56:30 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.13: +7 -2 lines
Diff to previous 1.13 (colored)

xc_broadcast: don't try to run cross calls on CPUs that are not yet running.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Apr 4 17:21:22 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.12: +52 -2 lines
Diff to previous 1.12 (colored)

Maintain a bitmap of idle CPUs and add idle_pick() to find an idle CPU
and remove it from the bitmap.

Revision 1.11.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:43:01 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored)

Sync with HEAD.

Revision 1.11.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:16:13 2008 UTC (16 years ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored) next main 1.12 (colored)

sync with head.

Revision 1.4.6.3 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:59 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.4.6.2: +4 -4 lines
Diff to previous 1.4.6.2 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with HEAD

Revision 1.4.8.8 / (download) - annotate - [select for diffs], Mon Mar 17 09:15:33 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.7: +3 -3 lines
Diff to previous 1.4.8.7 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Mar 10 22:20:14 2008 UTC (16 years, 1 month ago) by martin
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored)

Use cpu index instead of the machine dependend, not very expressive
cpuid when naming user-visible kernel entities.

Revision 1.4.8.7 / (download) - annotate - [select for diffs], Wed Feb 27 08:36:55 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.6: +3 -3 lines
Diff to previous 1.4.8.6 (colored) to branchpoint 1.4 (colored)

sync with head.

Revision 1.6.4.3 / (download) - annotate - [select for diffs], Mon Feb 18 21:06:45 2008 UTC (16 years, 1 month ago) by mjf
Branch: mjf-devfs
Changes since 1.6.4.2: +3 -3 lines
Diff to previous 1.6.4.2 (colored) to branchpoint 1.6 (colored) next main 1.7 (colored)

Sync with HEAD.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Feb 14 14:26:57 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.10: +3 -3 lines
Diff to previous 1.10 (colored)

Make schedstate_percpu::spc_lwplock an exernally allocated item. Remove
the hacks in sparc/cpu.c to reinitialize it. This should be in its own
cache line but that's another change.

Revision 1.4.8.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:46:04 2008 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.5: +3 -3 lines
Diff to previous 1.4.8.5 (colored) to branchpoint 1.4 (colored)

sync with head

Revision 1.4.6.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:56:02 2008 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.4.6.1: +5 -4 lines
Diff to previous 1.4.6.1 (colored) to branchpoint 1.4 (colored)

sync with HEAD

Revision 1.9.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:55:50 2008 UTC (16 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored) next main 1.10 (colored)

Sync with HEAD

Revision 1.6.4.2 / (download) - annotate - [select for diffs], Thu Dec 27 00:45:59 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.6.4.1: +3 -3 lines
Diff to previous 1.6.4.1 (colored) to branchpoint 1.6 (colored)

Sync with HEAD.

Revision 1.9.2.1 / (download) - annotate - [select for diffs], Wed Dec 26 19:57:07 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored) next main 1.10 (colored)

Sync with head.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Dec 22 01:14:54 2007 UTC (16 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: vmlocking2-base3, matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

use binuptime for l_stime/l_rtime.

Revision 1.4.8.5 / (download) - annotate - [select for diffs], Fri Dec 7 17:32:42 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.4: +4 -2 lines
Diff to previous 1.4.8.4 (colored) to branchpoint 1.4 (colored)

sync with head

Revision 1.4.4.5 / (download) - annotate - [select for diffs], Wed Nov 21 21:55:58 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.4.4.4: +4 -2 lines
Diff to previous 1.4.4.4 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

Sync with HEAD.

Revision 1.6.4.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:48:38 2007 UTC (16 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.6: +15 -38 lines
Diff to previous 1.6 (colored)

Sync with HEAD.

Revision 1.6.2.2 / (download) - annotate - [select for diffs], Sun Nov 18 19:35:48 2007 UTC (16 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.6.2.1: +2 -1 lines
Diff to previous 1.6.2.1 (colored) to branchpoint 1.6 (colored) next main 1.7 (colored)

Sync with HEAD

Revision 1.9 / (download) - annotate - [select for diffs], Thu Nov 15 20:12:25 2007 UTC (16 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: vmlocking2, bouyer-xeni386
Changes since 1.8: +4 -2 lines
Diff to previous 1.8 (colored)

Lock curlwp when updating the start time.

Revision 1.4.8.4 / (download) - annotate - [select for diffs], Thu Nov 15 11:44:41 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.3: +13 -38 lines
Diff to previous 1.4.8.3 (colored) to branchpoint 1.4 (colored)

sync with head.

Revision 1.4.4.4 / (download) - annotate - [select for diffs], Wed Nov 14 19:04:40 2007 UTC (16 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.4.4.3: +2 -3 lines
Diff to previous 1.4.4.3 (colored) to branchpoint 1.4 (colored)

Sync with HEAD.

Revision 1.8 / (download) - annotate - [select for diffs], Tue Nov 13 22:14:35 2007 UTC (16 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.7: +2 -3 lines
Diff to previous 1.7 (colored)

Remove KERNEL_LOCK_ASSERT_LOCKED, KERNEL_LOCK_ASSERT_UNLOCKED since the
kernel_lock functions can be patched out at runtime now. Assertions are
provided by the existing functions and by LOCKDEBUG_BARRIER.

Revision 1.6.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 16:02:03 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.6: +13 -37 lines
Diff to previous 1.6 (colored)

Sync with HEAD

Revision 1.4.6.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:31:36 2007 UTC (16 years, 5 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.4: +18 -40 lines
Diff to previous 1.4 (colored)

sync with HEAD

Revision 1.4.4.3 / (download) - annotate - [select for diffs], Tue Nov 6 19:25:28 2007 UTC (16 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.4.4.2: +13 -37 lines
Diff to previous 1.4.4.2 (colored) to branchpoint 1.4 (colored)

Sync with HEAD.

Revision 1.7 / (download) - annotate - [select for diffs], Tue Nov 6 00:42:41 2007 UTC (16 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: jmcneill-base
Changes since 1.6: +13 -37 lines
Diff to previous 1.6 (colored)

Merge scheduler changes from the vmlocking branch. All discussed on
tech-kern:

- Invert priority space so that zero is the lowest priority. Rearrange
  number and type of priority levels into bands. Add new bands like
  'kernel real time'.
- Ignore the priority level passed to tsleep. Compute priority for
  sleep dynamically.
- For SCHED_4BSD, make priority adjustment per-LWP, not per-process.

Revision 1.1.6.4 / (download) - annotate - [select for diffs], Thu Nov 1 21:58:17 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.3: +13 -37 lines
Diff to previous 1.1.6.3 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

- Fix interactivity problems under high load. Beacuse soft interrupts
  are being stacked on top of regular LWPs, more often than not aston()
  was being called on a soft interrupt thread instead of a user thread,
  meaning that preemption was not happening on EOI.

- Don't use bool in a couple of data structures. Sub-word writes are not
  always atomic and may clobber other fields in the containing word.

- For SCHED_4BSD, make p_estcpu per thread (l_estcpu). Rework how the
  dynamic priority level is calculated - it's much better behaved now.

- Kill the l_usrpri/l_priority split now that priorities are no longer
  directly assigned by tsleep(). There are three fields describing LWP
  priority:

        l_priority: Dynamic priority calculated by the scheduler.
                This does not change for kernel/realtime threads,
                and always stays within the correct band. Eg for
                timeshared LWPs it never moves out of the user
                priority range. This is basically what l_usrpri
                was before.

        l_inheritedprio: Lent to the LWP due to priority inheritance
                (turnstiles).

        l_kpriority: A boolean value set true the first time an LWP
                sleeps within the kernel. This indicates that the LWP
                should get a priority boost as compensation for blocking.
                lwp_eprio() now does the equivalent of sched_kpri() if
                the flag is set. The flag is cleared in userret().

- Keep track of scheduling class (OTHER, FIFO, RR) in struct lwp, and use
  this to make decisions in a few places where we previously tested for a
  kernel thread.

- Partially fix itimers and usr/sys/intr time accounting in the presence
  of software interrupts.

- Use kthread_create() to create idle LWPs. Move priority definitions
  from the various modules into sys/param.h.

- newlwp -> lwp_create

Revision 1.4.8.3 / (download) - annotate - [select for diffs], Sat Oct 27 11:35:23 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.2: +7 -5 lines
Diff to previous 1.4.8.2 (colored) to branchpoint 1.4 (colored)

sync with head.

Revision 1.4.4.2 / (download) - annotate - [select for diffs], Fri Oct 26 15:48:31 2007 UTC (16 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.4.4.1: +5 -2 lines
Diff to previous 1.4.4.1 (colored) to branchpoint 1.4 (colored)

Sync with HEAD.

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

Revision 1.4.10.2 / (download) - annotate - [select for diffs], Sun Oct 14 11:48:39 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.4.10.1: +5 -2 lines
Diff to previous 1.4.10.1 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head.

Revision 1.1.6.3 / (download) - annotate - [select for diffs], Tue Oct 9 13:44:25 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.2: +7 -5 lines
Diff to previous 1.1.6.2 (colored) to branchpoint 1.1 (colored)

Sync with head.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Oct 8 20:06:19 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base
Branch point for: mjf-devfs, bouyer-xenamd64
Changes since 1.5: +5 -2 lines
Diff to previous 1.5 (colored)

Merge run time accounting changes from the vmlocking branch. These make
the LWP "start time" per-thread instead of per-CPU.

Revision 1.4.10.1 / (download) - annotate - [select for diffs], Sat Oct 6 15:28:42 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.4: +4 -5 lines
Diff to previous 1.4 (colored)

sync with head.

Revision 1.4.4.1 / (download) - annotate - [select for diffs], Tue Oct 2 18:28:59 2007 UTC (16 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.4: +4 -5 lines
Diff to previous 1.4 (colored)

Sync with HEAD.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Oct 1 22:14:23 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base2
Changes since 1.4: +4 -5 lines
Diff to previous 1.4 (colored)

Enter mi_switch() from the idle loop if ci_want_resched is set. If there
are no jobs to run it will clear it while under lock. Should fix idle.

Revision 1.4.8.2 / (download) - annotate - [select for diffs], Mon Sep 3 14:40:47 2007 UTC (16 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4.8.1: +126 -0 lines
Diff to previous 1.4.8.1 (colored) to branchpoint 1.4 (colored)

sync with head.

Revision 1.3.4.1 / (download) - annotate - [select for diffs], Wed Aug 15 13:49:07 2007 UTC (16 years, 8 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored) next main 1.4 (colored)

Sync with HEAD.

Revision 1.4.12.2 / (download) - annotate - [select for diffs], Sat Jul 21 19:06:23 2007 UTC (16 years, 8 months ago) by ad
Branch: matt-mips64
Changes since 1.4.12.1: +126 -0 lines
Diff to previous 1.4.12.1 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

Don't depend on uvm_extern.h pulling in proc.h.

Revision 1.4.12.1, Sat Jul 21 19:06:22 2007 UTC (16 years, 8 months ago) by ad
Branch: matt-mips64
Changes since 1.4: +0 -126 lines
FILE REMOVED

file kern_idle.c was added on branch matt-mips64 on 2007-07-21 19:06:23 +0000

Revision 1.4.8.1, Sat Jul 21 19:06:22 2007 UTC (16 years, 8 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.4: +0 -126 lines
FILE REMOVED

file kern_idle.c was added on branch yamt-lazymbuf on 2007-09-03 14:40:47 +0000

Revision 1.4 / (download) - annotate - [select for diffs], Sat Jul 21 19:06:22 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base, nick-csl-alignment-base5, matt-mips64-base, hpcarm-cleanup
Branch point for: yamt-x86pmap, yamt-lazymbuf, matt-mips64, matt-armv6, jmcneill-pm
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored)

Don't depend on uvm_extern.h pulling in proc.h.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Wed Jul 11 20:09:48 2007 UTC (16 years, 9 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.3.2.1: +125 -0 lines
Diff to previous 1.3.2.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)

Sync with head.

Revision 1.3.2.1, Mon Jul 9 21:10:52 2007 UTC (16 years, 9 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.3: +0 -125 lines
FILE REMOVED

file kern_idle.c was added on branch mjf-ufs-trans on 2007-07-11 20:09:48 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Mon Jul 9 21:10:52 2007 UTC (16 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base
Branch point for: nick-csl-alignment, mjf-ufs-trans
Changes since 1.2: +5 -4 lines
Diff to previous 1.2 (colored)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.1.6.2 / (download) - annotate - [select for diffs], Sun Jun 17 21:31:21 2007 UTC (16 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.1: +4 -3 lines
Diff to previous 1.1.6.1 (colored) to branchpoint 1.1 (colored)

- Increase the number of thread priorities from 128 to 256. How the space
  is set up is to be revisited.
- Implement soft interrupts as kernel threads. A generic implementation
  is provided, with hooks for fast-path MD code that can run the interrupt
  threads over the top of other threads executing in the kernel.
- Split vnode::v_flag into three fields, depending on how the flag is
  locked (by the interlock, by the vnode lock, by the file system).
- Miscellaneous locking fixes and improvements.

Revision 1.1.6.1 / (download) - annotate - [select for diffs], Sat Jun 9 21:37:27 2007 UTC (16 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.1: +125 -0 lines
Diff to previous 1.1 (colored)

Sync with head.

Revision 1.2 / (download) - annotate - [select for diffs], Thu May 17 14:51:39 2007 UTC (16 years, 11 months ago) by yamt
Branch: MAIN
Changes since 1.1: +124 -0 lines
Diff to previous 1.1 (colored)

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

from doc/BRANCHES:

	idle lwp, and some changes depending on it.

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

Revision 1.1.2.9 / (download) - annotate - [select for diffs], Sun May 13 17:02:58 2007 UTC (16 years, 11 months ago) by ad
Branch: yamt-idlelwp
Changes since 1.1.2.8: +4 -3 lines
Diff to previous 1.1.2.8 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

Assign a per-CPU lock to LWPs as they transition into the ONPROC state.

http://mail-index.netbsd.org/tech-kern/2007/05/06/0003.html

Revision 1.1.2.8 / (download) - annotate - [select for diffs], Sat Apr 21 18:11:41 2007 UTC (16 years, 11 months ago) by mrg
Branch: yamt-idlelwp
Changes since 1.1.2.7: +3 -3 lines
Diff to previous 1.1.2.7 (colored) to branchpoint 1.1 (colored)

add a missing ";" in the !MP case.

Revision 1.1.2.7 / (download) - annotate - [select for diffs], Sat Apr 21 15:50:15 2007 UTC (16 years, 11 months ago) by ad
Branch: yamt-idlelwp
Changes since 1.1.2.6: +17 -3 lines
Diff to previous 1.1.2.6 (colored) to branchpoint 1.1 (colored)

Some changes mainly for top/ps:

- Add an optional name field to struct lwp.
- Count the total number of context switches + involuntary,
  not voluntary + involuntary.
- Mark the idle threads as LSIDL when not running, otherwise
  they show up funny in a top(1) that shows threads.
- Make pctcpu and cpticks per-LWP attributes.
- Add to kinfo_lwp: cpticks, pctcpu, pid, name.

Revision 1.1.2.6 / (download) - annotate - [select for diffs], Mon Apr 16 23:31:20 2007 UTC (17 years ago) by ad
Branch: yamt-idlelwp
Changes since 1.1.2.5: +3 -3 lines
Diff to previous 1.1.2.5 (colored) to branchpoint 1.1 (colored)

- Nuke the seperate scheduler locking scheme for UP kernels - it has been
  at the root of too many bugs.
- Add a LW_BOUND flag that indicates an LWP is bound to a specific CPU.

Revision 1.1.2.5 / (download) - annotate - [select for diffs], Sat Mar 24 00:43:05 2007 UTC (17 years ago) by rmind
Branch: yamt-idlelwp
Changes since 1.1.2.4: +3 -3 lines
Diff to previous 1.1.2.4 (colored) to branchpoint 1.1 (colored)

Checkpoint:
- Abstract for per-CPU locking of runqueues.
  As a workaround for SCHED_4BSD global runqueue, covered by sched_mutex,
  spc_mutex is a pointer for now. After making SCHED_4BSD runqueues
  per-CPU, it will became a storage mutex.
- suspendsched: Locking is not necessary for cpu_need_resched().
- Remove mutex_spin_exit() prototype in patch.c and LOCK_ASSERT() check
  in runqueue_nextlwp() in sched_4bsd.c to make them compile again.

Revision 1.1.2.4 / (download) - annotate - [select for diffs], Fri Mar 9 15:16:24 2007 UTC (17 years, 1 month ago) by rmind
Branch: yamt-idlelwp
Changes since 1.1.2.3: +4 -4 lines
Diff to previous 1.1.2.3 (colored) to branchpoint 1.1 (colored)

Checkpoint:

- Addition of scheduler-specific pointers in the struct proc, lwp and
  schedstate_percpu.
- Addition of sched_lwp_fork(), sched_lwp_exit() and sched_slept() hooks.
- mi_switch() now has only one argument.
- sched_nextlwp(void) becomes sched_switch(struct lwp *) and does an
  enqueueing of LWP.
- Addition of general kern.sched sysctl node.
- Remove twice called uvmexp.swtch++, other cleanups.

Discussed on tech-kern@

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Tue Feb 27 16:54:21 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.1.2.2: +4 -4 lines
Diff to previous 1.1.2.2 (colored) to branchpoint 1.1 (colored)

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

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Fri Feb 23 15:57:45 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.1.2.1: +3 -3 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored)

- introduce sys/cpu.h which has cpu_idle and cpu_need_resched.
- use it where appropriate.
- while i'm here, remove several unnecessary #include.

Revision 1.1.2.1 / (download) - annotate - [select for diffs], Sat Feb 17 10:30:56 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.1: +109 -0 lines
Diff to previous 1.1 (colored)

- separate context switching and thread scheduling.
- introduce idle lwp.
- change some related MD/MI interfaces and implement i386 version.

Revision 1.1, Sat Feb 17 10:30:56 2007 UTC (17 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp, vmlocking
FILE REMOVED

file kern_idle.c was initially added on branch yamt-idlelwp.

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




CVSweb <webmaster@jp.NetBSD.org>