The NetBSD Project

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

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.72.2.1: download - view: text, markup, annotated - select for diffs
Wed Sep 11 10:09:19 2024 UTC (2 months, 3 weeks ago) by martin
Branches: netbsd-10
Diff to: previous 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72: +8 -2 lines
Pull up following revision(s) (requested by rin in ticket #821):

	sys/arch/x86/x86/intr.c: revision 1.169
	sys/kern/kern_softint.c: revision 1.76
	sys/kern/subr_workqueue.c: revision 1.48
	sys/kern/kern_idle.c: revision 1.36
	sys/kern/subr_xcall.c: revision 1.38

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.)

apply some more diagnostic checks for x86 interrupts
convert intr_biglock_wrapper() into a slight less complete
intr_wrapper(), and move the kernel lock/unlock points into
the new intr_biglock_wrapper().
add curlwp->l_nopreempt checking for interrupt handlers,
including the dtrace wrapper.

XXX: has to copy the i8254_clockintr hack.

tested for a few months by myself, and recently by rin@ on both
current and netbsd-10. thanks!

Revision 1.76: download - view: text, markup, annotated - select for diffs
Fri Mar 1 04:32:38 2024 UTC (9 months ago) by mrg
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +8 -2 lines
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.75: download - view: text, markup, annotated - select for diffs
Fri Aug 4 12:24:36 2023 UTC (16 months ago) by riastradh
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +2 -9 lines
Revert "softint(9): Sprinkle KASSERT(!cold)."

