The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.63 / (download) - annotate - [select for diffs], Thu Nov 2 10:31:55 2023 UTC (4 months, 3 weeks ago) by martin
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.62: +2 -39 lines
Diff to previous 1.62 (colored) to selected 1.31 (colored)

Back out the following revisions on behalf of core:

	sys/sys/lwp.h: revision 1.228
	sys/sys/pipe.h: revision 1.40
	sys/kern/uipc_socket.c: revision 1.306
	sys/kern/kern_sleepq.c: revision 1.84
	sys/rump/librump/rumpkern/locks_up.c: revision 1.13
	sys/kern/sys_pipe.c: revision 1.165
	usr.bin/fstat/fstat.c: revision 1.119
	sys/rump/librump/rumpkern/locks.c: revision 1.87
	sys/ddb/db_xxx.c: revision 1.78
	sys/ddb/db_command.c: revision 1.187
	sys/sys/condvar.h: revision 1.18
	sys/ddb/db_interface.h: revision 1.42
	sys/sys/socketvar.h: revision 1.166
	sys/kern/uipc_syscalls.c: revision 1.209
	sys/kern/kern_condvar.c: revision 1.60

  Add cv_fdrestart() [...]
  Use cv_fdrestart() to implement fo_restart.
  Simplify/streamline pipes a little bit [...]

This changes have caused regressions and need to be debugged.
The cv_fdrestart() addition needs more discussion.