Temporary workaround for PR kern/57563 -- to be fixed properly after
analysis.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Fri Aug 4 07:40:30 2023 UTC (16 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +9 -2 lines
softint(9): Sprinkle KASSERT(!cold).

Softints are forbidden to run while cold.  So let's make sure nobody
even tries it -- if they do, they might be delayed indefinitely,
which is going to be much harder to diagnose.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Sun Apr 9 09:18:09 2023 UTC (19 months, 3 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +6 -4 lines
kern: KASSERT(A && B) -> KASSERT(A); KASSERT(B)

Revision 1.72: download - view: text, markup, annotated - select for diffs
Fri Oct 28 21:52:02 2022 UTC (2 years, 1 month ago) by riastradh
Branches: MAIN
CVS tags: 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
Branch point for: netbsd-10
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +47 -2 lines
softint(9): Sprinkle dtrace probes.

Revision 1.71: download - view: text, markup, annotated - select for diffs
Sat Sep 3 02:48:00 2022 UTC (2 years, 3 months ago) by thorpej
Branches: MAIN
CVS tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +3 -26 lines
Garbage-collect the remaining vestiges of netisr.

Revision 1.70: download - view: text, markup, annotated - select for diffs
Wed Mar 30 17:02:02 2022 UTC (2 years, 8 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +6 -2 lines
kern: Assert softint does not net acquire kernel locks.

This redoes previous change where I mistakenly used the CPU's biglock
count, which is not necessarily stable -- the softint lwp may sleep
on a mutex, and the lwp it interrupted may start up again and release
the kernel lock, so by the time the softint lwp wakes up again and
the softint function returns, the CPU may not be holding any kernel
locks.  But the softint lwp should never hold kernel locks except
when it's in a (usually, non-MPSAFE) softint function.

Same with callout.

Revision 1.69: download - view: text, markup, annotated - select for diffs
Wed Mar 30 14:54:29 2022 UTC (2 years, 8 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +2 -10 lines
Revert "kern: Sprinkle biglock-slippage assertions."

Got the diagnostic information I needed from this, and it's holding
up releng tests of everything else, so let's back this out until I
need more diagnostics or track down the original source of the
problem.

Revision 1.68: download - view: text, markup, annotated - select for diffs
Wed Mar 30 10:34:14 2022 UTC (2 years, 8 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +10 -2 lines
kern: Sprinkle biglock-slippage assertions.

We seem to have a poltergeist that occasionally messes with the
biglock depth, but it's very hard to reproduce and only manifests as
some other CPU spinning out on the kernel lock which is no good for
diagnostics.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sun Dec 5 04:56:40 2021 UTC (3 years ago) by msaitoh
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +3 -3 lines
s/futher/further/ in comment.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Sun May 17 14:11:30 2020 UTC (4 years, 6 months ago) by ad
Branches: 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, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +29 -50 lines
softint_disestablish(): use a high priority xcall to determine that the
handler is no longer running.

Revision 1.65: download - view: text, markup, annotated - select for diffs
Thu Apr 30 20:54:27 2020 UTC (4 years, 7 months ago) by skrll
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +6 -6 lines
Trailing whitespace

Revision 1.45.4.3: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:05:04 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.45.4.2: preferred, colored; branchpoint 1.45: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45.4.2: +1 -3 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.45.4.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:51 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.45.4.1: preferred, colored; branchpoint 1.45: preferred, colored
Changes since revision 1.45.4.1: +73 -125 lines
Merge changes from current as of 20200406

Revision 1.64: download - view: text, markup, annotated - select for diffs
Fri Mar 27 00:13:52 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +9 -8 lines
Comments

Revision 1.63: download - view: text, markup, annotated - select for diffs
Thu Mar 26 20:19:06 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +19 -79 lines
softint_overlay() (slow case) gains ~nothing but creates potential headaches.
In the interests of simplicity remove it and always use the kthreads.

Revision 1.62: download - view: text, markup, annotated - select for diffs
Sun Mar 8 15:05:18 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +2 -5 lines
Kill off kernel_lock_plug_leak(), and go back to dropping kernel_lock in
exit1(), since there seems little hope of finding the leaking code any
time soon.  Can still be caught with LOCKDEBUG.

Revision 1.56.2.3: download - view: text, markup, annotated - select for diffs
Sat Feb 29 20:21:03 2020 UTC (4 years, 9 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.56.2.2: preferred, colored; branchpoint 1.56: preferred, colored; next MAIN 1.57: preferred, colored
Changes since revision 1.56.2.2: +26 -5 lines
Sync with head.

Revision 1.61: download - view: text, markup, annotated - select for diffs
Mon Feb 17 21:44:42 2020 UTC (4 years, 9 months ago) by ad
Branches: MAIN
CVS tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +6 -2 lines
softint_dispatch(): Temporarily call kernel_lock_plug_leak() since there is
incontinent code somewhere.

Revision 1.60: download - view: text, markup, annotated - select for diffs
Sat Feb 15 18:12:15 2020 UTC (4 years, 9 months ago) by ad
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +5 -5 lines
- 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.59: download - view: text, markup, annotated - select for diffs
Sun Jan 26 18:52:55 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +20 -3 lines
softint_dispatch(): replace the KASSERT for LW_RUNNING with a big printf()
plus panic() that dumps lots of info.

Revision 1.56.2.2: download - view: text, markup, annotated - select for diffs
Sat Jan 25 22:38:51 2020 UTC (4 years, 10 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.56.2.1: preferred, colored; branchpoint 1.56: preferred, colored
Changes since revision 1.56.2.1: +9 -19 lines
Sync with head.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Sat Jan 25 15:12:47 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base2
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +9 -19 lines
softint_execute(): don't hang onto the kernel_lock hold longer than
needed.

Revision 1.56.2.1: download - view: text, markup, annotated - select for diffs
Fri Jan 17 21:47:35 2020 UTC (4 years, 10 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +11 -9 lines
Sync with head.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Wed Jan 8 17:38:42 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base1
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +11 -9 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.56: download - view: text, markup, annotated - select for diffs
Mon Dec 16 22:47:54 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +3 -7 lines
- Extend the per-CPU counters matt@ did to include all of the hot counters
  in UVM, excluding uvmexp.free, which needs special treatment and will be
  done with a separate commit.  Cuts system time for a build by 20-25% on
  a 48 CPU machine w/DIAGNOSTIC.

- Avoid 64-bit integer divide on every fault (for rnd_add_uint32).

Revision 1.47.2.1: download - view: text, markup, annotated - select for diffs
Thu Dec 12 20:43:08 2019 UTC (4 years, 11 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2
Diff to: previous 1.47: preferred, colored; next MAIN 1.48: preferred, colored
Changes since revision 1.47: +7 -5 lines
Pull up following revision(s) (requested by ad in ticket #546):

	sys/kern/kern_resource.c: revision 1.183
	sys/kern/kern_softint.c: revision 1.49

calcru: ignore running softints, unless softint_timing is on.
Fixes crazy times reported for proc0.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Fri Dec 6 21:36:10 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +3 -2 lines
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.54: download - view: text, markup, annotated - select for diffs
Fri Dec 6 18:15:57 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +4 -3 lines
softint_trigger (slow case): set RESCHED_IDLE too just to be consistent.
No functional change.

Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue Dec 3 05:07:48 2019 UTC (5 years ago) by riastradh
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -6 lines
Rip out pserialize(9) logic now that the RCU patent has expired.

pserialize_perform() is now basically just xc_barrier(XC_HIGHPRI).
No more tentacles throughout the scheduler.  Simplify the psz read
count for diagnostic assertions by putting it unconditionally into
cpu_info.

From rmind@, tidied up by me.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Sun Dec 1 15:34:46 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +3 -3 lines
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.51: download - view: text, markup, annotated - select for diffs
Mon Nov 25 17:24:59 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +5 -5 lines
port-sparc/54718 (sparc install hangs since recent scheduler changes)

Revision 1.50: download - view: text, markup, annotated - select for diffs
Sat Nov 23 19:42:52 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +10 -9 lines
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.49: download - view: text, markup, annotated - select for diffs
Thu Nov 21 17:50:49 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +7 -5 lines
calcru: ignore running softints, unless softint_timing is on.
Fixes crazy times reported for proc0.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Sun Oct 6 15:11:17 2019 UTC (5 years, 2 months ago) by uwe
Branches: MAIN
CVS tags: phil-wifi-20191119
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +3 -5 lines
xc_barrier - convenience function to xc_broadcast() a nop.

Make the intent more clear and also avoid a bunch of (xcfunc_t)nullop
casts that gcc 8 -Wcast-function-type is not happy about.

Revision 1.45.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:09:03 2019 UTC (5 years, 5 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +7 -2 lines
Sync with HEAD

Revision 1.47: download - view: text, markup, annotated - select for diffs
Fri May 17 03:34:26 2019 UTC (5 years, 6 months ago) by ozaki-r
Branches: MAIN
CVS tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-0-RC1
Branch point for: netbsd-9
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +4 -2 lines
Implement an aggressive psref leak detector

It is yet another psref leak detector that enables to tell where a leak occurs
while a simpler version that is already committed just tells an occurrence of a
leak.

Investigating of psref leaks is hard because once a leak occurs a percpu list of
psref that tracks references can be corrupted.  A reference to a tracking object
is memorized in the list via an intermediate object (struct psref) that is
normally allocated on a stack of a thread.  Thus, the intermediate object can be
overwritten on a leak resulting in corruption of the list.

The tracker makes a shadow entry to an intermediate object and stores some hints
into it (currently it's a caller address of psref_acquire).  We can detect a
leak by checking the entries on certain points where any references should be
released such as the return point of syscalls and the end of each softint
handler.

The feature is expensive and enabled only if the kernel is built with
PSREF_DEBUG.

Proposed on tech-kern

Revision 1.46: download - view: text, markup, annotated - select for diffs
Fri Apr 19 01:52:55 2019 UTC (5 years, 7 months ago) by ozaki-r
Branches: MAIN
CVS tags: isaki-audio2-base, isaki-audio2
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +5 -2 lines
Implement a simple psref leak detector

It detects leaks by counting up the number of held psref by an LWP and checking
its zeroness at the end of syscalls and softint handlers.  For the counter, a
unused field of struct lwp is reused.

The detector runs only if DIAGNOSTIC is turned on.

Revision 1.43.10.2: download - view: text, markup, annotated - select for diffs
Mon Jan 22 12:30:20 2018 UTC (6 years, 10 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Diff to: previous 1.43.10.1: preferred, colored; branchpoint 1.43: preferred, colored; next MAIN 1.44: preferred, colored
Changes since revision 1.43.10.1: +7 -4 lines
Pull up following revision(s) (requested by jdolecek in ticket #506):
	sys/kern/kern_softint.c: revision 1.45
	sys/rump/librump/rumpkern/rump.c: revision 1.331
	sys/kern/subr_pserialize.c: revision 1.10
	sys/kern/subr_psref.c: revision 1.10
Prevent panic or hangup in softint_disestablish(), pserialize_perform() or
psref_target_destroy() while mp_online == false.
 See http://mail-index.netbsd.org/tech-kern/2017/12/25/msg022829.html
Set mp_online = true. This change might fix PR#52886.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Thu Dec 28 03:39:48 2017 UTC (6 years, 11 months ago) by msaitoh
Branches: MAIN
CVS tags: phil-wifi-base, 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
Branch point for: phil-wifi
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +7 -4 lines
 Prevent panic or hangup in softint_disestablish(), pserialize_perform() or
psref_target_destroy() while mp_online == false.

 See http://mail-index.netbsd.org/tech-kern/2017/12/25/msg022829.html

Revision 1.38.12.3: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:38:44 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.38.12.2: preferred, colored; branchpoint 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.12.2: +1 -1 lines
update from HEAD

Revision 1.43.10.1: download - view: text, markup, annotated - select for diffs
Thu Nov 23 13:40:22 2017 UTC (7 years ago) by martin
Branches: netbsd-8
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +3 -3 lines
Pull up following revision(s) (requested by msaitoh in ticket #387):
	sys/kern/kern_softint.c: revision 1.44
 Increase the size of softint's data to prevent panic on big machine. Nowadays,
some device drivers and some pseudo interfaces allocate a lot of softints. The
resource size for softints are static and it panics when it execeed the limit.
It can be dynamically resized. Untill dynamically resizing is implemented,
increase softint_bytes from 8192 to 32768.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Wed Nov 22 02:20:21 2017 UTC (7 years ago) by msaitoh
Branches: MAIN
CVS tags: tls-maxphys-base-20171202
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +3 -3 lines
 Increase the size of softint's data to prevent panic on big machine. Nowadays,
some device drivers and some pseudo interfaces allocate a lot of softints. The
resource size for softints are static and it panics when it execeed the limit.
It can be dynamically resized. Untill dynamically resizing is implemented,
increase softint_bytes from 8192 to 32768.

Revision 1.38.8.2: download - view: text, markup, annotated - select for diffs
Thu Jul 14 06:56:03 2016 UTC (8 years, 4 months ago) by snj
Branches: netbsd-6
Diff to: previous 1.38.8.1: preferred, colored; branchpoint 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.8.1: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #1356):
	sys/kern/kern_softint.c: revision 1.42
fix the following softint parallel operation problem.
(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
    - the softhand_t is set SOFTINT_PENDING flag
    - the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
    - waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
    - the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
      so CPU#Y does not wait
    - unset the function of "handler A"
(4) CPU#X does softint_execute()
    - the function of "handler A" is already clear, so panic

Revision 1.38.8.1.2.1: download - view: text, markup, annotated - select for diffs
Thu Jul 14 06:44:50 2016 UTC (8 years, 4 months ago) by snj
Branches: netbsd-6-1
Diff to: previous 1.38.8.1: preferred, colored; next MAIN 1.38.8.2: preferred, colored
Changes since revision 1.38.8.1: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #1356):
	sys/kern/kern_softint.c: revision 1.42
fix the following softint parallel operation problem.
(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
    - the softhand_t is set SOFTINT_PENDING flag
    - the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
    - waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
    - the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
      so CPU#Y does not wait
    - unset the function of "handler A"
(4) CPU#X does softint_execute()
    - the function of "handler A" is already clear, so panic

Revision 1.38.14.2: download - view: text, markup, annotated - select for diffs
Thu Jul 14 06:43:35 2016 UTC (8 years, 4 months ago) by snj
Branches: netbsd-6-0
Diff to: previous 1.38.14.1: preferred, colored; branchpoint 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.14.1: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #1356):
	sys/kern/kern_softint.c: revision 1.42
fix the following softint parallel operation problem.
(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
    - the softhand_t is set SOFTINT_PENDING flag
    - the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
    - waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
    - the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
      so CPU#Y does not wait
    - unset the function of "handler A"
(4) CPU#X does softint_execute()
    - the function of "handler A" is already clear, so panic

Revision 1.41.4.2: download - view: text, markup, annotated - select for diffs
Sat Jul 9 20:25:20 2016 UTC (8 years, 4 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.41.4.1: preferred, colored; branchpoint 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41.4.1: +4 -4 lines
Sync with HEAD

Revision 1.43: download - view: text, markup, annotated - select for diffs
Mon Jul 4 04:20:14 2016 UTC (8 years, 5 months ago) by knakahara
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, 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, netbsd-8-base, 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.42: preferred, colored
Changes since revision 1.42: +4 -4 lines
revert kern_softint.c:r1.42 (which was incorrect fix)

gif(4) has violated softint(9) contract. That is fixed by previous 2 commits.
see:
    https://mail-index.netbsd.org/tech-kern/2016/01/12/msg019993.html

Revision 1.41.6.1: download - view: text, markup, annotated - select for diffs
Tue Jan 26 04:50:37 2016 UTC (8 years, 10 months ago) by riz
Branches: netbsd-7-0
CVS tags: netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE
Diff to: previous 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #1067):
	sys/kern/kern_softint.c: revision 1.42
fix the following softint parallel operation problem.
(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
- the softhand_t is set SOFTINT_PENDING flag
- the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
- waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
- the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
so CPU#Y does not wait
- unset the function of "handler A"
(4) CPU#X does softint_execute()
- the function of "handler A" is already clear, so panic

Revision 1.41.2.1: download - view: text, markup, annotated - select for diffs
Tue Jan 26 04:50:22 2016 UTC (8 years, 10 months ago) by riz
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
Diff to: previous 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #1067):
	sys/kern/kern_softint.c: revision 1.42
fix the following softint parallel operation problem.
(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
- the softhand_t is set SOFTINT_PENDING flag
- the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
- waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
- the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
so CPU#Y does not wait
- unset the function of "handler A"
(4) CPU#X does softint_execute()
- the function of "handler A" is already clear, so panic

Revision 1.41.4.1: download - view: text, markup, annotated - select for diffs
Sun Dec 27 12:10:05 2015 UTC (8 years, 11 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +4 -4 lines
Sync with HEAD (as of 26th Dec)

Revision 1.42: download - view: text, markup, annotated - select for diffs
Thu Dec 24 02:27:14 2015 UTC (8 years, 11 months ago) by knakahara
Branches: MAIN
CVS tags: nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +4 -4 lines
fix the following softint parallel operation problem.

(0) softint handler "handler A" is established
(1) CPU#X does softint_schedule() for "handler A"
    - the softhand_t is set SOFTINT_PENDING flag
    - the softhand_t is NOT set SOFTINT_ACTIVE flag yet
(2) CPU#X begins other H/W interrupt processing
(3) CPU#Y does softint_disestablish() for "handler A"
    - waits until softhand_t's SOFTINT_ACTIVE of all CPUs is clear
    - the softhand_t is set not SOFTINT_ACTIVE but SOFTINT_PENDING,
      so CPU#Y does not wait
    - unset the function of "handler A"
(4) CPU#X does softint_execute()
    - the function of "handler A" is already clear, so panic

Revision 1.38.12.2: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:04:29 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.38.12.1: preferred, colored; branchpoint 1.38: preferred, colored
Changes since revision 1.38.12.1: +59 -13 lines
Rebase to HEAD as of a few days ago.

Revision 1.40.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:55:58 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40: +55 -11 lines
Rebase.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Sun May 25 15:42:01 2014 UTC (10 years, 6 months ago) by rmind
Branches: MAIN
CVS tags: tls-maxphys-base, tls-earlyentropy-base, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-base, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1
Branch point for: nick-nhusb, netbsd-7-0, netbsd-7
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +55 -11 lines
softint: implement softint_schedule_cpu() to trigger software interrupts
on the remote CPUs and add SOFTINT_RCPU flag to indicate whether this is
going to be used; implemented using asynchronous IPIs.

Revision 1.38.2.2: download - view: text, markup, annotated - select for diffs
Thu May 22 11:41:03 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.38.2.1: preferred, colored; branchpoint 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.2.1: +6 -4 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.39.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 17:46:07 2014 UTC (10 years, 6 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.39: preferred, colored; next MAIN 1.40: preferred, colored
Changes since revision 1.39: +6 -4 lines
sync with head

Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Sep 7 03:34:59 2013 UTC (11 years, 3 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, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +6 -4 lines
Change two KASSERTs to KASSERTMSG

Revision 1.38.12.1: download - view: text, markup, annotated - select for diffs
Mon Feb 25 00:29:52 2013 UTC (11 years, 9 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +6 -2 lines
resync with head

Revision 1.38.8.1: download - view: text, markup, annotated - select for diffs
Fri Feb 8 19:32:07 2013 UTC (11 years, 9 months ago) by riz
Branches: netbsd-6
CVS tags: 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
Branch point for: netbsd-6-1
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +6 -2 lines
Pull up following revision(s) (requested by rmind in ticket #782):
	sys/rump/include/machine/intr.h: revision 1.19
	sys/kern/subr_pserialize.c: revision 1.6
	sys/kern/kern_softint.c: revision 1.39
- softint_dispatch: perform pserialize(9) switchpoint when softintr processing
  finishes (without blocking).  Problem reported by hannken@, thanks!
- pserialize_read_enter: use splsoftserial(), not splsoftclock().
- pserialize_perform: add xcall(9) barrier as interrupts may be coalesced.
Provide splsoftserial.
GRRR RUMP

Revision 1.38.14.1: download - view: text, markup, annotated - select for diffs
Fri Feb 8 19:31:19 2013 UTC (11 years, 9 months ago) by riz
Branches: netbsd-6-0
CVS tags: 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
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +6 -2 lines
Pull up following revision(s) (requested by rmind in ticket #782):
	sys/rump/include/machine/intr.h: revision 1.19
	sys/kern/subr_pserialize.c: revision 1.6
	sys/kern/kern_softint.c: revision 1.39
- softint_dispatch: perform pserialize(9) switchpoint when softintr processing
  finishes (without blocking).  Problem reported by hannken@, thanks!
- pserialize_read_enter: use splsoftserial(), not splsoftclock().
- pserialize_perform: add xcall(9) barrier as interrupts may be coalesced.
Provide splsoftserial.
GRRR RUMP

Revision 1.38.2.1: download - view: text, markup, annotated - select for diffs
Wed Jan 23 00:06:21 2013 UTC (11 years, 10 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +6 -2 lines
sync with head

Revision 1.39: download - view: text, markup, annotated - select for diffs
Mon Jan 7 23:21:31 2013 UTC (11 years, 10 months ago) by rmind
Branches: MAIN
CVS tags: yamt-pagecache-base8, 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.38: preferred, colored
Changes since revision 1.38: +6 -2 lines
- softint_dispatch: perform pserialize(9) switchpoint when softintr processing
  finishes (without blocking).  Problem reported by hannken@, thanks!
- pserialize_read_enter: use splsoftserial(), not splsoftclock().
- pserialize_perform: add xcall(9) barrier as interrupts may be coalesced.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Tue Sep 27 01:02:38 2011 UTC (13 years, 2 months ago) by jym
Branches: MAIN
CVS tags: yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-1-RELEASE, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, 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
Branch point for: yamt-pagecache, tls-maxphys, netbsd-6-0, netbsd-6
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +4 -4 lines
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html

Revision 1.37: download - view: text, markup, annotated - select for diffs
Sun Jul 31 13:41:30 2011 UTC (13 years, 4 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +4 -2 lines
Revert previous; s/kmem(9)/uvm_km(9)/ and comment why done so.  Per request
from rmind@.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Jul 30 05:24:16 2011 UTC (13 years, 4 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +4 -4 lines
Use kmem(9) to allocate per-cpu softint context.  No functional changes.

Revision 1.33.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:09:31 2011 UTC (13 years, 6 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.33: preferred, colored; next MAIN 1.34: preferred, colored
Changes since revision 1.33: +7 -3 lines
Sync with HEAD.

Revision 1.31.4.3: download - view: text, markup, annotated - select for diffs
Tue May 31 03:05:02 2011 UTC (13 years, 6 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.31.4.2: preferred, colored; branchpoint 1.31: preferred, colored; next MAIN 1.32: preferred, colored
Changes since revision 1.31.4.2: +0 -1 lines
sync with head

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sun Apr 24 18:46:22 2011 UTC (13 years, 7 months ago) by rmind
Branches: MAIN
CVS tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, cherry-xenmp
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +2 -3 lines
- Replace few malloc(9) uses with kmem(9).
- Rename buf_malloc() to buf_alloc(), fix comments.
- Remove some unnecessary inclusions.

Revision 1.31.4.2: download - view: text, markup, annotated - select for diffs
Thu Apr 21 01:42:08 2011 UTC (13 years, 7 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.31.4.1: preferred, colored; branchpoint 1.31: preferred, colored
Changes since revision 1.31.4.1: +5 -0 lines
sync with head

Revision 1.34: download - view: text, markup, annotated - select for diffs
Mon Apr 11 19:13:54 2011 UTC (13 years, 7 months ago) by rmind
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +7 -2 lines
softint_execute: add assert which could catch locking bugs in softint handlers.

Revision 1.31.4.1: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:55:16 2011 UTC (13 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +7 -5 lines
sync with head

Revision 1.33: download - view: text, markup, annotated - select for diffs
Mon Dec 20 00:25:46 2010 UTC (13 years, 11 months ago) by matt
Branches: MAIN
CVS tags: matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: jruoho-x86intr
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +3 -3 lines
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits.  Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sat Dec 11 22:32:13 2010 UTC (13 years, 11 months ago) by matt
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +6 -4 lines
Make sure all for loops use { }

Revision 1.23.4.2.4.1: download - view: text, markup, annotated - select for diffs
Wed Apr 21 00:28:17 2010 UTC (14 years, 7 months ago) by matt
Branches: matt-nb5-mips64
CVS tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Diff to: previous 1.23.4.2: preferred, colored; next MAIN 1.23.4.3: preferred, colored
Changes since revision 1.23.4.2: +8 -3 lines
sync to netbsd-5

Revision 1.16.2.6: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:04:17 2010 UTC (14 years, 8 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16.2.5: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.2.5: +16 -7 lines
sync with head

Revision 1.23.4.3: download - view: text, markup, annotated - select for diffs
Sat Jan 16 17:41:14 2010 UTC (14 years, 10 months ago) by bouyer
Branches: netbsd-5
CVS tags: 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, matt-nb5-pq3-base, matt-nb5-pq3
Diff to: previous 1.23.4.2: preferred, colored; branchpoint 1.23: preferred, colored; next MAIN 1.24: preferred, colored
Changes since revision 1.23.4.2: +8 -3 lines
Pull up following revision(s) (requested by rmind in ticket #1241):
	sys/kern/kern_softint.c: revision 1.30
softint_execute: release/re-acquire kernel-lock depending on SOFTINT_MPSAFE
flag.  Keeping it held for MP-safe cases break the lock order assumptions.
Per discussion with <martin>.

Revision 1.23.4.2.2.1: download - view: text, markup, annotated - select for diffs
Sat Jan 16 17:41:07 2010 UTC (14 years, 10 months ago) by bouyer
Branches: netbsd-5-0
CVS tags: netbsd-5-0-2-RELEASE
Diff to: previous 1.23.4.2: preferred, colored; next MAIN 1.23.4.3: preferred, colored
Changes since revision 1.23.4.2: +8 -3 lines
Pull up following revision(s) (requested by rmind in ticket #1241):
	sys/kern/kern_softint.c: revision 1.30
softint_execute: release/re-acquire kernel-lock depending on SOFTINT_MPSAFE
flag.  Keeping it held for MP-safe cases break the lock order assumptions.
Per discussion with <martin>.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sat Jan 9 19:02:17 2010 UTC (14 years, 10 months ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base9, 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
Branch point for: rmind-uvmplock
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +10 -6 lines
softint_overlay: disable kernel preemption before curlwp->l_cpu use.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Fri Jan 8 12:10:46 2010 UTC (14 years, 10 months ago) by rmind
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +8 -3 lines
softint_execute: release/re-acquire kernel-lock depending on SOFTINT_MPSAFE
flag.  Keeping it held for MP-safe cases break the lock order assumptions.
Per discussion with <martin>.

Revision 1.16.2.5: download - view: text, markup, annotated - select for diffs
Wed Aug 19 18:48:16 2009 UTC (15 years, 3 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16.2.4: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.4: +3 -2 lines
sync with head.

Revision 1.25.2.2: download - view: text, markup, annotated - select for diffs
Thu Jul 23 23:32:34 2009 UTC (15 years, 4 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.25.2.1: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.2.1: +4 -3 lines
Sync with HEAD.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sun Jul 19 10:11:55 2009 UTC (15 years, 4 months ago) by yamt
Branches: MAIN
CVS tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, matt-premerge-20091211, jymxensuspend-base, jym-xensuspend-nbase
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +3 -2 lines
set LP_RUNNING when starting lwp0 and idle lwps.
add assertions.

Revision 1.16.2.4: download - view: text, markup, annotated - select for diffs
Sat Jun 20 07:20:31 2009 UTC (15 years, 5 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16.2.3: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.3: +3 -3 lines
sync with head

Revision 1.28: download - view: text, markup, annotated - select for diffs
Mon May 18 21:31:27 2009 UTC (15 years, 6 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +1 -1 lines
Back out rev 1.27 now that MD implementations of spl*() have been fixed
to be a memory barrier.

Revision 1.16.2.3: download - view: text, markup, annotated - select for diffs
Sat May 16 10:41:48 2009 UTC (15 years, 6 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16.2.2: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.2: +3 -3 lines
sync with head

Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:21:56 2009 UTC (15 years, 6 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -4 lines
Sync with HEAD.

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

Revision 1.27: download - view: text, markup, annotated - select for diffs
Tue May 5 20:26:36 2009 UTC (15 years, 7 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-nfs-mp-base4, jym-xensuspend-base
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -3 lines
Declare sh_flags volatile.
Without it, on ports where splhigh() is inline, the compiler will optimise
the second SOFTINT_PENDING test in softint_schedule(). A dissasembly
of softint_schedule() with and without the volatile sh_flags confirm this
on sparc.
Because of this there is a race that could lead to the softhand_t
being enqueued twice on si_q, leading to a corrupted queue and
some handler being SOFTINT_PENDING but never called.

Should fix PR kern/38637

Revision 1.16.2.2: download - view: text, markup, annotated - select for diffs
Mon May 4 08:13:47 2009 UTC (15 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16.2.1: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.1: +53 -19 lines
sync with head.

Revision 1.23.2.2: download - view: text, markup, annotated - select for diffs
Tue Apr 28 07:36:59 2009 UTC (15 years, 7 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.23.2.1: preferred, colored; branchpoint 1.23: preferred, colored; next MAIN 1.24: preferred, colored
Changes since revision 1.23.2.1: +3 -3 lines
Sync with HEAD.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Mon Apr 6 21:22:47 2009 UTC (15 years, 8 months ago) by dyoung
Branches: MAIN
CVS tags: yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +3 -3 lines
Fix spelling.

Revision 1.23.4.2: download - view: text, markup, annotated - select for diffs
Mon Feb 2 03:40:11 2009 UTC (15 years, 10 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-1-RELEASE, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b
Branch point for: netbsd-5-0, matt-nb5-mips64
Diff to: previous 1.23.4.1: preferred, colored; branchpoint 1.23: preferred, colored
Changes since revision 1.23.4.1: +3 -3 lines
Pull up following revision(s) (requested by ad in ticket #349):
	sys/kern/kern_softint.c: revision 1.25
softint_disestablish: don't pass softint_lock to kpause, it's not held.

Revision 1.23.4.1: download - view: text, markup, annotated - select for diffs
Mon Feb 2 03:39:18 2009 UTC (15 years, 10 months ago) by snj
Branches: netbsd-5
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +47 -13 lines
Pull up following revision(s) (requested by ad in ticket #349):
	sys/kern/kern_softint.c: revision 1.24
	sys/sys/intr.h: revision 1.8
softint_disestablish: the soft interrupt could still be running on a CPU
somewhere in the system. If it is, wait for it to complete before tearing
it down. The caller commits to not trigger the interrupt again once
disestablish is set in motion.

Revision 1.23.2.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:19:38 2009 UTC (15 years, 10 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +47 -13 lines
Sync with HEAD.

Revision 1.11.6.3: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:29:19 2009 UTC (15 years, 10 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.11.6.2: preferred, colored; branchpoint 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11.6.2: +46 -12 lines
Sync with HEAD.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Thu Jan 1 12:26:46 2009 UTC (15 years, 11 months ago) by ad
Branches: MAIN
CVS tags: nick-hppapmap-base2, mjf-devfs2-base
Branch point for: jym-xensuspend
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -3 lines
softint_disestablish: don't pass softint_lock to kpause, it's not held.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Sat Dec 13 21:13:30 2008 UTC (15 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +47 -13 lines
softint_disestablish: the soft interrupt could still be running on a CPU
somewhere in the system. If it is, wait for it to complete before tearing
it down. The caller commits to not trigger the interrupt again once
disestablish is set in motion.

Revision 1.22.4.1: download - view: text, markup, annotated - select for diffs
Sun Oct 19 22:17:28 2008 UTC (16 years, 1 month ago) by haad
Branches: haad-dm
Diff to: previous 1.22: preferred, colored; next MAIN 1.23: preferred, colored
Changes since revision 1.22: +3 -3 lines
Sync with HEAD.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Tue Oct 14 17:15:20 2008 UTC (16 years, 1 month ago) by pooka
Branches: MAIN
CVS tags: netbsd-5-base, netbsd-5-0-RC1, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +3 -3 lines
Give maximum level of network softinterrupts a symbolic constant
(which happened to get bumbed from 32 to 33 (AF_MAX) now).

Revision 1.20.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:31:51 2008 UTC (16 years, 5 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20: +7 -7 lines
Sync w/ -current. 34 merge conflicts to follow.

Revision 1.15.2.2: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:05:39 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.15.2.1: preferred, colored; branchpoint 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15.2.1: +7 -7 lines
sync with head

Revision 1.11.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:24:09 2008 UTC (16 years, 6 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.11.6.1: preferred, colored; branchpoint 1.11: preferred, colored
Changes since revision 1.11.6.1: +21 -21 lines
Sync with HEAD.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat May 31 21:26:01 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-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, simonb-wapbl
Branch point for: haad-dm
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +6 -6 lines
PR kern/38812 race between lwp_exit_switchaway and exit1/coredump

Move the LWP RUNNING and TIMEINTR flags into the thread-private flag word.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Tue May 27 17:51:17 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +3 -3 lines
Move lwp_exit_switchaway() into kern_synch.c. Instead of always switching
to the idle loop, pick a new LWP from the run queue.

Revision 1.15.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:35:08 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +12 -13 lines
sync with head.

Revision 1.16.2.1: download - view: text, markup, annotated - select for diffs
Fri May 16 02:25:26 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +10 -11 lines
sync with head.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Mon Apr 28 23:00:22 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +4 -4 lines
Don't count many items as EVCNT_TYPE_INTR because they clutter up the
systat vmstat display.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Mon Apr 28 21:17:16 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +4 -6 lines
Make the preemption switch a __HAVE instead of an option.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:24:03 2008 UTC (16 years, 7 months ago) by martin
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -9 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.17: download - view: text, markup, annotated - select for diffs
Mon Apr 28 15:36:01 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +10 -2 lines
Add MI code to support in-kernel preemption. Preemption is deferred by
one of the following:

- Holding kernel_lock (indicating that the code is not MT safe).
- Bracketing critical sections with kpreempt_disable/kpreempt_enable.
- Holding the interrupt priority level above IPL_NONE.

Statistics on kernel preemption are reported via event counters, and
where preemption is deferred for some reason, it's also reported via
lockstat. The LWP priority at which preemption is triggered is tuneable
via sysctl.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Apr 24 11:38:36 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
CVS tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +4 -4 lines
Merge the socket locking patch:

- Socket layer becomes MP safe.
- Unix protocols become MP safe.
- Allows protocol processing interrupts to safely block on locks.
- Fixes a number of race conditions.

With much feedback from matt@ and plunky@.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sat Apr 12 18:22:03 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +3 -3 lines
Fix typo. Spotted by kardel@.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sat Apr 12 17:17:28 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +8 -7 lines
softint_overlay: bind the stolen LWP to the current CPU while processing,
to prevent it blocking and migrating to another CPU.

Revision 1.11.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:43:02 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +8 -5 lines
Sync with HEAD.

Revision 1.3.4.9: download - view: text, markup, annotated - select for diffs
Mon Mar 24 09:39:02 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.8: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.4.8: +5 -2 lines
sync with head.

Revision 1.11.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:16:13 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +10 -7 lines
sync with head.

Revision 1.4.2.4: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:04:59 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.4.2.3: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.2.3: +15 -13 lines
sync with HEAD

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Mar 20 19:12:23 2008 UTC (16 years, 8 months ago) by ad
Branches: MAIN
CVS tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +5 -2 lines
softint_execute: add more assertions.

Revision 1.3.4.8: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:15:33 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.7: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.7: +7 -7 lines
sync with head.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Mon Mar 10 22:20:14 2008 UTC (16 years, 8 months ago) by martin
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +7 -7 lines
Use cpu index instead of the machine dependend, not very expressive
cpuid when naming user-visible kernel entities.

Revision 1.3.6.4: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:06:46 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.3.6.3: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.6.3: +7 -8 lines
Sync with HEAD.

Revision 1.3.4.7: download - view: text, markup, annotated - select for diffs
Mon Feb 11 14:59:58 2008 UTC (16 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.6: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.6: +4 -4 lines
sync with head.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Feb 6 15:34:36 2008 UTC (16 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +4 -4 lines
softint_dispatch: fix softint_timing.

Revision 1.3.4.6: download - view: text, markup, annotated - select for diffs
Mon Feb 4 09:24:15 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.5: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.5: +5 -6 lines
sync with head.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Jan 29 18:06:14 2008 UTC (16 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +5 -6 lines
Remove reference to lockmgr().

Revision 1.3.4.5: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:46:12 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.4: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.4: +15 -7 lines
sync with head

Revision 1.4.2.3: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:56:09 2008 UTC (16 years, 11 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.4.2.2: preferred, colored; branchpoint 1.4: preferred, colored
Changes since revision 1.4.2.2: +664 -38 lines
sync with HEAD

Revision 1.6.6.2: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:55:58 2008 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.6.6.1: preferred, colored; branchpoint 1.6: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6.6.1: +3 -3 lines
Sync with HEAD

Revision 1.3.6.3: download - view: text, markup, annotated - select for diffs
Thu Dec 27 00:46:01 2007 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.3.6.2: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.6.2: +15 -7 lines
Sync with HEAD.

Revision 1.6.2.1: download - view: text, markup, annotated - select for diffs
Wed Dec 26 19:57:09 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.6: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6: +15 -7 lines
Sync with head.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Dec 22 01:14:54 2007 UTC (16 years, 11 months ago) by yamt
Branches: MAIN
CVS tags: vmlocking2-base3, matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +5 -5 lines
use binuptime for l_stime/l_rtime.

Revision 1.6.6.1: download - view: text, markup, annotated - select for diffs
Thu Dec 13 21:56:54 2007 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +12 -4 lines
Sync with HEAD

Revision 1.6.4.2: download - view: text, markup, annotated - select for diffs
Thu Dec 13 05:06:00 2007 UTC (16 years, 11 months ago) by yamt
Branches: yamt-kmem
Diff to: previous 1.6.4.1: preferred, colored; branchpoint 1.6: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6.4.1: +3 -3 lines
sync with head.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue Dec 11 19:07:28 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base3, cube-autoconf-base, cube-autoconf
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +3 -3 lines
Change the ncpu test to work when a pool_cache or softint is initialized
between mi_cpu_attach() and attachment of the boot CPU. Suggested by mrg@.

Revision 1.6.4.1: download - view: text, markup, annotated - select for diffs
Tue Dec 11 15:44:12 2007 UTC (16 years, 11 months ago) by yamt
Branches: yamt-kmem
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +12 -4 lines
sync with head.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Dec 10 20:43:43 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base2
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +12 -4 lines
softint_establish: hack around CPU_INFO_FOREACH() not working before
configure() on some architectures.

Revision 1.1.6.3: download - view: text, markup, annotated - select for diffs
Sun Dec 9 19:38:20 2007 UTC (17 years ago) by jmcneill
Branches: jmcneill-pm
Diff to: previous 1.1.6.2: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.6.2: +656 -38 lines
Sync with HEAD.

Revision 1.3.6.2: download - view: text, markup, annotated - select for diffs
Sat Dec 8 18:20:32 2007 UTC (17 years ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.3.6.1: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.6.1: +656 -38 lines
Sync with HEAD.

Revision 1.3.4.4: download - view: text, markup, annotated - select for diffs
Fri Dec 7 17:32:49 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.3: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.3: +656 -38 lines
sync with head

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Dec 3 17:15:00 2007 UTC (17 years ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base
Branch point for: yamt-kmem, vmlocking2, bouyer-xeni386
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +8 -18 lines
For the slow path soft interrupts, arrange to have the priority of a
borrowed user LWP raised into the 'kernel RT' range if the LWP sleeps
(which is unlikely).

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Dec 3 15:34:33 2007 UTC (17 years ago) by ad
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +658 -30 lines
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.

Revision 1.3.6.1: download - view: text, markup, annotated - select for diffs
Mon Nov 19 00:48:42 2007 UTC (17 years ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +43 -2 lines
Sync with HEAD.

Revision 1.3.4.3: download - view: text, markup, annotated - select for diffs
Thu Nov 15 11:44:44 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.2: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.2: +43 -2 lines
sync with head.

Revision 1.3.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 13 16:02:11 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3: +43 -2 lines
Sync with HEAD

Revision 1.4.2.2: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:31:58 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.4.2.1: preferred, colored; branchpoint 1.4: preferred, colored
Changes since revision 1.4.2.1: +175 -0 lines
sync with HEAD

Revision 1.1.6.2: download - view: text, markup, annotated - select for diffs
Tue Nov 6 19:25:31 2007 UTC (17 years, 1 month ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.1.6.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.6.1: +43 -2 lines
Sync with HEAD.

Revision 1.4.2.1
Tue Nov 6 00:42:42 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
FILE REMOVED
Changes since revision 1.4: +0 -175 lines
file kern_softint.c was added on branch matt-armv6 on 2007-11-06 23:31:58 +0000

Revision 1.4: download - view: text, markup, annotated - select for diffs
Tue Nov 6 00:42:42 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
CVS tags: jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: matt-armv6
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +43 -2 lines
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.2.21: download - view: text, markup, annotated - select for diffs
Mon Nov 5 15:01:03 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.20: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.20: +6 -6 lines
Eliminate ref to safepri.

Revision 1.1.2.20: download - view: text, markup, annotated - select for diffs
Thu Nov 1 21:58:20 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.19: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.19: +3 -10 lines
- 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.1.2.19: download - view: text, markup, annotated - select for diffs
Tue Oct 30 15:32:52 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.18: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.18: +2 -3 lines
cpu_netisrs is no more.

Revision 1.3.4.2: download - view: text, markup, annotated - select for diffs
Sat Oct 27 11:35:28 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.3.4.1: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.4.1: +134 -0 lines
sync with head.

Revision 1.1.6.1: download - view: text, markup, annotated - select for diffs
Fri Oct 26 15:48:35 2007 UTC (17 years, 1 month ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +134 -0 lines
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.1.2.18: download - view: text, markup, annotated - select for diffs
Thu Oct 18 15:47:00 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.17: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.17: +163 -79 lines
Soft interrupt changes. This speeds up the slow mechanism quite a bit and
removes the requirement that IPL_SCHED == IPL_HIGH. On a DECstation 3100
using the slow mechanism, FTP transfers are about 7% slower than HEAD on
the few simple tests that I have done.

- Instead of using the run queues to schedule soft interrupts, poll for soft
  interrupt activity in mi_switch(). If there is a soft interrupt to run, we
  pick a new soft interrupt LWP to run in preference to checking the run
  queues.

- If a soft interrupt occurs while the CPU is running in userspace, hijack
  the user LWP in userret() to run the soft interrupt, thus avoiding context
  switches. This is OK to do, since in userret() the LWP can hold no locks.
  Soft interrupts will very rarely block in this configuration, and any
  blocking activity will be short term, so the user process will ~never be
  delayed by much. The downside to this approach is that it prevents the
  architecture from doing anything useful with real-time LWPs or kernel
  preemption, but that is not a problem is the fast path is implemented.

- Steal an idea from powerpc, and use DONETISR to set up multiple soft
  interrupt handlers for the legacy netisrs. Now schednetisr() just does
  softint_schedule() on the relevant handle.

Revision 1.1.8.1: download - view: text, markup, annotated - select for diffs
Sun Oct 14 11:48:43 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1: +134 -0 lines
sync with head.

Revision 1.1.2.17: download - view: text, markup, annotated - select for diffs
Tue Oct 9 15:22:20 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.16: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.16: +2 -136 lines
Sync with head.

Revision 1.1.2.16: download - view: text, markup, annotated - select for diffs
Tue Oct 9 13:44:28 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.15: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.15: +136 -2 lines
Sync with head.

Revision 1.3.4.1
Mon Oct 8 20:06:19 2007 UTC (17 years, 2 months ago) by yamt
Branches: yamt-lazymbuf
FILE REMOVED
Changes since revision 1.3: +0 -134 lines
file kern_softint.c was added on branch yamt-lazymbuf on 2007-10-27 11:35:28 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Mon Oct 8 20:06:19 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base
Branch point for: yamt-lazymbuf, mjf-devfs, bouyer-xenamd64
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +4 -2 lines
Merge run time accounting changes from the vmlocking branch. These make
the LWP "start time" per-thread instead of per-CPU.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Mon Oct 8 15:51:03 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +132 -0 lines
Add stubs that provide new soft interrupt API from the vmlocking branch.
For now these just pass through to the current softintr code.

(The naming is different to allow softint/softintr to co-exist for a while.
I'm hoping that should make it easier to transition.)

Revision 1.1.2.15: download - view: text, markup, annotated - select for diffs
Mon Sep 24 13:05:19 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.14: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.14: +6 -8 lines
Replace references to top/bottom half to reduce confusion. Suggested by
yamt@.

Revision 1.1.2.14: download - view: text, markup, annotated - select for diffs
Sat Sep 1 15:23:58 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.1.2.13: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.13: +22 -5 lines
make "softint block" evcnt per softint_t.  ok'ed by Andrew Doran.

Revision 1.1.2.13: download - view: text, markup, annotated - select for diffs
Tue Aug 28 12:29:01 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.1.2.12: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.12: +3 -2 lines
softint_dispatch: add a missing pmap_deactivate.  ok'ed by Andrew Doran.

Revision 1.1.2.12: download - view: text, markup, annotated - select for diffs
Tue Aug 21 13:59:43 2007 UTC (17 years, 3 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.11: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.11: +3 -3 lines
A few minor corrections around calls to cpu_need_resched().

Revision 1.1.2.11: download - view: text, markup, annotated - select for diffs
Sun Aug 19 23:28:45 2007 UTC (17 years, 3 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.10: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.10: +11 -6 lines
softint_execute: acquire kernel_lock only once.

Revision 1.1.2.10: download - view: text, markup, annotated - select for diffs
Mon Aug 13 10:01:01 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.1.2.9: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.9: +4 -4 lines
softint_execute: s/Since since/Since/ in a comment.

Revision 1.1.2.9: download - view: text, markup, annotated - select for diffs
Wed Jul 18 10:28:36 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.8: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.8: +8 -22 lines
Don't bother yielding if a higher priority LWP is interrupted, just
leave a comment about it.

Revision 1.1.2.8: download - view: text, markup, annotated - select for diffs
Wed Jul 18 10:13:59 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.7: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.7: +103 -73 lines
- No need for a TAILQ, use a SIMPLEQ instead.
- Update blurb.

Revision 1.1.2.7: download - view: text, markup, annotated - select for diffs
Sun Jul 15 22:20:28 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.6: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.6: +3 -4 lines
Get pmax working.

Revision 1.1.2.6: download - view: text, markup, annotated - select for diffs
Sat Jul 14 22:09:44 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.5: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.5: +26 -26 lines
Make it possible to track time spent by soft interrupts as is done for
normal LWPs, and provide a sysctl to switch it on/off. Not enabled by
default because microtime() is not free. XXX Not happy with this but
I want it get it out of my local tree for the time being.

Revision 1.1.2.5: download - view: text, markup, annotated - select for diffs
Sat Jul 7 12:18:16 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.4: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.4: +8 -9 lines
Fix a comment.

Revision 1.1.2.4: download - view: text, markup, annotated - select for diffs
Sat Jul 7 12:12:40 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.3: +3 -6 lines
Minor tweak to previous.

Revision 1.1.2.3: download - view: text, markup, annotated - select for diffs
Sat Jul 7 11:56:11 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.2: +178 -121 lines
- Remove the interrupt priority range and use 'kernel RT' instead,
  since only soft interrupts are threaded.
- Rename l->l_pinned to l->l_switchto. It might be useful for (re-)
  implementing SA or doors.
- Simplify soft interrupt dispatch so MD code is doing as little as
  possible that is new.

Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Sun Jul 1 21:31:32 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +152 -8 lines
- softint_execute: if a thread with higher priority has been interrupted,
  then yield. Need to find a way to optimise this as it currently means
  walking the list of pinned LWPs.
- Add blurb (to be edited/completed).
- Add a counter to track how often soft interrupts sleep.
- Minor cosmetic changes.

Revision 1.1.2.1: download - view: text, markup, annotated - select for diffs
Sun Jun 17 21:31:27 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +493 -0 lines
- 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
Sun Jun 17 21:31:27 2007 UTC (17 years, 5 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base2, yamt-x86pmap-base, mjf-ufs-trans-base, hpcarm-cleanup
Branch point for: yamt-x86pmap, vmlocking, jmcneill-pm
FILE REMOVED
file kern_softint.c was initially added on branch vmlocking.

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>