Revision 1.62 / (download) - annotate - [select for diffs], Sun Oct 15 10:28:00 2023 UTC (5 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.61: +7 -6 lines
Diff to previous 1.61 (colored) to selected 1.31 (colored)

kern_condvar.c: Sort includes.  No functional change intended.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Oct 15 10:27:11 2023 UTC (5 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.60: +3 -2 lines
Diff to previous 1.60 (colored) to selected 1.31 (colored)

sys/lwp.h: Nix sys/syncobj.h dependency.

Remove it in ddb/db_syncobj.h too.

New sys/wchan.h defines wchan_t so that users need not pull in
sys/syncobj.h to get it.

Sprinkle #include <sys/syncobj.h> in .c files where it is now needed.

Revision 1.60 / (download) - annotate - [select for diffs], Fri Oct 13 18:48:56 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.59: +39 -2 lines
Diff to previous 1.59 (colored) to selected 1.31 (colored)

Add cv_fdrestart() (better name suggestions welcome):

Like cv_broadcast(), but make any LWPs that share the same file descriptor
table as the caller return ERESTART when resuming.  Used to dislodge LWPs
waiting for I/O that prevent a file descriptor from being closed, without
upsetting access to the file (not descriptor) made from another direction.

Revision 1.59 / (download) - annotate - [select for diffs], Thu Oct 12 23:51:05 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.58: +20 -8 lines
Diff to previous 1.58 (colored) to selected 1.31 (colored)

Comments.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Oct 8 13:23:05 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.57: +5 -19 lines
Diff to previous 1.57 (colored) to selected 1.31 (colored)

Ensure that an LWP that has taken a legitimate wakeup never produces an
error code from sleepq_block().  Then, it's possible to make cv_signal()
work as expected and only ever wake a singular LWP.

Revision 1.57 / (download) - annotate - [select for diffs], Wed Oct 4 20:29:18 2023 UTC (5 months, 3 weeks ago) by ad
Branch: MAIN
Changes since 1.56: +18 -15 lines
Diff to previous 1.56 (colored) to selected 1.31 (colored)

Eliminate l->l_biglocks.  Originally I think it had a use but these days a
local variable will do.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Sep 23 18:48:04 2023 UTC (6 months ago) by ad
Branch: MAIN
Changes since 1.55: +5 -4 lines
Diff to previous 1.55 (colored) to selected 1.31 (colored)

- Simplify how priority boost for blocking in kernel is handled.  Rather
  than setting it up at each site where we block, make it a property of
  syncobj_t.  Then, do not hang onto the priority boost until userret(),
  drop it as soon as the LWP is out of the run queue and onto a CPU.
  Holding onto it longer is of questionable benefit.

- This allows two members of lwp_t to be deleted, and mi_userret() to be
  simplified a lot (next step: trim it down to a single conditional).

- While here, constify syncobj_t and de-inline a bunch of small functions
  like lwp_lock() which turn out not to be small after all (I don't know
  why, but atomic_*_relaxed() seem to provoke a compiler shitfit above and
  beyond what volatile does).

Revision 1.55 / (download) - annotate - [select for diffs], Mon Jul 17 12:54:29 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.54: +3 -2 lines
Diff to previous 1.54 (colored) to selected 1.31 (colored)

kern: New struct syncobj::sobj_name member for diagnostics.

XXX potential kernel ABI change -- not sure any modules actually use
struct syncobj but it's hard to rule that out because sys/syncobj.h
leaks into sys/lwp.h

Revision 1.54 / (download) - annotate - [select for diffs], Wed Jun 29 22:27:01 2022 UTC (20 months, 4 weeks ago) by riastradh
Branch: 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, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.53: +6 -6 lines
Diff to previous 1.53 (colored) to selected 1.31 (colored)

sleepq(9): Pass syncobj through to sleepq_block.

Previously the usage pattern was:

sleepq_enter(sq, l, lock);              // locks l
...
sleepq_enqueue(sq, ..., sobj, ...);     // assumes l locked, sets l_syncobj
... (*)
sleepq_block(...);			// unlocks l

As long as l remains locked from sleepq_enter to sleepq_block,
l_syncobj is stable, and sleepq_block uses it via ktrcsw to determine
whether the sleep is on a mutex in order to avoid creating ktrace
context-switch records (which involves allocation which is forbidden
in softint context, while taking and even sleeping for a mutex is
allowed).

However, in turnstile_block, the logic at (*) also involves
turnstile_lendpri, which sometimes unlocks and relocks l.  At that
point, another thread can swoop in and sleepq_remove l, which sets
l_syncobj to sched_syncobj.  If that happens, ktrcsw does what is
forbidden -- tries to allocate a ktrace record for the context
switch.

As an optimization, sleepq_block or turnstile_block could stop early
if it detects that l_syncobj doesn't match -- we've already been
requested to wake up at this point so there's no need to mi_switch.
(And then it would be unnecessary to pass the syncobj through
sleepq_block, because l_syncobj would remain stable.)  But I'll leave
that to another change.

Reported-by: syzbot+8b9d7b066c32dbcdc63b@syzkaller.appspotmail.com

Revision 1.52.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:38:13 2020 UTC (3 years, 3 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.52: +3 -2 lines
Diff to previous 1.52 (colored) next main 1.53 (colored) to selected 1.31 (colored)

Sync w/ HEAD.

Revision 1.53 / (download) - annotate - [select for diffs], Sun Nov 1 20:55:15 2020 UTC (3 years, 4 months ago) by christos
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-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
Changes since 1.52: +3 -2 lines
Diff to previous 1.52 (colored) to selected 1.31 (colored)

PR/55664: Ruslan Nikolaev: Split out sleepq guts and turnstiles not used
in rump into a separate header file. Add a sleepq_destroy() empty hook.

Revision 1.52 / (download) - annotate - [select for diffs], Mon May 11 03:59:33 2020 UTC (3 years, 10 months ago) by riastradh
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.51: +2 -71 lines
Diff to previous 1.51 (colored) to selected 1.31 (colored)

Remove timedwaitclock.

This did not fix the bug I hoped it would fix in futex, and needs
more design thought.  Might redo it somewhat differently later.

Revision 1.51 / (download) - annotate - [select for diffs], Mon May 4 18:23:37 2020 UTC (3 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.50: +6 -14 lines
Diff to previous 1.50 (colored) to selected 1.31 (colored)

New timedwaitclock_setup.

C99 initializers would have been nice, but part of the struct is
explicit parameters and part of the struct is implicit state, and
-Wmissing-field-initializers can't discriminate between them
(although for some reason it doesn't always fire!).

Instead, just do:

        struct timedwaitclock T;

        timedwaitclock_setup(&T, timeout, clockid, flags, epsilon);
        while (...) {
                error = timedwaitclock_begin(&T, &timo);
                if (error)
                        ...
                error = waitwhatever(timo);
                timedwaitclock_end(&T);
                ...
        }

Revision 1.50 / (download) - annotate - [select for diffs], Sun May 3 17:36:33 2020 UTC (3 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.49: +6 -112 lines
Diff to previous 1.49 (colored) to selected 1.31 (colored)

Move timedwaitclock_begin() and timedwaitclock_end() to subr_time.c
so they can be used by other things.

Revision 1.49 / (download) - annotate - [select for diffs], Sun May 3 01:24:37 2020 UTC (3 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.48: +185 -2 lines
Diff to previous 1.48 (colored) to selected 1.31 (colored)

New cv_timedwaitclock, cv_timedwaitclock_sig.

Usage: given a struct timespec timeout copied from userland, along
with a clockid and TIMER_* flags,

        error = cv_timedwaitclock(cv, lock, timeout, clockid, flags,
            DEFAULT_TIMEOUT_EPSILON);
        if (error)
                /* fail */

If flags is relative (i.e., (flags & TIMER_ABSTIME) == 0), then this
deducts the time spent waiting from timeout, so you can run it in a
loop:

        struct timespec timeout;

        error = copyin(SCARG(uap, timeout), &timeout, sizeof timeout);
        if (error)
                return error;

        mutex_enter(lock);
        while (!ready()) {
                error = cv_timedwaitclock_sig(cv, lock, &timeout,
                    SCARG(uap, clockid), SCARG(uap, flags),
                    DEFAULT_TIMEOUT_EPSILON);
                if (error)
                        break;
        }
        mutex_exit(lock);

CAVEAT: If the system call is interrupted by a signal with SA_RESTART
so cv_timedwaitclock_sig fails with ERESTART, then the system call
will be restarted with the _original_ relative timeout, not counting
the time that was already spent waiting.  This is a problem but it's
not a problem I want to deal with at the moment.

Revision 1.48 / (download) - annotate - [select for diffs], Sun May 3 01:19:47 2020 UTC (3 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.47: +52 -8 lines
Diff to previous 1.47 (colored) to selected 1.31 (colored)

Fix edge cases in cv_timedwaitbt, cv_timedwaitbt_sig.

- If the timeout is exactly zero, fail immediately with EWOULDBLOCK.

- If the timeout is just so small it would be rounded to zero ticks,
  make sure to wait at least one tick.

- Make sure we never return with a negative timeout left.

Revision 1.41.4.3 / (download) - annotate - [select for diffs], Tue Apr 21 18:42:42 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.41.4.2: +12 -12 lines
Diff to previous 1.41.4.2 (colored) to branchpoint 1.41 (colored) next main 1.42 (colored) to selected 1.31 (colored)

Sync with HEAD

Revision 1.44.2.1 / (download) - annotate - [select for diffs], Mon Apr 20 11:29:10 2020 UTC (3 years, 11 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.44: +42 -118 lines
Diff to previous 1.44 (colored) next main 1.45 (colored) to selected 1.31 (colored)

Sync with HEAD

Revision 1.47 / (download) - annotate - [select for diffs], Sun Apr 19 20:35:29 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Changes since 1.46: +8 -8 lines
Diff to previous 1.46 (colored) to selected 1.31 (colored)

Set LW_SINTR earlier so it doesn't pose a problem for doing interruptable
waits with turnstiles (not currently done).

Revision 1.46 / (download) - annotate - [select for diffs], Mon Apr 13 15:54:45 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.45: +8 -8 lines
Diff to previous 1.45 (colored) to selected 1.31 (colored)

hardclock_ticks -> getticks()

Revision 1.41.4.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:05:03 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.41.4.1: +28 -104 lines
Diff to previous 1.41.4.1 (colored) to branchpoint 1.41 (colored) to selected 1.31 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.45 / (download) - annotate - [select for diffs], Fri Apr 10 17:16:21 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200411
Changes since 1.44: +30 -106 lines
Diff to previous 1.44 (colored) to selected 1.31 (colored)

- Make this needed sequence always work for condvars, by not touching the CV
  again after wakeup.  Previously it could panic because cv_signal() could
  be called by cv_wait_sig() + others:

	cv_broadcast(cv);
	cv_destroy(cv);

- In support of the above, if an LWP doing a timed wait is awoken by
  cv_broadcast() or cv_signal(), don't return an error if the timer
  fires after the fact, i.e. either succeed or fail, not both.

- Remove LOCKDEBUG code for CVs which never worked properly and is of
  questionable use.

Revision 1.41.4.1 / (download) - annotate - [select for diffs], Wed Apr 8 14:08:51 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.41: +37 -24 lines
Diff to previous 1.41 (colored) to selected 1.31 (colored)

Merge changes from current as of 20200406

Revision 1.44 / (download) - annotate - [select for diffs], Thu Mar 26 19:46:42 2020 UTC (4 years ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200406, bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.43: +14 -15 lines
Diff to previous 1.43 (colored) to selected 1.31 (colored)

Change sleepq_t from a TAILQ to a LIST and remove SOBJ_SLEEPQ_FIFO.  Only
select/poll used the FIFO method and that was for collisions which rarely
occur.  Shrinks sleep_t and condvar_t.

Revision 1.42.2.1 / (download) - annotate - [select for diffs], Sat Feb 29 20:21:02 2020 UTC (4 years ago) by ad
Branch: ad-namecache
Changes since 1.42: +5 -5 lines
Diff to previous 1.42 (colored) next main 1.43 (colored) to selected 1.31 (colored)

Sync with head.

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

- List all of the syncobjs in syncobj.h.
- Update a comment.

Revision 1.42 / (download) - annotate - [select for diffs], Wed Nov 20 21:49:00 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Changes since 1.41: +23 -9 lines
Diff to previous 1.41 (colored) to selected 1.31 (colored)

- Put back a microoptimisation that was accidentally removed.
- Comments.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Jan 30 07:52:22 2018 UTC (6 years, 1 month ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, 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, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi
Changes since 1.40: +7 -7 lines
Diff to previous 1.40 (colored) to selected 1.31 (colored)

Apply C99-style struct initialization to syncobj_t

Revision 1.35.10.1 / (download) - annotate - [select for diffs], Sat Jan 13 21:57:11 2018 UTC (6 years, 2 months ago) by snj
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.35: +5 -5 lines
Diff to previous 1.35 (colored) next main 1.36 (colored) to selected 1.31 (colored)

Pull up following revision(s) (requested by ozaki-r in ticket #495):
	lib/librumpuser/rumpfiber.c: revision 1.13
	lib/librumpuser/rumpuser_pth.c: revision 1.46
	lib/librumpuser/rumpuser_pth_dummy.c: revision 1.18
	sys/kern/kern_condvar.c: revision 1.40
	sys/kern/kern_lock.c: revision 1.161
	sys/kern/kern_mutex.c: revision 1.68
	sys/kern/kern_rwlock.c: revision 1.48
	sys/rump/include/rump/rumpuser.h: revision 1.115
	sys/rump/librump/rumpkern/locks.c: revision 1.76-1.79
Apply C99-style struct initialization to lockops_t
--
Tweak LOCKDEBUG macros (NFC)
--
Distinguish spin mutex and adaptive mutex on rump kernels for LOCKDEBUG
Formerly rump kernels treated the two types of mutexes as both adaptive for
LOCKDEBUG for some reasons.
Now we can detect violations of mutex restrictions on rump kernels such as
taking an adaptive mutex with holding a spin mutex as well as normal kernels.
--
rump: check if the mutex is surely owned by the caller in mutex_exit
Unlocking a not-owned mutex wasn't detected well (it could detect if the mutex
is not held by anyone but that's not enough). Let's check it (the check is the
same as normal kernel's mutex).
If LOCKDEBUG is enabled, give the check over LOCKDEBUG because it can provide
better debugging information.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Dec 25 09:13:40 2017 UTC (6 years, 3 months ago) by ozaki-r
Branch: MAIN
Changes since 1.39: +5 -5 lines
Diff to previous 1.39 (colored) to selected 1.31 (colored)

Apply C99-style struct initialization to lockops_t

Revision 1.30.12.3 / (download) - annotate - [select for diffs], Sun Dec 3 11:38:44 2017 UTC (6 years, 3 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.30.12.2: +197 -8 lines
Diff to previous 1.30.12.2 (colored) to branchpoint 1.30 (colored) next main 1.31 (colored)

update from HEAD

Revision 1.39 / (download) - annotate - [select for diffs], Sun Nov 12 20:04:51 2017 UTC (6 years, 4 months ago) by riastradh
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.38: +6 -3 lines
Diff to previous 1.38 (colored) to selected 1.31 (colored)

Apply same treatment to cv_timedwaitbt.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Nov 12 19:46:34 2017 UTC (6 years, 4 months ago) by riastradh
Branch: MAIN
Changes since 1.37: +13 -4 lines
Diff to previous 1.37 (colored) to selected 1.31 (colored)

Clarify interpretation of timeout/epsilon in cv_timedwaitbt.

Revision 1.34.6.2 / (download) - annotate - [select for diffs], Mon Aug 28 17:53:07 2017 UTC (6 years, 7 months ago) by skrll
Branch: nick-nhusb
Changes since 1.34.6.1: +186 -8 lines
Diff to previous 1.34.6.1 (colored) to branchpoint 1.34 (colored) next main 1.35 (colored) to selected 1.31 (colored)

Sync with HEAD

Revision 1.37 / (download) - annotate - [select for diffs], Mon Jul 3 02:12:47 2017 UTC (6 years, 8 months ago) by riastradh
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825
Changes since 1.36: +145 -2 lines
Diff to previous 1.36 (colored) to selected 1.31 (colored)

Add cv_timedwaitbt, cv_timedwaitbt_sig.

Takes struct bintime maximum delay, and decrements it in place so
that you can use it in a loop in case of spurious wakeup.

Discussed on tech-kern a couple years ago:

https://mail-index.netbsd.org/tech-kern/2015/03/23/msg018557.html

Added a parameter for expressing desired precision -- not currently
interpreted, but intended for a future tickless kernel with a choice
of high-resolution timers.

Revision 1.36 / (download) - annotate - [select for diffs], Thu Jun 8 01:09:52 2017 UTC (6 years, 9 months ago) by chs
Branch: MAIN
Changes since 1.35: +43 -8 lines
Diff to previous 1.35 (colored) to selected 1.31 (colored)

allow cv_signal() immediately followed by cv_destroy().
this sequence is used by ZFS in a couple places and by supporting it
natively we can undo our local ZFS changes that avoided it.
note that this is only legal when all of the waiters use cv_wait()
and not any of the other variations, and lockdebug will catch
any violations of this rule.

Revision 1.34.6.1 / (download) - annotate - [select for diffs], Tue Sep 22 12:06:07 2015 UTC (8 years, 6 months ago) by skrll
Branch: nick-nhusb
Changes since 1.34: +3 -4 lines
Diff to previous 1.34 (colored) to selected 1.31 (colored)

Sync with HEAD

Revision 1.35 / (download) - annotate - [select for diffs], Fri Aug 7 06:22:12 2015 UTC (8 years, 7 months ago) by uebayasi
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, 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, 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
Changes since 1.34: +3 -4 lines
Diff to previous 1.34 (colored) to selected 1.31 (colored)

o Don't include sys/sched.h.  Scheduler-related operation is done by
  sleepq(9) via SOBJ_SLEEPQ_SORTED.

o Include sys/lwp.h instead of sys/proc.h.

Revision 1.30.12.2 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:28 2014 UTC (9 years, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.30.12.1: +3 -1 lines
Diff to previous 1.30.12.1 (colored) to branchpoint 1.30 (colored) to selected 1.31 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.30.2.1 / (download) - annotate - [select for diffs], Thu May 22 11:41:03 2014 UTC (9 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.30: +9 -3 lines
Diff to previous 1.30 (colored) next main 1.31 (colored)

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.32.6.1 / (download) - annotate - [select for diffs], Sun May 18 17:46:07 2014 UTC (9 years, 10 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.32: +5 -3 lines
Diff to previous 1.32 (colored) next main 1.33 (colored) to selected 1.31 (colored)

sync with head

Revision 1.34 / (download) - annotate - [select for diffs], Fri Oct 25 15:51:36 2013 UTC (10 years, 5 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7
Branch point for: nick-nhusb
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored) to selected 1.31 (colored)

Mark a diagnostic-only variable

Revision 1.33 / (download) - annotate - [select for diffs], Sat Sep 14 13:18:31 2013 UTC (10 years, 6 months ago) by joerg
Branch: MAIN
Changes since 1.32: +4 -2 lines
Diff to previous 1.32 (colored) to selected 1.31 (colored)

nodebug is only used with LOCKDEBUG

Revision 1.30.12.1 / (download) - annotate - [select for diffs], Sun Jun 23 06:18:57 2013 UTC (10 years, 9 months ago) by tls
Branch: tls-maxphys
Changes since 1.30: +4 -0 lines
Diff to previous 1.30 (colored) to selected 1.31 (colored)

resync from head

Revision 1.32 / (download) - annotate - [select for diffs], Fri Mar 8 08:36:37 2013 UTC (11 years ago) by apb
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Changes since 1.31: +4 -2 lines
Diff to previous 1.31 (colored)

also comment on the meaning of timo=0 for cv_timedwait_sig.

Revision 1.31 / (download) - annotate - [selected], Fri Mar 8 08:35:09 2013 UTC (11 years ago) by apb
Branch: MAIN
Changes since 1.30: +4 -2 lines
Diff to previous 1.30 (colored)

Add comments saying that a cv_timedwait and sleepq_block interpret
timo = 0 as an infinite timeout.  This is already documented in the
cv_timedwait(9) man page, and there is no sleeq_block(9) man page.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Jul 27 14:35:33 2011 UTC (12 years, 8 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, 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-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, 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
Changes since 1.29: +2 -4 lines
Diff to previous 1.29 (colored) to selected 1.31 (colored)

These don't need uvm/uvm_extern.h.

Revision 1.28.6.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:09:27 2011 UTC (12 years, 9 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.28: +4 -4 lines
Diff to previous 1.28 (colored) next main 1.29 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.28.4.1 / (download) - annotate - [select for diffs], Thu Apr 21 01:42:07 2011 UTC (12 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.28: +4 -4 lines
Diff to previous 1.28 (colored) next main 1.29 (colored) to selected 1.31 (colored)

sync with head

Revision 1.29 / (download) - annotate - [select for diffs], Thu Apr 14 20:19:35 2011 UTC (12 years, 11 months ago) by jym
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, cherry-xenmp
Changes since 1.28: +4 -4 lines
Diff to previous 1.28 (colored) to selected 1.31 (colored)

Typo fix.

Revision 1.16.4.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:16 2010 UTC (14 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16.4.2: +7 -39 lines
Diff to previous 1.16.4.2 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored) to selected 1.31 (colored)

sync with head

Revision 1.28 / (download) - annotate - [select for diffs], Sat Dec 5 22:38:19 2009 UTC (14 years, 3 months ago) by pooka
Branch: 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, matt-premerge-20091211, matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: rmind-uvmplock, jruoho-x86intr
Changes since 1.27: +2 -17 lines
Diff to previous 1.27 (colored) to selected 1.31 (colored)

tsleep() on lbolt is now illegal.  Convert cv_wakeup(&lbolt) to
cv_broadcast(&lbolt) and get rid of the prior.

Revision 1.27 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:06 2009 UTC (14 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: jym-xensuspend-nbase
Changes since 1.26: +7 -24 lines
Diff to previous 1.26 (colored) to selected 1.31 (colored)

Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.

Revision 1.16.4.2 / (download) - annotate - [select for diffs], Mon May 4 08:13:46 2009 UTC (14 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16.4.1: +133 -86 lines
Diff to previous 1.16.4.1 (colored) to branchpoint 1.16 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.25.4.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:19:38 2009 UTC (15 years, 2 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.25: +25 -8 lines
Diff to previous 1.25 (colored) next main 1.26 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.14.14.5 / (download) - annotate - [select for diffs], Sat Jan 17 13:29:18 2009 UTC (15 years, 2 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.14.14.4: +23 -6 lines
Diff to previous 1.14.14.4 (colored) to branchpoint 1.14 (colored) next main 1.15 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.26 / (download) - annotate - [select for diffs], Fri Dec 19 07:57:28 2008 UTC (15 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, mjf-devfs2-base, jymxensuspend-base, jym-xensuspend-base, jym-xensuspend
Changes since 1.25: +25 -8 lines
Diff to previous 1.25 (colored) to selected 1.31 (colored)

Make condvars really opaque -- hide the wait message member from consumers
of the API.

Revision 1.14.14.4 / (download) - annotate - [select for diffs], Sun Jun 29 09:33:13 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.14.14.3: +11 -13 lines
Diff to previous 1.14.14.3 (colored) to branchpoint 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.17.2.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.17: +113 -83 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.31 (colored)

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

Revision 1.22.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.22: +13 -15 lines
Diff to previous 1.22 (colored) next main 1.23 (colored) to selected 1.31 (colored)

Sync with head.

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Tue Jun 17 09:15:02 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.16.2.2: +15 -17 lines
Diff to previous 1.16.2.2 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.25 / (download) - annotate - [select for diffs], Mon Jun 16 12:03:01 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, 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, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap
Changes since 1.24: +3 -13 lines
Diff to previous 1.24 (colored) to selected 1.31 (colored)

PR kern/38761: new (?) race in buffer cache code

Back out the workaround from cv_has_waiters(), which is not longer needed.
Removal was missed earlier.

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jun 16 10:03:47 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.23: +15 -14 lines
Diff to previous 1.23 (colored) to selected 1.31 (colored)

PR kern/38761: new (?) race in buffer cache code

- Back out the previous workaround now that the sleep queue code has
  been changed to never let the queue become empty if there are valid
  waiters.
- Use sleepq_hashlock() to improve clarity.
- Sprinkle some assertions.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Jun 15 09:56:18 2008 UTC (15 years, 9 months ago) by chris
Branch: MAIN
Changes since 1.22: +15 -8 lines
Diff to previous 1.22 (colored) to selected 1.31 (colored)

Fix for biowait hangs, and possibly other condvar hangs.  Also should fix
PR kern/38761.

The condvar must access the sleepq with the sleepq lock held, doing so
is causing inconsistent sleepq state to be read.

This is because some accesses to the sleepq don't come via the cv code,
but are call directly into sleepq_changepri and sleepq_lendpri, which take
the sleepq lock, and removes then re-inserts lwps into the sleepq.

Running a build.sh with -j8 now completes on my quad-core, also tested by
Simon@ on a 8-core server and matt@ on a quad-core.

I believe there is room to be more efficient with this, as we now take the
sleepq lock for all cv_broadcast and cv_signal calls. I'll look into this
and post a diff to tech-kern.

Revision 1.14.14.3 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:36 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.14.14.2: +2 -2 lines
Diff to previous 1.14.14.2 (colored) to branchpoint 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD.

Also fix build.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Jun 4 11:22:55 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
Branch point for: simonb-wapbl
Changes since 1.21: +4 -4 lines
Diff to previous 1.21 (colored) to selected 1.31 (colored)

Disable the wakeup assertion for the time being because the tty code
triggers it.

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:39 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.16.2.1: +109 -77 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored) to selected 1.31 (colored)

sync with head

Revision 1.14.14.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:07 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.14.14.1: +107 -82 lines
Diff to previous 1.14.14.1 (colored) to branchpoint 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.21 / (download) - annotate - [select for diffs], Sat May 31 16:25:23 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.20: +8 -8 lines
Diff to previous 1.20 (colored) to selected 1.31 (colored)

Fix wmesg for !LOCKDEBUG.

Revision 1.20 / (download) - annotate - [select for diffs], Sat May 31 13:36:25 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.19: +105 -77 lines
Diff to previous 1.19 (colored) to selected 1.31 (colored)

- Give each condition variable its own sleep queue head.  Helps the system
  to scale more gracefully when there are thousands of active threads.
  Proposed on tech-kern@.

- Use LOCKDEBUG to catch some errors in the use of condition variables:

  freeing an active CV
  re-initializing an active CV
  using multiple distinct mutexes during concurrent waits
  not holding the interlocking mutex when calling cv_broadcast/cv_signal
  waking waiters and destroying the CV before they run and exit it

Revision 1.19 / (download) - annotate - [select for diffs], Mon May 26 12:58:24 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored) to selected 1.31 (colored)

Broken assertion.

Revision 1.18 / (download) - annotate - [select for diffs], Mon May 26 12:08:39 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.17: +16 -12 lines
Diff to previous 1.17 (colored) to selected 1.31 (colored)

Take the mutex pointer and waiters count out of sleepq_t: the values can
be or are maintained elsewhere. Now a sleepq_t is just a TAILQ_HEAD.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:07 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.16: +2 -9 lines
Diff to previous 1.16 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.16.4.1 / (download) - annotate - [select for diffs], Fri May 16 02:25:24 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.16: +2 -9 lines
Diff to previous 1.16 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Apr 28 20:24:02 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.16: +2 -9 lines
Diff to previous 1.16 (colored) to selected 1.31 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.14.14.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:43:00 2008 UTC (15 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.14: +46 -14 lines
Diff to previous 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.3.4.7 / (download) - annotate - [select for diffs], Mon Mar 24 09:39:01 2008 UTC (16 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.6: +6 -6 lines
Diff to previous 1.3.4.6 (colored) next main 1.4 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.14.10.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.14: +46 -14 lines
Diff to previous 1.14 (colored) next main 1.15 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.12.4.2 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:58 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.12.4.1: +46 -14 lines
Diff to previous 1.12.4.1 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored) to selected 1.31 (colored)

sync with HEAD

Revision 1.16 / (download) - annotate - [select for diffs], Mon Mar 17 16:54:51 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp
Changes since 1.15: +6 -6 lines
Diff to previous 1.15 (colored) to selected 1.31 (colored)

Add a boolean parameter to syncobj_t::sobj_unsleep. If true we want the
existing behaviour: the unsleep method unlocks and wakes the swapper if
needs be. If false, the caller is doing a batch operation and will take
care of that later. This is kind of ugly, but it's difficult for the caller
to know which lock to release in some situations.

Revision 1.3.4.6 / (download) - annotate - [select for diffs], Mon Mar 17 09:15:32 2008 UTC (16 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.5: +42 -10 lines
Diff to previous 1.3.4.5 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.15 / (download) - annotate - [select for diffs], Wed Mar 5 17:05:21 2008 UTC (16 years ago) by ad
Branch: MAIN
Changes since 1.14: +42 -10 lines
Diff to previous 1.14 (colored) to selected 1.31 (colored)

- Add cv_is_valid(), for use in assertions. Performs basic sanity checks.
- Add more assertions.

Revision 1.13.4.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:48:35 2007 UTC (16 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.13: +6 -29 lines
Diff to previous 1.13 (colored) next main 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.3.4.5 / (download) - annotate - [select for diffs], Thu Nov 15 11:44:39 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.4: +6 -29 lines
Diff to previous 1.3.4.4 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.13.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 16:01:57 2007 UTC (16 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.13: +6 -29 lines
Diff to previous 1.13 (colored) next main 1.14 (colored) to selected 1.31 (colored)

Sync with HEAD

Revision 1.12.4.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:31:31 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.12: +6 -29 lines
Diff to previous 1.12 (colored) to selected 1.31 (colored)

sync with HEAD

Revision 1.12.2.2 / (download) - annotate - [select for diffs], Tue Nov 6 19:25:26 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.12.2.1: +6 -29 lines
Diff to previous 1.12.2.1 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Nov 6 00:42:41 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-base, jmcneill-pm-base, jmcneill-base, hpcarm-cleanup-base, cube-autoconf-base, cube-autoconf, bouyer-xeni386-nbase, bouyer-xeni386-merge1, bouyer-xeni386-base, bouyer-xeni386, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.13: +6 -29 lines
Diff to previous 1.13 (colored) to selected 1.31 (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.5.2.9 / (download) - annotate - [select for diffs], Thu Nov 1 21:58:16 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.8: +5 -28 lines
Diff to previous 1.5.2.8 (colored) next main 1.6 (colored) to selected 1.31 (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.3.4.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:35:20 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.3: +3 -3 lines
Diff to previous 1.3.4.3 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.12.2.1 / (download) - annotate - [select for diffs], Fri Oct 26 15:48:28 2007 UTC (16 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored) to selected 1.31 (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.5.2.8 / (download) - annotate - [select for diffs], Thu Oct 18 15:47:32 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.7: +3 -3 lines
Diff to previous 1.5.2.7 (colored) to selected 1.31 (colored)

Update for soft interrupt changes. See kern_softint.c 1.1.2.17 for details.

Revision 1.12.6.1 / (download) - annotate - [select for diffs], Sun Oct 14 11:48:38 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored) next main 1.13 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.13 / (download) - annotate - [select for diffs], Mon Oct 8 14:07:08 2007 UTC (16 years, 5 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.12: +3 -3 lines
Diff to previous 1.12 (colored) to selected 1.31 (colored)

Merge from vmlocking: relax an assertion if panicstr != NULL.

Revision 1.3.4.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:40:43 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.2: +77 -57 lines
Diff to previous 1.3.4.2 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.5.2.7 / (download) - annotate - [select for diffs], Mon Aug 20 21:27:28 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.6: +32 -9 lines
Diff to previous 1.5.2.6 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.9.2.1 / (download) - annotate - [select for diffs], Wed Aug 15 13:49:06 2007 UTC (16 years, 7 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.9: +32 -9 lines
Diff to previous 1.9 (colored) next main 1.10 (colored) to selected 1.31 (colored)

Sync with HEAD.

Revision 1.12.8.2 / (download) - annotate - [select for diffs], Thu Aug 2 22:01:41 2007 UTC (16 years, 8 months ago) by ad
Branch: matt-mips64
Changes since 1.12.8.1: +374 -0 lines
Diff to previous 1.12.8.1 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored) to selected 1.31 (colored)

cv_wakeup: the entire queue has to be searched, as we can't know how many
waiters there are.

Revision 1.12.8.1, Thu Aug 2 22:01:40 2007 UTC (16 years, 8 months ago) by ad
Branch: matt-mips64
Changes since 1.12: +0 -374 lines
FILE REMOVED

file kern_condvar.c was added on branch matt-mips64 on 2007-08-02 22:01:41 +0000

Revision 1.12 / (download) - annotate - [select for diffs], Thu Aug 2 22:01:40 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base2, yamt-x86pmap-base, nick-csl-alignment-base5, matt-mips64-base
Branch point for: yamt-x86pmap, matt-mips64, matt-armv6, jmcneill-pm
Changes since 1.11: +4 -8 lines
Diff to previous 1.11 (colored) to selected 1.31 (colored)

cv_wakeup: the entire queue has to be searched, as we can't know how many
waiters there are.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Aug 1 23:21:14 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.10: +23 -2 lines
Diff to previous 1.10 (colored) to selected 1.31 (colored)

Ressurect cv_wakeup() and use it on lbolt. Should fix PR kern/36714.
(background/foreground signal lossage in -current with various programs).

Revision 1.10 / (download) - annotate - [select for diffs], Wed Aug 1 20:30:38 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.9: +15 -9 lines
Diff to previous 1.9 (colored) to selected 1.31 (colored)

Improve assertions slightly. When awakening assert that the CV has not
been destroyed.

Revision 1.5.2.6 / (download) - annotate - [select for diffs], Sun Jul 15 15:52:53 2007 UTC (16 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.5: +5 -5 lines
Diff to previous 1.5.2.5 (colored) to selected 1.31 (colored)

Sync with head.

Revision 1.5.4.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:09:43 2007 UTC (16 years, 8 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.5: +53 -58 lines
Diff to previous 1.5 (colored) next main 1.6 (colored) to selected 1.31 (colored)

Sync with head.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Jul 9 21:10:51 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base, hpcarm-cleanup
Branch point for: nick-csl-alignment
Changes since 1.8: +3 -2 lines
Diff to previous 1.8 (colored) to selected 1.31 (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.5.2.5 / (download) - annotate - [select for diffs], Mon Jul 9 20:33:14 2007 UTC (16 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.4: +3 -3 lines
Diff to previous 1.5.2.4 (colored) to selected 1.31 (colored)

KASSERT((l->l_flag & LW_INTR) == 0)
 ->
KASSERT((l->l_flag & LW_INTR) == 0 || panicstr != NULL)

Revision 1.5.2.4 / (download) - annotate - [select for diffs], Sun Jun 17 21:31:20 2007 UTC (16 years, 9 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.3: +3 -2 lines
Diff to previous 1.5.2.3 (colored) to selected 1.31 (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.8 / (download) - annotate - [select for diffs], Thu May 17 14:51:38 2007 UTC (16 years, 10 months ago) by yamt
Branch: MAIN
Changes since 1.7: +12 -15 lines
Diff to previous 1.7 (colored) to selected 1.31 (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.3.2.3 / (download) - annotate - [select for diffs], Thu Apr 19 04:19:43 2007 UTC (16 years, 11 months ago) by ad
Branch: yamt-idlelwp
Changes since 1.3.2.2: +12 -15 lines
Diff to previous 1.3.2.2 (colored) next main 1.4 (colored) to selected 1.31 (colored)

Pull up a change from the vmlocking branch:

- Ensure that LWPs going to sleep are on the sleep queue before releasing
  any interlocks. This is so that calls to turnstile_wakeup will have the
  correct locks held when adjusting priority. Avoids another deadlock.
- Assume that LWPs blocked on a turnstile will never be swapped out.
- LWPs blocking on a turnstile must have kernel priority, as they
  are consuming kernel resources.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Sun Apr 15 16:03:48 2007 UTC (16 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.3.2.1: +42 -45 lines
Diff to previous 1.3.2.1 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.5.2.3 / (download) - annotate - [select for diffs], Tue Apr 10 18:34:04 2007 UTC (16 years, 11 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.2: +7 -10 lines
Diff to previous 1.5.2.2 (colored) to selected 1.31 (colored)

- Ensure that that LWPs going to sleep are on the sleep queue and so
  have their syncobj pointer updated, so that calls to turnstile_wakeup
  will have the correct locks held when adjusting the current LWP's
  priority. Avoids another deadlock.
- Assume that LWPs blocked on a turnstile will never be swapped out.
- LWPs blocking on a turnstile must have kernel priority, as they
  are consuming kernel resources.

Revision 1.5.2.2 / (download) - annotate - [select for diffs], Tue Apr 10 13:26:37 2007 UTC (16 years, 11 months ago) by ad
Branch: vmlocking
Changes since 1.5.2.1: +42 -45 lines
Diff to previous 1.5.2.1 (colored) to selected 1.31 (colored)

Sync with head.

Revision 1.5.6.1 / (download) - annotate - [select for diffs], Thu Mar 29 19:27:56 2007 UTC (17 years ago) by reinoud
Branch: reinoud-bufcleanup
Changes since 1.5: +42 -45 lines
Diff to previous 1.5 (colored) next main 1.6 (colored) to selected 1.31 (colored)

Pullup to -current

Revision 1.7 / (download) - annotate - [select for diffs], Thu Mar 29 17:39:34 2007 UTC (17 years ago) by ad
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic
Changes since 1.6: +4 -4 lines
Diff to previous 1.6 (colored) to selected 1.31 (colored)

Make cv_has_waiters() return type bool.

Revision 1.6 / (download) - annotate - [select for diffs], Thu Mar 29 17:34:39 2007 UTC (17 years ago) by ad
Branch: MAIN
Changes since 1.5: +40 -43 lines
Diff to previous 1.5 (colored) to selected 1.31 (colored)

- cv_wakeup: remove this. There are ~zero situations where it's useful.
- cv_wait and friends: after resuming execution, check to see if we have
  been restarted as a result of cv_signal. If we have, but cannot take
  the wakeup (because of eg a pending Unix signal or timeout) then try to
  ensure that another LWP sees it. This is necessary because there may
  be multiple waiters, and at least one should take the wakeup if possible.
  Prompted by a discussion with pooka@.
- typedef struct lwp lwp_t;
- int -> bool, struct lwp -> lwp_t in a few places.

Revision 1.5.2.1 / (download) - annotate - [select for diffs], Wed Mar 21 20:10:20 2007 UTC (17 years ago) by ad
Branch: vmlocking
Changes since 1.5: +7 -7 lines
Diff to previous 1.5 (colored) to selected 1.31 (colored)

GC the simplelock/spinlock debugging stuff.

Revision 1.3.2.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:54:19 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.3: +10 -8 lines
Diff to previous 1.3 (colored) to selected 1.31 (colored)

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

Revision 1.5 / (download) - annotate - [select for diffs], Tue Feb 27 15:07:28 2007 UTC (17 years, 1 month ago) by yamt
Branch: MAIN
Branch point for: vmlocking, reinoud-bufcleanup, mjf-ufs-trans
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored) to selected 1.31 (colored)

typedef pri_t and use it instead of int and u_char.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Feb 26 09:20:52 2007 UTC (17 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.3: +7 -5 lines
Diff to previous 1.3 (colored) to selected 1.31 (colored)

implement priority inheritance.

Revision 1.3.4.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:11:04 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3.4.1: +354 -0 lines
Diff to previous 1.3.4.1 (colored) to selected 1.31 (colored)

sync with head.

Revision 1.3.4.1, Sun Feb 11 15:41:53 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.3: +0 -354 lines
FILE REMOVED

file kern_condvar.c was added on branch yamt-lazymbuf on 2007-02-26 09:11:04 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Sun Feb 11 15:41:53 2007 UTC (17 years, 1 month ago) by yamt
Branch: MAIN
Branch point for: yamt-lazymbuf, yamt-idlelwp
Changes since 1.2: +6 -10 lines
Diff to previous 1.2 (colored) to selected 1.31 (colored)

unwrap short lines.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Feb 9 21:55:30 2007 UTC (17 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: post-newlock2-merge
Changes since 1.1: +358 -0 lines
Diff to previous 1.1 (colored) to selected 1.31 (colored)

Merge newlock2 to head.

Revision 1.1.2.7 / (download) - annotate - [select for diffs], Fri Feb 9 19:58:10 2007 UTC (17 years, 1 month ago) by ad
Branch: newlock2
Changes since 1.1.2.6: +29 -5 lines
Diff to previous 1.1.2.6 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.31 (colored)

- Change syncobj_t::sobj_changepri() to alter both the user priority and
  the effective priority of LWPs. How the effective priority is adjusted
  depends on the type of object.
- Add a couple of comments to sched_kpri() and remrunqueue().

Revision 1.1.2.6 / (download) - annotate - [select for diffs], Mon Feb 5 13:16:11 2007 UTC (17 years, 1 month ago) by ad
Branch: newlock2
Changes since 1.1.2.5: +7 -23 lines
Diff to previous 1.1.2.5 (colored) to branchpoint 1.1 (colored) to selected 1.31 (colored)

Redo previous to be less ugly.

Revision 1.1.2.5 / (download) - annotate - [select for diffs], Sat Feb 3 16:32:50 2007 UTC (17 years, 1 month ago) by ad
Branch: newlock2
Changes since 1.1.2.4: +57 -6 lines
Diff to previous 1.1.2.4 (colored) to branchpoint 1.1 (colored) to selected 1.31 (colored)

- Require that cv_signal/cv_broadcast be called with the interlock held.
- Provide 'async' versions that's don't need the interlock.

Revision 1.1.2.4 / (download) - annotate - [select for diffs], Fri Dec 29 20:27:43 2006 UTC (17 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.1.2.3: +35 -24 lines
Diff to previous 1.1.2.3 (colored) to branchpoint 1.1 (colored) to selected 1.31 (colored)

Checkpoint work in progress.

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Fri Nov 17 16:53:08 2006 UTC (17 years, 4 months ago) by ad
Branch: newlock2
Changes since 1.1.2.2: +6 -5 lines
Diff to previous 1.1.2.2 (colored) to branchpoint 1.1 (colored) to selected 1.31 (colored)

Fix an obvious sleep/wakeup bug introduced in previous.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Fri Nov 17 16:34:35 2006 UTC (17 years, 4 months ago) by ad
Branch: newlock2
Changes since 1.1.2.1: +83 -45 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored) to selected 1.31 (colored)

Checkpoint work in progress.

Revision 1.1.2.1 / (download) - annotate - [select for diffs], Fri Oct 20 19:40:17 2006 UTC (17 years, 5 months ago) by ad
Branch: newlock2
Changes since 1.1: +249 -0 lines
Diff to previous 1.1 (colored) to selected 1.31 (colored)

Add a condition variable implementation (untested).

Revision 1.1, Fri Oct 20 19:40:17 2006 UTC (17 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, newlock2-nbase, newlock2-base
Branch point for: newlock2
FILE REMOVED

file kern_condvar.c was initially added on branch newlock2.

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>