Up to [cvs.NetBSD.org] / src / sys / sys
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.231 / (download) - annotate - [select for diffs], Thu Nov 2 10:31:55 2023 UTC (4 months, 2 weeks ago) by martin
Branch: MAIN
CVS Tags: triaxx-drm,
thorpej-ifq-base,
thorpej-ifq,
thorpej-altq-separation-base,
thorpej-altq-separation,
HEAD
Changes since 1.230: +1 -2
lines
Diff to previous 1.230 (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.230 / (download) - annotate - [select for diffs], Sun Oct 15 10:29:44 2023 UTC (5 months ago) by riastradh
Branch: MAIN
Changes since 1.229: +7 -6
lines
Diff to previous 1.229 (colored)
sys/lwp.h: Sort includes. No functional change intended.
Revision 1.229 / (download) - annotate - [select for diffs], Sun Oct 15 10:27:11 2023 UTC (5 months ago) by riastradh
Branch: MAIN
Changes since 1.228: +2 -2
lines
Diff to previous 1.228 (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.228 / (download) - annotate - [select for diffs], Fri Oct 13 18:48:56 2023 UTC (5 months ago) by ad
Branch: MAIN
Changes since 1.227: +2 -1
lines
Diff to previous 1.227 (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.227 / (download) - annotate - [select for diffs], Thu Oct 5 19:41:07 2023 UTC (5 months, 1 week ago) by ad
Branch: MAIN
Changes since 1.226: +4 -12
lines
Diff to previous 1.226 (colored)
Arrange to update cached LWP credentials in userret() rather than during syscall/trap entry, eliminating a test+branch on every syscall/trap. This wasn't possible in the 3.99.x timeframe when l->l_cred came about because there wasn't a reliable/timely way to force an ONPROC LWP running on a remote CPU into the kernel (which is just about the only new thing in this scheme).
Revision 1.226 / (download) - annotate - [select for diffs], Wed Oct 4 20:29:18 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.225: +1 -2
lines
Diff to previous 1.225 (colored)
Eliminate l->l_biglocks. Originally I think it had a use but these days a local variable will do.
Revision 1.225 / (download) - annotate - [select for diffs], Wed Oct 4 20:28:06 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.224: +2 -4
lines
Diff to previous 1.224 (colored)
Eliminate l->l_ncsw and l->l_nivcsw. From memory think they were added before we had per-LWP struct rusage; the same is now tracked there.
Revision 1.224 / (download) - annotate - [select for diffs], Mon Sep 25 18:30:44 2023 UTC (5 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.223: +2 -2
lines
Diff to previous 1.223 (colored)
sys/lwp.h: Oops -- l_syncobj needs const now.
Revision 1.223 / (download) - annotate - [select for diffs], Mon Sep 25 17:09:27 2023 UTC (5 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.222: +2 -3
lines
Diff to previous 1.222 (colored)
sys/lwp.h: Revert unnecessary style- and build-breaking change. Broke the clang builds because of duplicate syncobj_t definitions. Just use `struct syncobj'; the `syncobj_t' alias causes more trouble than it's worth -- KNF now advises against it and I see no compelling reason to make an exception here.
Revision 1.222 / (download) - annotate - [select for diffs], Sat Sep 23 20:23:07 2023 UTC (5 months, 3 weeks ago) by ad
Branch: MAIN
Changes since 1.221: +2 -1
lines
Diff to previous 1.221 (colored)
Sigh.. Adjust previous to work as intended. The boosted LWP priority didn't persist as far as the run queue because l_syncobj gets reset earlier than I recalled.
Revision 1.221 / (download) - annotate - [select for diffs], Sat Sep 23 18:48:05 2023 UTC (5 months, 3 weeks ago) by ad
Branch: MAIN
Changes since 1.220: +9 -66
lines
Diff to previous 1.220 (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.220 / (download) - annotate - [select for diffs], Sun Sep 10 14:31:24 2023 UTC (6 months, 1 week ago) by ad
Branch: MAIN
Changes since 1.219: +2 -4
lines
Diff to previous 1.219 (colored)
KPREEMPT_ENABLE(): optimise away one of the conditionals; the same test is repeated in kpreempt() which is rarely called.
Revision 1.219 / (download) - annotate - [select for diffs], Mon Aug 7 10:31:42 2023 UTC (7 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.218: +5 -3
lines
Diff to previous 1.218 (colored)
sys/lwp.h: Slightly more paranoia re curlwp in PR port-evbarm/57564.
Revision 1.218 / (download) - annotate - [select for diffs], Mon Aug 7 09:41:56 2023 UTC (7 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.217: +3 -3
lines
Diff to previous 1.217 (colored)
sys/lwp.h: KASSERT -> KASSERTMSG Might help diagnose PR port-evbarm/57564.
Revision 1.217 / (download) - annotate - [select for diffs], Sat Jul 23 19:15:29 2022 UTC (19 months, 3 weeks ago) by mrg
Branch: MAIN
CVS Tags: netbsd-10-base,
netbsd-10-0-RC6,
netbsd-10-0-RC5,
netbsd-10-0-RC4,
netbsd-10-0-RC3,
netbsd-10-0-RC2,
netbsd-10-0-RC1,
netbsd-10,
bouyer-sunxi-drm-base,
bouyer-sunxi-drm
Changes since 1.216: +2 -1
lines
Diff to previous 1.216 (colored)
make MAXLWP a real option that triggers rebuilds properly.
Revision 1.216 / (download) - annotate - [select for diffs], Sat May 7 19:44:40 2022 UTC (22 months, 1 week ago) by mrg
Branch: MAIN
Changes since 1.215: +4 -4
lines
Diff to previous 1.215 (colored)
bump maxthreads default. bump the default MAXLWP to 4096 from 2048, and adjust the default limits seen to be 2048 cur / 4096 max. remove the linkage to maxuprc entirely. remove cpu_maxlwp() that isn't implemented anywhere. instead, grow the maxlwp for larger memory systems, picking 1 lwp per 1MiB of ram, limited to 65535 like the system limit. remove some magic numbers. i've been having weird firefox issues for a few months now and it turns out i was having pthread_create() failures and since bumping the defaults i've had none of the recent issues.
Revision 1.215 / (download) - annotate - [select for diffs], Sat Apr 9 23:45:37 2022 UTC (23 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.214: +5 -4
lines
Diff to previous 1.214 (colored)
kern: Handle l_mutex with atomic_store_release, atomic_load_consume. - Where the lock is held and known to be correct, no atomic. - In loops to acquire the lock, use atomic_load_relaxed before we restart with atomic_load_consume. Nix membar_exit. (Who knows, using atomic_load_consume here might fix bugs on Alpha!)
Revision 1.214 / (download) - annotate - [select for diffs], Sat Apr 9 13:38:15 2022 UTC (23 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.213: +3 -3
lines
Diff to previous 1.213 (colored)
sys/lwp.h: Nix trailing whitespace.
Revision 1.213 / (download) - annotate - [select for diffs], Sun Feb 27 01:03:14 2022 UTC (2 years ago) by gutteridge
Branch: MAIN
Changes since 1.212: +2 -2
lines
Diff to previous 1.212 (colored)
lwp.h: correct grammar in a comment
Revision 1.212 / (download) - annotate - [select for diffs], Fri Oct 23 00:25:45 2020 UTC (3 years, 4 months ago) by thorpej
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-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
Branch point for: thorpej-futex2,
thorpej-futex
Changes since 1.211: +2 -1
lines
Diff to previous 1.211 (colored)
- sleepq_block(): Add a new LWP flag, LW_CATCHINTR, that is used to track the intent to catch signals while sleeping. Initialize this flag based on the catch_p argument to sleepq_block(), and rather than test catch_p when awakened, test LW_CATCHINTR. This allows the intent to change (based on whatever criteria the owner of the sleepq wishes) while the LWP is asleep. This is separate from LW_SINTR in order to leave all other logic around LW_SINTR unaffected. - In sleepq_transfer(), adjust also LW_CATCHINTR based on the catch_p argument. Also allow the new LWP lock argument to be NULL, which will cause the lwp_setlock() call to be skipped; this allows transfer to another sleepq that is known to be protected by the same lock. - Add a new function, sleepq_uncatch(), that will transition an LWP from "interruptible sleep" to "uninterruptible sleep" on its current sleepq.
Revision 1.211 / (download) - annotate - [select for diffs], Sat Aug 1 02:04:55 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.210: +2 -1
lines
Diff to previous 1.210 (colored)
New functions kthread_fpu_enter/exit. The MI definitions don't do anything but maintain a flag, but MD code can define kthread_fpu_enter/exit_md to actually enable/disable the FPU. (These are almost pcu_load/discard on systems that use pcu(9), except they apply to all PCUs.) Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2020/06/20/msg026524.html The proposed kthread flag KTHREAD_FPU is not included because I couldn't find any particular need for it that would not be covered by just calling kthread_fpu_enter/exit in the kthread function.
Revision 1.210 / (download) - annotate - [select for diffs], Sat May 23 20:45:11 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.209: +10 -7
lines
Diff to previous 1.209 (colored)
- Replace pid_table_lock with a lockless lookup covered by pserialize, with the "writer" side being pid_table expansion. The basic idea is that when doing an LWP lookup there is usually already a lock held (p->p_lock), or a spin mutex that needs to be taken (l->l_mutex), and either can be used to get the found LWP stable and confidently determine that all is correct. - For user processes LSLARVAL implies the same thing as LSIDL ("not visible by ID"), and lookup by ID in proc0 doesn't really happen. In-tree the new state should be understood by top(1), the tty subsystem and so on, and would attract the attention of 3rd party kernel grovellers in time, so remove it and just rely on LSIDL.
Revision 1.209 / (download) - annotate - [select for diffs], Wed Apr 29 01:52:26 2020 UTC (3 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.208: +1 -2
lines
Diff to previous 1.208 (colored)
- proc_find() retains traditional semantics of requiring the canonical PID to look up a proc. Add a separate proc_find_lwpid() to look up a proc by the ID of any of its LWPs. - Add proc_find_lwp_acquire_proc(), which enables looking up the LWP *and* a proc given the ID of any LWP. Returns with the proc::p_lock held. - Rewrite lwp_find2() in terms of proc_find_lwp_acquire_proc(), and add allow the proc to be wildcarded, rather than just curproc or specific proc. - lwp_find2() now subsumes the original intent of lwp_getref_lwpid(), but in a much nicer way, so garbage-collect the remnants of that recently added mechanism.
Revision 1.208 / (download) - annotate - [select for diffs], Sun Apr 26 18:53:33 2020 UTC (3 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.207: +2 -2
lines
Diff to previous 1.207 (colored)
Add a NetBSD native futex implementation, mostly written by riastradh@. Map the COMPAT_LINUX futex calls to the native ones.
Revision 1.207 / (download) - annotate - [select for diffs], Fri Apr 24 03:22:06 2020 UTC (3 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: bouyer-xenpvh-base2
Changes since 1.206: +7 -22
lines
Diff to previous 1.206 (colored)
Overhaul the way LWP IDs are allocated. Instead of each LWP having it's own LWP ID space, LWP IDs came from the same number space as PIDs. The lead LWP of a process gets the PID as its LID. If a multi-LWP process's lead LWP exits, the PID persists for the process. In addition to providing system-wide unique thread IDs, this also lets us eliminate the per-process LWP radix tree, and some associated locks. Remove the separate "global thread ID" map added previously; it is no longer needed to provide this functionality. Nudged in this direction by ad@ and chs@.
Revision 1.206 / (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-20200421,
phil-wifi-20200411,
bouyer-xenpvh-base1
Changes since 1.205: +2 -2
lines
Diff to previous 1.205 (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.205 / (download) - annotate - [select for diffs], Sat Apr 4 20:20:12 2020 UTC (3 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: phil-wifi-20200406,
bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.204: +25 -2
lines
Diff to previous 1.204 (colored)
Add support for lazily generating a "global thread ID" for a LWP. This identifier uniquely identifies an LWP across the entire system, and will be used in future improvements in user-space synchronization primitives. (Test disabled and libc stub not included intentionally so as to avoid multiple libc version bumps.)
Revision 1.204 / (download) - annotate - [select for diffs], Sat Apr 4 06:51:46 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.203: +5 -1
lines
Diff to previous 1.203 (colored)
Drop specificdata from KCOV, kMSan doesn't interact well with it. Also reduces the overhead.
Revision 1.203 / (download) - annotate - [select for diffs], Thu Mar 26 19:46:42 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.202: +2 -2
lines
Diff to previous 1.202 (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.202 / (download) - annotate - [select for diffs], Sat Feb 15 18:12:15 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base,
is-mlppp,
ad-namecache-base3
Changes since 1.201: +16 -5
lines
Diff to previous 1.201 (colored)
- Move the LW_RUNNING flag back into l_pflag: updating l_flag without lock in softint_dispatch() is risky. May help with the "softint screwup" panic. - Correct the memory barriers around zombies switching into oblivion.
Revision 1.201 / (download) - annotate - [select for diffs], Sat Feb 15 17:13:55 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.200: +2 -1
lines
Diff to previous 1.200 (colored)
PR kern/54922: 9.99.45@20200202 panic: diagnostic assertion linux ldconfig triggers vpp != NULL in exit1()->radixtree.c line 674 Create an lwp_renumber() from the code in emulexec() and use in linux_e_proc_exec() and linux_e_proc_fork() too.
Revision 1.200 / (download) - annotate - [select for diffs], Wed Jan 29 15:47:52 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.199: +3 -4
lines
Diff to previous 1.199 (colored)
- Track LWPs in a per-process radixtree. It uses no extra memory in the single threaded case. Replace scans of p->p_lwps with lookups in the tree. Find free LIDs for new LWPs in the tree. Replace the hashed sleep queues for park/unpark with lookups in the tree under cover of a RW lock. - lwp_wait(): if waiting on a specific LWP, find the LWP via tree lookup and return EINVAL if it's detached, not ESRCH. - Group the locks in struct proc at the end of the struct in their own cache line. - Add some comments.
Revision 1.199 / (download) - annotate - [select for diffs], Tue Jan 28 16:40:27 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.198: +2 -2
lines
Diff to previous 1.198 (colored)
Put pri_t back to an int. It looks like there might be a sign extension issue somewhere but it's not worth the hassle trying to find it.
Revision 1.198 / (download) - annotate - [select for diffs], Sat Jan 25 15:41:52 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base2
Changes since 1.197: +5 -5
lines
Diff to previous 1.197 (colored)
- Fix a race between the kernel and libpthread, where a new thread can start life without its self->pt_lid being filled in. - Fix an error path in _lwp_create(). If the new LID can't be copied out, then get rid of the new LWP (i.e. either succeed or fail, not both). - Mark l_dopreempt and l_nopreempt volatile in struct lwp.
Revision 1.197 / (download) - annotate - [select for diffs], Tue Jan 21 20:31:57 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.196: +2 -1
lines
Diff to previous 1.196 (colored)
ddb's "show all locks": - Make the output easier to scan quickly. - Show every LWP that is blocked on a lock, and the details of the lock.
Revision 1.196 / (download) - annotate - [select for diffs], Sun Jan 12 22:03:23 2020 UTC (4 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base1
Changes since 1.195: +2 -1
lines
Diff to previous 1.195 (colored)
A final set of scheduler tweaks: - Try hard to keep vfork() parent and child on the same CPU until execve(), failing that on the same core, but in all other cases scatter new LWPs among the different CPU packages, round robin, to try and get the best out of the available cache and bus bandwidth. - Remove attempts at balancing. Replace with a rate-limited skim of other CPU's run queues in sched_idle(), starting in the current package and moving outwards. Add a sysctl tunable to change the interval. - Make the cacheht_time tuneable take a milliseconds value. - It's possible to configure things such that there's no CPU allowed to run an LWP. Defeat this by always having a default: Reported-by: syzbot+46968944dd9359ab93bc@syzkaller.appspotmail.com Reported-by: syzbot+7f750a4cc230d1e831f9@syzkaller.appspotmail.com Reported-by: syzbot+88d7675158f5cb4684db@syzkaller.appspotmail.com Reported-by: syzbot+d409c2338150e9a8ae1e@syzkaller.appspotmail.com Reported-by: syzbot+e152dc5bff188f67358a@syzkaller.appspotmail.com
Revision 1.195 / (download) - annotate - [select for diffs], Sun Jan 12 21:40:44 2020 UTC (4 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.194: +2 -2
lines
Diff to previous 1.194 (colored)
Make pri_t a short and get back some more space in struct lwp.
Revision 1.194 / (download) - annotate - [select for diffs], Sun Jan 12 18:37:10 2020 UTC (4 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.193: +13 -15
lines
Diff to previous 1.193 (colored)
- Shuffle some items around in struct lwp to save space. Remove an unused item or two. - For lockstat, get a useful callsite for vnode locks (caller to vn_lock()).
Revision 1.193 / (download) - annotate - [select for diffs], Wed Jan 8 17:38:43 2020 UTC (4 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.192: +2 -4
lines
Diff to previous 1.192 (colored)
Hopefully fix some problems seen with MP support on non-x86, in particular where curcpu() is defined as curlwp->l_cpu: - mi_switch(): undo the ~2007ish optimisation to unlock curlwp before calling cpu_switchto(). It's not safe to let other actors mess with the LWP (in particular l->l_cpu) while it's still context switching. This removes l->l_ctxswtch. - Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since it's now covered by the LWP's lock. - Ditch lwp_exit_switchaway() and just call mi_switch() instead. Everything is in cache anyway so it wasn't buying much by trying to avoid saving old state. This means cpu_switchto() will never be called with prevlwp == NULL. - Remove some KERNEL_LOCK handling which hasn't been needed for years.
Revision 1.192 / (download) - annotate - [select for diffs], Sun Dec 1 15:34:47 2019 UTC (4 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base
Branch point for: ad-namecache
Changes since 1.191: +2 -2
lines
Diff to previous 1.191 (colored)
Fix false sharing problems with cpu_info. Identified with tprof(8). This was a very nice win in my tests on a 48 CPU box. - Reorganise cpu_data slightly according to usage. - Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc). - On x86, put some items in their own cache lines according to usage, like the IPI bitmask and ci_want_resched.
Revision 1.191 / (download) - annotate - [select for diffs], Sat Nov 30 17:45:54 2019 UTC (4 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.190: +3 -3
lines
Diff to previous 1.190 (colored)
Mark the context switch counters volatile (because preemption).
Revision 1.190 / (download) - annotate - [select for diffs], Sat Nov 23 19:42:52 2019 UTC (4 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.189: +3 -2
lines
Diff to previous 1.189 (colored)
Minor scheduler cleanup: - Adapt to cpu_need_resched() changes. Avoid lost & duplicate IPIs and ASTs. sched_resched_cpu() and sched_resched_lwp() contain the logic for this. - Changes for LSIDL to make the locking scheme match the intended design. - Reduce lock contention and false sharing further. - Numerous small bugfixes, including some corrections for SCHED_FIFO/RT. - Use setrunnable() in more places, and merge cut & pasted code.
Revision 1.189 / (download) - annotate - [select for diffs], Thu Nov 21 19:47:21 2019 UTC (4 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.188: +2 -2
lines
Diff to previous 1.188 (colored)
lwp_setlock(): return pointer to the kmutex_t that we replaced
Revision 1.188 / (download) - annotate - [select for diffs], Thu Nov 14 16:23:53 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.187: +8 -1
lines
Diff to previous 1.187 (colored)
Add support for Kernel Memory Sanitizer (kMSan). It detects uninitialized memory used by the kernel at run time, and just like kASan and kCSan, it is an excellent feature. It has already detected 38 uninitialized variables in the kernel during my testing, which I have since discreetly fixed. We use two shadows: - "shad", to track uninitialized memory with a bit granularity (1:1). Each bit set to 1 in the shad corresponds to one uninitialized bit of real kernel memory. - "orig", to track the origin of the memory with a 4-byte granularity (1:1). Each uint32_t cell in the orig indicates the origin of the associated uint32_t of real kernel memory. The memory consumption of these shadows is consequent, so at least 4GB of RAM is recommended to run kMSan. The compiler inserts calls to specific __msan_* functions on each memory access, to manage both the shad and the orig and detect uninitialized memory accesses that change the execution flow (like an "if" on an uninitialized variable). We mark as uninit several types of memory buffers (stack, pools, kmem, malloc, uvm_km), and check each buffer passed to copyout, copyoutstr, bwrite, if_transmit_lock and DMA operations, to detect uninitialized memory that leaves the system. This allows us to detect kernel info leaks in a way that is more efficient and also more user-friendly than KLEAK. Contrary to kASan, kMSan requires comprehensive coverage, ie we cannot tolerate having one non-instrumented function, because this could cause false positives. kMSan cannot instrument ASM functions, so I converted most of them to __asm__ inlines, which kMSan is able to instrument. Those that remain receive special treatment. Contrary to kASan again, kMSan uses a TLS, so we must context-switch this TLS during interrupts. We use different contexts depending on the interrupt level. The orig tracks precisely the origin of a buffer. We use a special encoding for the orig values, and pack together in each uint32_t cell of the orig: - a code designating the type of memory (Stack, Pool, etc), and - a compressed pointer, which points either (1) to a string containing the name of the variable associated with the cell, or (2) to an area in the kernel .text section which we resolve to a symbol name + offset. This encoding allows us not to consume extra memory for associating information with each cell, and produces a precise output, that can tell for example the name of an uninitialized variable on the stack, the function in which it was pushed on the stack, and the function where we accessed this uninitialized variable. kMSan is available with LLVM, but not with GCC. The code is organized in a way that is similar to kASan and kCSan, so it means that other architectures than amd64 can be supported.
Revision 1.187 / (download) - annotate - [select for diffs], Thu Oct 3 22:26:43 2019 UTC (4 years, 5 months ago) by kamil
Branch: MAIN
Changes since 1.186: +2 -1
lines
Diff to previous 1.186 (colored)
Define LW_DBGSUSPEND in sys/lwp.h This flag specifies the suspended by debugger property, as used by PT_SUSPEND in ptrace(2).
Revision 1.186 / (download) - annotate - [select for diffs], Wed Jun 19 21:39:53 2019 UTC (4 years, 9 months ago) by kamil
Branch: MAIN
CVS Tags: netbsd-9-base
Branch point for: netbsd-9
Changes since 1.185: +3 -1
lines
Diff to previous 1.185 (colored)
Add an explicit node that lwp status numbers are set in stone Requested by <mrg>
Revision 1.185 / (download) - annotate - [select for diffs], Tue Jun 18 22:40:09 2019 UTC (4 years, 9 months ago) by kamil
Branch: MAIN
Changes since 1.184: +2 -3
lines
Diff to previous 1.184 (colored)
Stop defining in lwp.h: LSDEAD Not used since NetBSD-5.0. It had a confusing comment that suggested that all entries after LSDEAD are removed, which wasn't true.
Revision 1.184 / (download) - annotate - [select for diffs], Thu Jun 13 20:20:18 2019 UTC (4 years, 9 months ago) by kamil
Branch: MAIN
Changes since 1.183: +2 -2
lines
Diff to previous 1.183 (colored)
Correct use-after-free issue in vfork(2) In the previous behavior vforking parent was keeping pointer to a child and checking whether it clears a PL_PPWAIT in its bitfield p_lflag. However a child can go invalid between exec/exit event from child and waking up vforked parent and this can cause invalid pointer read and in the worst scenario kernel crash. In the new behavior vforked child keeps a reference to vforked parent LWP and sets a value l_vforkwaiting to false. This means that vforked child can finish its work, exec/exit and be terminated and once parent will be woken up it will read its own field whether its child is still blocking. Add new field in struct lwp: l_vforkwaiting protected by proc_lock. In future it should be refactored and all PL_PPWAIT users transformed to l_vforkwaiting and next l_vforkwaiting probably transformed into a bit field. This is another attempt of fixing this bug after <rmind> from 2012 in commit: Author: rmind <rmind@NetBSD.org> Date: Sun Jul 22 22:40:18 2012 +0000 fork1: fix use-after-free problems. Addresses PR/46128 from Andrew Doran. Note: PL_PPWAIT should be fully replaced and modificaiton of l_pflag by other LWP is undesirable, but this is enough for netbsd-6. The new version no longer performs unsafe access in l_lflag changing the LP_VFORKWAIT bit. Verified with ATF t_vfork and t_ptrace* tests and they are no longer causing any issues in my local setup. Fixes PR/46128 by Andrew Doran
Revision 1.183 / (download) - annotate - [select for diffs], Fri May 17 03:34:26 2019 UTC (4 years, 10 months ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-20190609
Changes since 1.182: +2 -1
lines
Diff to previous 1.182 (colored)
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.182 / (download) - annotate - [select for diffs], Fri Apr 19 01:52:55 2019 UTC (4 years, 11 months ago) by ozaki-r
Branch: MAIN
CVS Tags: isaki-audio2-base,
isaki-audio2
Changes since 1.181: +2 -2
lines
Diff to previous 1.181 (colored)
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.181 / (download) - annotate - [select for diffs], Fri Mar 1 09:02:03 2019 UTC (5 years ago) by hannken
Branch: MAIN
Changes since 1.180: +2 -1
lines
Diff to previous 1.180 (colored)
Move pointer to fstrans private data into "struct lwp". Ride NetBSD 8.99.35
Revision 1.180 / (download) - annotate - [select for diffs], Wed Nov 28 19:46:22 2018 UTC (5 years, 3 months ago) by mlelstv
Branch: MAIN
CVS Tags: pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226
Changes since 1.179: +2 -1
lines
Diff to previous 1.179 (colored)
Move counting involuntary switches into mi_switch. preempt() passes that information by setting a new LWP flag. While here, don't even try to switch when the scheduler has no other LWP to run. This check is currently spread over all callers of preempt() and will be removed there. ok mrg@.
Revision 1.179 / (download) - annotate - [select for diffs], Thu Apr 19 21:19:07 2018 UTC (5 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-base,
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
Branch point for: phil-wifi
Changes since 1.178: +17 -17
lines
Diff to previous 1.178 (colored)
s/static inline/static __inline/g for consistency with other include headers.
Revision 1.178 / (download) - annotate - [select for diffs], Fri Feb 16 07:11:50 2018 UTC (6 years, 1 month ago) by ozaki-r
Branch: MAIN
CVS Tags: pgoyette-compat-base,
pgoyette-compat-0415,
pgoyette-compat-0407,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.177: +3 -1
lines
Diff to previous 1.177 (colored)
Add missing barriers to curlwp_bind and curlwp_bindx The barriers prevent the instruction of setting/clearing the LP_BOUND flag from reordering over where we want to prevent LWP migrations. Note that the fix doesn't mean that there was a race condition. For now the API is used only for psref and the combination use of them doesn't need the barriers(*). (*) https://mail-index.netbsd.org/tech-kern/2018/02/15/msg023101.html Pointed out by Mateusz Guzik
Revision 1.177 / (download) - annotate - [select for diffs], Sun Jan 14 16:43:03 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.176: +4 -4
lines
Diff to previous 1.176 (colored)
typos
Revision 1.176 / (download) - annotate - [select for diffs], Fri Dec 22 10:24:49 2017 UTC (6 years, 2 months ago) by ozaki-r
Branch: MAIN
Changes since 1.175: +3 -1
lines
Diff to previous 1.175 (colored)
Check LP_BOUND is surely set in curlwp_bindx This may find an extra call of curlwp_bindx.
Revision 1.175 / (download) - annotate - [select for diffs], Thu Jun 8 01:09:52 2017 UTC (6 years, 9 months ago) by chs
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202,
perseant-stdc-iso10646-base,
perseant-stdc-iso10646,
nick-nhusb-base-20170825
Changes since 1.174: +2 -1
lines
Diff to previous 1.174 (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.174 / (download) - annotate - [select for diffs], Fri Apr 21 15:10:35 2017 UTC (6 years, 10 months ago) by christos
Branch: MAIN
CVS Tags: prg-localcount2-base3,
prg-localcount2-base2,
prg-localcount2-base1,
prg-localcount2-base,
prg-localcount2,
pgoyette-localcount-20170426,
netbsd-8-base,
matt-nb8-mediatek-base,
matt-nb8-mediatek,
bouyer-socketcan-base1
Branch point for: netbsd-8
Changes since 1.173: +5 -4
lines
Diff to previous 1.173 (colored)
- Propagate the signal mask from the ucontext_t to the newly created thread as specified by _lwp_create(2) - Reset the signal stack for threads created with _lwp_create(2)
Revision 1.173 / (download) - annotate - [select for diffs], Sat Apr 8 00:25:50 2017 UTC (6 years, 11 months ago) by kamil
Branch: MAIN
CVS Tags: jdolecek-ncq-base,
jdolecek-ncq
Changes since 1.172: +2 -1
lines
Diff to previous 1.172 (colored)
Add new ptrace(2) API: PT_SETSTEP & PT_CLEARSTEP These operations allow to mark thread as a single-stepping one. This allows to i.a.: - single step and emit a signal (PT_SETSTEP & PT_CONTINUE) - single step and trace syscall entry and exit (PT_SETSTEP & PT_SYSCALL) The former is useful for debuggers like GDB or LLDB. The latter can be used to singlestep a usermode kernel. These examples don't limit use-cases of this interface. Define PT_*STEP only for platforms defining PT_STEP. Add new ATF tests setstep[1234]. These ptrace(2) operations first appeared in FreeBSD. Sponsored by <The NetBSD Foundation>
Revision 1.172 / (download) - annotate - [select for diffs], Sun Jul 3 14:24:59 2016 UTC (7 years, 8 months ago) by christos
Branch: MAIN
CVS Tags: pgoyette-localcount-base,
pgoyette-localcount-20170320,
pgoyette-localcount-20170107,
pgoyette-localcount-20161104,
pgoyette-localcount-20160806,
pgoyette-localcount-20160726,
nick-nhusb-base-20170204,
nick-nhusb-base-20161204,
nick-nhusb-base-20161004,
nick-nhusb-base-20160907,
localcount-20160914,
bouyer-socketcan-base
Branch point for: pgoyette-localcount,
bouyer-socketcan
Changes since 1.171: +5 -5
lines
Diff to previous 1.171 (colored)
GSoC 2016 Charles Cui: Implement thread priority protection based on work by Andy Doran. Also document the get/set pshared thread calls as not implemented, and add a skeleton implementation that is disabled. XXX: document _sched_protect(2).
Revision 1.171 / (download) - annotate - [select for diffs], Thu Jun 16 02:34:33 2016 UTC (7 years, 9 months ago) by ozaki-r
Branch: MAIN
Changes since 1.170: +23 -1
lines
Diff to previous 1.170 (colored)
Introduce curlwp_bind and curlwp_bindx The API prevents the current LWP from migrating between CPUs during the critical section (between curlwp_bind and curlwp_bindx). One use case of it is psref(9) that has a contract that forbids such migrations. Proposed at http://mail-index.netbsd.org/tech-kern/2016/06/13/msg020710.html (check it out if you want to know why the function names are chosen)
Revision 1.170 / (download) - annotate - [select for diffs], Tue Mar 31 01:10:02 2015 UTC (8 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529,
nick-nhusb-base-20160422,
nick-nhusb-base-20160319,
nick-nhusb-base-20151226,
nick-nhusb-base-20150921,
nick-nhusb-base-20150606,
nick-nhusb-base-20150406
Changes since 1.169: +14 -1
lines
Diff to previous 1.169 (colored)
Provide struct cpu_info *lwp_getcpu(struct lwp *) inline for <machine/cpu.h> <machine/cpu.h> is include by <sys/lwp.h> before struct lwp is defined so it can't access members inside it. This provides an accessor which is defined after struct lwp is defined.
Revision 1.169 / (download) - annotate - [select for diffs], Fri May 16 10:05:38 2014 UTC (9 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: tls-maxphys-base,
tls-earlyentropy-base,
rmind-smpnet-nbase,
rmind-smpnet-base,
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.168: +2 -2
lines
Diff to previous 1.168 (colored)
It is now lwp_t::l_pcu_valid for the PCU changes (missed in the previous commit).
Revision 1.168 / (download) - annotate - [select for diffs], Fri Mar 29 01:09:45 2013 UTC (10 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9,
riastradh-xf86-video-intel-2-7-1-pre-2-21-15,
riastradh-drm2-base3,
riastradh-drm2-base2,
riastradh-drm2-base1,
riastradh-drm2-base,
riastradh-drm2,
khorben-n900
Branch point for: tls-earlyentropy,
rmind-smpnet
Changes since 1.167: +2 -2
lines
Diff to previous 1.167 (colored)
prototype adjustments for lwp_park, welcome to 6.99.19
Revision 1.167 / (download) - annotate - [select for diffs], Wed Jan 2 19:39:04 2013 UTC (11 years, 2 months ago) by dsl
Branch: MAIN
CVS Tags: yamt-pagecache-base8,
agc-symver-base,
agc-symver
Changes since 1.166: +5 -3
lines
Diff to previous 1.166 (colored)
Only expose the bulk of sys/proc.h and sys/lwp.h if _KERNEL or _KMEMUSER is defined. i386 and amd64 build ok.
Revision 1.166 / (download) - annotate - [select for diffs], Wed Dec 26 18:30:22 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.165: +2 -2
lines
Diff to previous 1.165 (colored)
Add support for kernel-based code to use a PCU. (for memory to memory copies or in_cksum or ...)
Revision 1.165 / (download) - annotate - [select for diffs], Sun Oct 7 20:43:18 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base7,
yamt-pagecache-base6
Changes since 1.164: +2 -2
lines
Diff to previous 1.164 (colored)
Don't give a boost to system threads.
Revision 1.164 / (download) - annotate - [select for diffs], Thu Sep 27 20:43:15 2012 UTC (11 years, 5 months ago) by rmind
Branch: MAIN
Changes since 1.163: +2 -4
lines
Diff to previous 1.163 (colored)
exit_lwps, lwp_wait: fix a race condition by re-trying if p_lock was dropped in a case of process exit. Necessary to re-flag all LWPs for exit, as their state might have changed or new LWPs spawned. Should fix PR/46168 and PR/46402.
Revision 1.163 / (download) - annotate - [select for diffs], Sun Jul 22 22:40:18 2012 UTC (11 years, 7 months ago) by rmind
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.162: +5 -3
lines
Diff to previous 1.162 (colored)
fork1: fix use-after-free problems. Addresses PR/46128 from Andrew Doran. Note: PL_PPWAIT should be fully replaced and modificaiton of l_pflag by other LWP is undesirable, but this is enough for netbsd-6.
Revision 1.162 / (download) - annotate - [select for diffs], Sat Jun 9 02:31:15 2012 UTC (11 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.161: +8 -1
lines
Diff to previous 1.161 (colored)
Add a new resource to limit the number of lwps per user, RLIMIT_NTHR. There is a global sysctl kern.maxlwp to control this, which is by default 2048. The first lwp of each process or kernel threads are not counted against the limit. To show the current resource usage per user, I added a new sysctl that dumps the uidinfo structure fields.
Revision 1.161 / (download) - annotate - [select for diffs], Mon May 21 14:15:19 2012 UTC (11 years, 10 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pagecache-base5,
jmcneill-usbmp-base10
Changes since 1.160: +2 -1
lines
Diff to previous 1.160 (colored)
Calling _lwp_create() with a bogus ucontext could trigger a kernel assertion failure (and thus a crash in DIAGNOSTIC kernels). Independently discovered by YAMAMOTO Takashi and Joel Sing. To avoid this, introduce a cpu_mcontext_validate() function and move all sanity checks from cpu_setmcontext() there. Also untangle the netbsd32 compat mess slightly and add a cpu_mcontext32_validate() cousin there. Add an exhaustive atf test case, based partly on code from Joel Sing. Should finally fix the remaining open part of PR kern/43903.
Revision 1.160 / (download) - annotate - [select for diffs], Sun Feb 19 21:06:58 2012 UTC (12 years, 1 month ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base4,
jmcneill-usbmp-base9,
jmcneill-usbmp-base8,
jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4,
jmcneill-usbmp-base3
Changes since 1.159: +5 -19
lines
Diff to previous 1.159 (colored)
Remove COMPAT_SA / KERN_SA. Welcome to 6.99.3! Approved by core@.
Revision 1.159 / (download) - annotate - [select for diffs], Sun Jan 22 09:11:58 2012 UTC (12 years, 1 month ago) by plunky
Branch: MAIN
CVS Tags: netbsd-6-base,
jmcneill-usbmp-base2
Branch point for: netbsd-6
Changes since 1.158: +3 -3
lines
Diff to previous 1.158 (colored)
fix comment (SRUN->LSRUN, SONPROC->LSONPROC)
Revision 1.158 / (download) - annotate - [select for diffs], Mon Nov 21 04:36:05 2011 UTC (12 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base
Branch point for: jmcneill-usbmp
Changes since 1.157: +2 -3
lines
Diff to previous 1.157 (colored)
change printf gcc attribute to __printflike(), requested by joerg.
Revision 1.157 / (download) - annotate - [select for diffs], Sun Nov 20 23:37:00 2011 UTC (12 years, 4 months ago) by christos
Branch: MAIN
Changes since 1.156: +3 -2
lines
Diff to previous 1.156 (colored)
add more missing printf attributes.
Revision 1.156 / (download) - annotate - [select for diffs], Mon Oct 31 12:18:32 2011 UTC (12 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3
Branch point for: yamt-pagecache
Changes since 1.155: +6 -1
lines
Diff to previous 1.155 (colored)
- make lendpri/changepri similar. - make common code a subroutine.
Revision 1.155 / (download) - annotate - [select for diffs], Sun Aug 7 21:13:06 2011 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.154: +1 -2
lines
Diff to previous 1.154 (colored)
Remove LW_AFFINITY flag and fix some bugs affinity mask handling.
Revision 1.154 / (download) - annotate - [select for diffs], Sun Aug 7 14:03:16 2011 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.153: +2 -2
lines
Diff to previous 1.153 (colored)
Rename slightly misleading KTHREAD_JOINABLE to KTHREAD_MUSTJOIN.
Revision 1.153 / (download) - annotate - [select for diffs], Sun Aug 7 13:33:02 2011 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.152: +2 -1
lines
Diff to previous 1.152 (colored)
Add kcpuset(9) - a reworked dynamic CPU set implementation for kernel. Suitable for use during the early boot. MD and other implementations should be replaced with this interface. Discussed on: tech-kern@
Revision 1.152 / (download) - annotate - [select for diffs], Thu May 19 03:07:29 2011 UTC (12 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase,
rmind-uvmplock-base,
cherry-xenmp-base,
cherry-xenmp
Changes since 1.151: +2 -1
lines
Diff to previous 1.151 (colored)
Re-implement kthread_join(9), so that it actually works (hi haad@).
Revision 1.151 / (download) - annotate - [select for diffs], Mon May 2 02:28:57 2011 UTC (12 years, 10 months ago) by rmind
Branch: MAIN
Changes since 1.150: +4 -2
lines
Diff to previous 1.150 (colored)
Limit sys/pcu.h inclusion within _KERNEL scope, plus _KMEMUSER.
Revision 1.150 / (download) - annotate - [select for diffs], Tue Mar 8 12:39:29 2011 UTC (13 years ago) by pooka
Branch: MAIN
Changes since 1.149: +2 -2
lines
Diff to previous 1.149 (colored)
Nuke all threads belonging to a process calling exec before allowing the exec handshake to return. In addition to being The Right Thing To Do, fixes some nasty conditions for CLOEXEC fd's (or at least does so in theory, I couldn't create any problems although I tried).
Revision 1.149 / (download) - annotate - [select for diffs], Mon Feb 21 20:23:28 2011 UTC (13 years ago) by pooka
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Changes since 1.148: +3 -2
lines
Diff to previous 1.148 (colored)
Borrow the lwpctl data area from the parent for the vfork() child. Otherwise the child will incorrectly see it is not running on any CPU. Among other things, this fixes crashes from having LD_PRELOAD=libpthread.so set in the env. reviewed by tech-kern
Revision 1.148 / (download) - annotate - [select for diffs], Sat Feb 19 20:19:54 2011 UTC (13 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.147: +3 -1
lines
Diff to previous 1.147 (colored)
Default PCU_UNIT_COUNT to 0. If 0, don't compile the contents of subr_pcu.c and don't include the pcu related members into struct lwp.
Revision 1.147 / (download) - annotate - [select for diffs], Sat Feb 19 00:22:50 2011 UTC (13 years, 1 month ago) by jakllsch
Branch: MAIN
Changes since 1.146: +10 -8
lines
Diff to previous 1.146 (colored)
Move lwp_getpcb() into a (_KERNEL || _KMEMUSER) ifdef. Unbreaks crash(8).
Revision 1.146 / (download) - annotate - [select for diffs], Thu Feb 17 21:02:26 2011 UTC (13 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.145: +1 -3
lines
Diff to previous 1.145 (colored)
Need pcu.h unconditionally.
Revision 1.145 / (download) - annotate - [select for diffs], Thu Feb 17 20:55:01 2011 UTC (13 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.144: +1 -2
lines
Diff to previous 1.144 (colored)
don't include things twice.
Revision 1.144 / (download) - annotate - [select for diffs], Thu Feb 17 19:28:46 2011 UTC (13 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.143: +13 -8
lines
Diff to previous 1.143 (colored)
Move lwp_getpcb to the area with the rest of the _KERNEL function declarations.
Revision 1.143 / (download) - annotate - [select for diffs], Thu Feb 17 18:32:29 2011 UTC (13 years, 1 month ago) by rmind
Branch: MAIN
Changes since 1.142: +5 -1
lines
Diff to previous 1.142 (colored)
Add PCU (Per-CPU Unit) - an interface to manage synchronization of any per CPU context tied with an LWP. Main use - lazy FPU handling on SMP. Requested by matt@, will be used on mips64. Note: implementation will be improved to use IPIs before adopting on x86. OK ad@.
Revision 1.142 / (download) - annotate - [select for diffs], Fri Jan 28 16:58:27 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: uebayasi-xip-base7,
bouyer-quota2-base
Changes since 1.141: +2 -1
lines
Diff to previous 1.141 (colored)
Some lwp-walkers expect the correct value for l_stat, so use a flag in l_flag instead of l_stat for the purpose of flagging lwps in a dying proc.
Revision 1.141 / (download) - annotate - [select for diffs], Tue Jan 18 20:17:50 2011 UTC (13 years, 2 months ago) by rmind
Branch: MAIN
Branch point for: bouyer-quota2
Changes since 1.140: +33 -35
lines
Diff to previous 1.140 (colored)
G/C unused declaration; fix few comments on locking; whitespaces. No functional changes.
Revision 1.140 / (download) - annotate - [select for diffs], Fri Jan 14 02:06:34 2011 UTC (13 years, 2 months ago) by rmind
Branch: MAIN
CVS Tags: jruoho-x86intr-base
Branch point for: jruoho-x86intr
Changes since 1.139: +8 -16
lines
Diff to previous 1.139 (colored)
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros. Various #include fixes and review by matt@.
Revision 1.139 / (download) - annotate - [select for diffs], Sat Dec 18 01:36:20 2010 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Changes since 1.138: +10 -9
lines
Diff to previous 1.138 (colored)
- Fix a few possible locking issues in execve1() and exit1(). Add a note that scheduler locks are special in this regard - adaptive locks cannot be in the path due to turnstiles. Randomly spotted/reported by uebayasi@. - Remove unused lwp_relock() and replace lwp_lock_retry() by simplifying lwp_lock() and sleepq_enter() a little. - Give alllwp its own cache-line and mark lwp_cache pointer as read-mostly. OK ad@
Revision 1.138 / (download) - annotate - [select for diffs], Wed Sep 1 19:37:58 2010 UTC (13 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11,
uebayasi-xip-base6,
uebayasi-xip-base5,
uebayasi-xip-base4,
uebayasi-xip-base3
Changes since 1.137: +2 -1
lines
Diff to previous 1.137 (colored)
Implement rump_lwproc: the new lwp/proc management routines for rump. These move the management of the pid/lwpid space from the application into the kernel, make code more robust, and make it possible to attach multiple lwp's to non-proc0 processes.
Revision 1.137 / (download) - annotate - [select for diffs], Thu Jul 8 12:23:31 2010 UTC (13 years, 8 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base10,
uebayasi-xip-base2
Changes since 1.136: +10 -4
lines
Diff to previous 1.136 (colored)
Implement direct select/poll support, currently effective for socket and pipe subsystems. Avoids overhead of second selscan() on wake-up, and thus improves performance on certain workloads (especially when polling on many file-descriptors). Also, clean-up sys/fd_set.h header and improve macros. Welcome to 5.99.36!
Revision 1.136 / (download) - annotate - [select for diffs], Wed Jul 7 01:30:38 2010 UTC (13 years, 8 months ago) by chs
Branch: MAIN
Changes since 1.135: +7 -3
lines
Diff to previous 1.135 (colored)
many changes for COMPAT_LINUX: - update the linux syscall table for each platform. - support new-style (NPTL) linux pthreads on all platforms. clone() with CLONE_THREAD uses 1 process with many LWPs instead of separate processes. - move the contents of sys__lwp_setprivate() into a new lwp_setprivate() and use that everywhere. - update linux_release[] and linux32_release[] to "2.6.18". - adjust placement of emul fork/exec/exit hooks as needed and adjust other emul code to match. - convert all struct emul definitions to use named initializers. - change the pid allocator to allow multiple pids to refer to the same proc. - remove a few fields from struct proc that are no longer needed. - disable the non-functional "vdso" code in linux32/amd64, glibc works fine without it. - fix a race in the futex code where we could miss a wakeup after a requeue operation. - redo futex locking to be a little more efficient.
Revision 1.135 / (download) - annotate - [select for diffs], Sun Jun 13 03:31:28 2010 UTC (13 years, 9 months ago) by yamt
Branch: MAIN
Changes since 1.134: +2 -2
lines
Diff to previous 1.134 (colored)
remove __dead from the prototype of lwp_exit, which actually can return these days.
Revision 1.134 / (download) - annotate - [select for diffs], Thu Jun 10 20:54:53 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.133: +2 -1
lines
Diff to previous 1.133 (colored)
lwp0 seems like an lwp instead of a process, so move bits related to it from kern_proc.c to kern_lwp.c. This makes kern_proc "scheduling-clean" and more easily usable in environments with a non-integrated scheduler (like, to take a random example, rump).
Revision 1.133 / (download) - annotate - [select for diffs], Sun May 30 02:25:15 2010 UTC (13 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.132: +2 -1
lines
Diff to previous 1.132 (colored)
Uses PRI_KERNEL from sys/param.h; include that explicitly instead of by accident.
Revision 1.132 / (download) - annotate - [select for diffs], Sun Apr 25 15:55:24 2010 UTC (13 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: uebayasi-xip-base1
Changes since 1.131: +5 -4
lines
Diff to previous 1.131 (colored)
Make select/poll work with more than 32 CPUs. No ABI change.
Revision 1.131 / (download) - annotate - [select for diffs], Fri Apr 23 19:18:09 2010 UTC (13 years, 10 months ago) by rmind
Branch: MAIN
Changes since 1.130: +1 -4
lines
Diff to previous 1.130 (colored)
Remove lwp_uc_pool, replace it with kmem(9), plus add some consistency. As discussed, a while ago, with ad@.
Revision 1.130 / (download) - annotate - [select for diffs], Mon Apr 12 22:15:31 2010 UTC (13 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.129: +2 -1
lines
Diff to previous 1.129 (colored)
Separate lwp specificdata data structure management from lwp cpu/vm management. No functional change. (specificdata routines went from kern_lwp.c to subr_lwp_specificdata.c)
Revision 1.129 / (download) - annotate - [select for diffs], Tue Apr 6 13:50:22 2010 UTC (13 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.128: +3 -1
lines
Diff to previous 1.128 (colored)
PR/43128: Paul Koning: Threads support in ptrace() is insufficient for gdb to debug threaded live apps: Add an optional lwpid in PT_STEP and PT_CONTINUE to indicate which lwp to operate on, and implement the glue required to make it work.
Revision 1.128 / (download) - annotate - [select for diffs], Sun Feb 21 02:11:39 2010 UTC (14 years ago) by darran
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9
Branch point for: rmind-uvmplock
Changes since 1.127: +3 -1
lines
Diff to previous 1.127 (colored)
Add the DTrace hooks to the kernel (KDTRACE_HOOKS config option). DTrace adds a pointer to the lwp and proc structures which it uses to manage its state. These are opaque from the kernel perspective to keep the kernel free of CDDL code. The state arenas are kmem_alloced and freed as proccesses and threads are created and destoyed. Also add a check for trap06 (privileged/illegal instruction) so that DTrace can check for D scripts that may have triggered the trap so it can clean up after them and resume normal operation. Ok with core@.
Revision 1.127 / (download) - annotate - [select for diffs], Sun Nov 29 16:23:49 2009 UTC (14 years, 3 months ago) by rmind
Branch: MAIN
CVS Tags: uebayasi-xip-base,
matt-premerge-20091211
Branch point for: uebayasi-xip
Changes since 1.126: +2 -2
lines
Diff to previous 1.126 (colored)
Make lwp_getpcb() C89-happy by using __inline.
Revision 1.126 / (download) - annotate - [select for diffs], Wed Nov 25 13:53:19 2009 UTC (14 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.125: +8 -8
lines
Diff to previous 1.125 (colored)
Restore exporting of lwp_getpcb() to userland and fix DDB properly. While the header might be abstracted better, it is a separate issue.
Revision 1.125 / (download) - annotate - [select for diffs], Sat Nov 21 19:54:49 2009 UTC (14 years, 3 months ago) by dsl
Branch: MAIN
Changes since 1.124: +8 -8
lines
Diff to previous 1.124 (colored)
Revert last change - don't expose lwp_getpcb() to userspace.
Revision 1.124 / (download) - annotate - [select for diffs], Sat Nov 21 18:53:08 2009 UTC (14 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.123: +8 -8
lines
Diff to previous 1.123 (colored)
Export lwp_getpcb() to userland, since crash(8) needs it.
Revision 1.123 / (download) - annotate - [select for diffs], Fri Nov 20 03:12:13 2009 UTC (14 years, 4 months ago) by rmind
Branch: MAIN
Changes since 1.122: +9 -2
lines
Diff to previous 1.122 (colored)
Add lwp_getpcb(). OK matt@.
Revision 1.122 / (download) - annotate - [select for diffs], Sun Nov 1 20:57:34 2009 UTC (14 years, 4 months ago) by rmind
Branch: MAIN
Changes since 1.121: +2 -3
lines
Diff to previous 1.121 (colored)
- Fix comment: proclist_mutex was merged with proclist_lock a long time ago. - Remove unused alllwp_mutex declaration.
Revision 1.121 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:07 2009 UTC (14 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: jym-xensuspend-nbase
Changes since 1.120: +4 -6
lines
Diff to previous 1.120 (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.120 / (download) - annotate - [select for diffs], Sun Jun 28 15:18:50 2009 UTC (14 years, 8 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8,
yamt-nfs-mp-base7,
yamt-nfs-mp-base6,
jymxensuspend-base
Changes since 1.119: +2 -1
lines
Diff to previous 1.119 (colored)
Ephemeral mapping (emap) implementation. Concept is based on the idea that activity of other threads will perform the TLB flush for the processes using emap as a side effect. To track that, global and per-CPU generation numbers are used. This idea was suggested by Andrew Doran; various improvements to it by me. Notes: - For now, zero-copy on pipe is not yet enabled. - TCP socket code would likely need more work. - Additional UVM loaning improvements are needed. Proposed on <tech-kern>, silence there. Quickly reviewed by <ad>.
Revision 1.119 / (download) - annotate - [select for diffs], Wed May 27 12:08:35 2009 UTC (14 years, 9 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base5
Changes since 1.118: +9 -1
lines
Diff to previous 1.118 (colored)
add a comment about USER_TO_UAREA/UAREA_TO_USER.
Revision 1.118 / (download) - annotate - [select for diffs], Sat May 23 17:08:05 2009 UTC (14 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.117: +4 -1
lines
Diff to previous 1.117 (colored)
- Add lwp_pctr(), get an LWP's preemption/ctxsw counter. - Fix a preemption bug in CURCPU_IDLE_P() that can lead to a bogus assertion failure on DEBUG kernels. - Fix MP/preemption races with timecounter detachment.
Revision 1.117 / (download) - annotate - [select for diffs], Wed Feb 4 21:17:39 2009 UTC (15 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base4,
yamt-nfs-mp-base3,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base2,
nick-hppapmap-base,
jym-xensuspend-base
Branch point for: jym-xensuspend
Changes since 1.116: +4 -2
lines
Diff to previous 1.116 (colored)
PR kern/36183 problem with ptrace and multithreaded processes Fix the crashy test case that Thor provided.
Revision 1.116 / (download) - annotate - [select for diffs], Sun Jan 11 02:45:55 2009 UTC (15 years, 2 months ago) by christos
Branch: MAIN
CVS Tags: mjf-devfs2-base
Changes since 1.115: +2 -5
lines
Diff to previous 1.115 (colored)
merge christos-time_t
Revision 1.115 / (download) - annotate - [select for diffs], Wed Nov 12 12:36:28 2008 UTC (15 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: haad-nbase2,
haad-dm-base2,
haad-dm-base,
christos-time_t-nbase,
christos-time_t-base,
ad-audiomp2-base,
ad-audiomp2
Changes since 1.114: +5 -4
lines
Diff to previous 1.114 (colored)
Remove LKMs and switch to the module framework, pass 1. Proposed on tech-kern@.
Revision 1.114 / (download) - annotate - [select for diffs], Tue Oct 21 12:22:00 2008 UTC (15 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: netbsd-5-base,
netbsd-5-0-RC1,
matt-mips64-base2
Branch point for: nick-hppapmap,
netbsd-5
Changes since 1.113: +2 -2
lines
Diff to previous 1.113 (colored)
Correction to previous.
Revision 1.113 / (download) - annotate - [select for diffs], Tue Oct 21 12:16:59 2008 UTC (15 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.112: +3 -1
lines
Diff to previous 1.112 (colored)
Provide a small inline wrapper for sysent::sy_call() and use it to store the active syscall description in struct lwp. To be used at some future point to prevent unloading of modules that provide syscalls, while the syscalls are in use.
Revision 1.112 / (download) - annotate - [select for diffs], Tue Oct 21 11:51:23 2008 UTC (15 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.111: +2 -2
lines
Diff to previous 1.111 (colored)
Undo revivesa damage to userret().
Revision 1.111 / (download) - annotate - [select for diffs], Thu Oct 16 08:52:20 2008 UTC (15 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: haad-dm-base1
Changes since 1.110: +1 -2
lines
Diff to previous 1.110 (colored)
Another revivesa merge botch.
Revision 1.110 / (download) - annotate - [select for diffs], Wed Oct 15 20:32:46 2008 UTC (15 years, 5 months ago) by wrstuden
Branch: MAIN
Changes since 1.109: +2 -1
lines
Diff to previous 1.109 (colored)
Pre-declare struct sadata_vp here so we avoid a circular dependency between this file and savar.h. This lets lwp.h stand on its own. I do not understand why compiling kernels on i386 did not catch this.
Revision 1.109 / (download) - annotate - [select for diffs], Wed Oct 15 06:51:21 2008 UTC (15 years, 5 months ago) by wrstuden
Branch: MAIN
Changes since 1.108: +11 -1
lines
Diff to previous 1.108 (colored)
Merge wrstuden-revivesa into HEAD.
Revision 1.108 / (download) - annotate - [select for diffs], Tue Oct 7 09:48:27 2008 UTC (15 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4
Changes since 1.107: +5 -2
lines
Diff to previous 1.107 (colored)
- Replace lwp_t::l_sched_info with union: pointer and timeslice. - Change minimal time-quantum to ~20 ms. - Thus remove unneeded pool in M2, and unused sched_lwp_exit(). - Do not increase l_slptime twice for SCHED_4BSD (regression fix).
Revision 1.107 / (download) - annotate - [select for diffs], Thu Aug 28 06:21:22 2008 UTC (15 years, 6 months ago) by yamt
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2
Changes since 1.106: +1 -12
lines
Diff to previous 1.106 (colored)
remove now unused spc_dunlock.
Revision 1.106 / (download) - annotate - [select for diffs], Fri Jul 25 00:48:59 2008 UTC (15 years, 7 months ago) by uwe
Branch: MAIN
CVS Tags: simonb-wapbl-nbase,
simonb-wapbl-base
Changes since 1.105: +2 -2
lines
Diff to previous 1.105 (colored)
Declare lwp_exit_switchaway() __dead. Add infinite loop at the end of lwp_exit_switchaway() to convince gcc that cpu_switchto(NULL, ...) is really not going to return in that case. Exposed by gcc4.3. Reported on tech-kern by Alexander Shishkin.
Revision 1.105 / (download) - annotate - [select for diffs], Thu Jul 3 15:15:40 2008 UTC (15 years, 8 months ago) by ad
Branch: MAIN
Branch point for: haad-dm
Changes since 1.104: +1 -5
lines
Diff to previous 1.104 (colored)
lwp_lock: this can't be simplified for the UP case, as races still exist.
Revision 1.104 / (download) - annotate - [select for diffs], Wed Jul 2 19:44:10 2008 UTC (15 years, 8 months ago) by rmind
Branch: MAIN
Changes since 1.103: +1 -2
lines
Diff to previous 1.103 (colored)
Remove outdated comments, and historical CCPU_SHIFT. Make resched_cpu static, const-ify ccpu. Note: resched_cpu is not correct, should be revisited. OK by <ad>.
Revision 1.103 / (download) - annotate - [select for diffs], Wed Jul 2 19:38:37 2008 UTC (15 years, 8 months ago) by rmind
Branch: MAIN
Changes since 1.102: +3 -4
lines
Diff to previous 1.102 (colored)
Remove locking of p_stmutex from sched_pstats(), protect l_pctcpu with p_lock, and make l_cpticks lock-less. Should fix PR/38296. Reviewed (slightly different version) by <ad>.
Revision 1.102 / (download) - annotate - [select for diffs], Sun Jun 22 00:06:36 2008 UTC (15 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-1,
wrstuden-revivesa-base
Changes since 1.101: +2 -2
lines
Diff to previous 1.101 (colored)
Adjust to separate kcpuset_t and cpuset_t.
Revision 1.101 / (download) - annotate - [select for diffs], Tue Jun 17 09:08:52 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.100: +3 -2
lines
Diff to previous 1.100 (colored)
Update a comment.
Revision 1.100 / (download) - annotate - [select for diffs], Mon Jun 16 09:45:20 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4
Changes since 1.99: +2 -2
lines
Diff to previous 1.99 (colored)
lwp_lock_retry: return a pointer to the lock acquired. No functional change.
Revision 1.99 / (download) - annotate - [select for diffs], Sun Jun 15 20:32:57 2008 UTC (15 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.98: +2 -2
lines
Diff to previous 1.98 (colored)
Don't expose struct cpuset, share the l_affinity flag and only allocate it if we need to. This is not a compatible change, but the syscalls are new enough and they don't need to be versioned. Approved by rmind.
Revision 1.98 / (download) - annotate - [select for diffs], Mon Jun 2 13:58:07 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Branch point for: simonb-wapbl
Changes since 1.97: +2 -2
lines
Diff to previous 1.97 (colored)
If vfork(), we want the LWP to run fast and on the same CPU as its parent, so that it can reuse the VM context and cache footprint on the local CPU.
Revision 1.97 / (download) - annotate - [select for diffs], Sat May 31 21:26:01 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.96: +3 -3
lines
Diff to previous 1.96 (colored)
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.96 / (download) - annotate - [select for diffs], Mon May 19 12:48:54 2008 UTC (15 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: hpcarm-cleanup-nbase
Changes since 1.95: +4 -1
lines
Diff to previous 1.95 (colored)
- Make periodical balancing mandatory. - Fix priority raising in M2 (broken after making runqueues mandatory).
Revision 1.95 / (download) - annotate - [select for diffs], Fri May 16 09:22:00 2008 UTC (15 years, 10 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-pf42-base2
Changes since 1.94: +1 -2
lines
Diff to previous 1.94 (colored)
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible. The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion. - Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned. - Always run copy-on-write on buffers returned from ffs_balloc(). - Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664. Welcome to 4.99.63 Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
Revision 1.94 / (download) - annotate - [select for diffs], Tue May 6 18:40:57 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base2
Branch point for: wrstuden-revivesa
Changes since 1.93: +4 -3
lines
Diff to previous 1.93 (colored)
LOCKDEBUG: try to speed it up a bit by not using so much global state. This will break the build briefly but will be followed by another commit to fix that..
Revision 1.93 / (download) - annotate - [select for diffs], Fri May 2 17:40:30 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.92: +3 -1
lines
Diff to previous 1.92 (colored)
PR kern/38141 lookup/vfs_busy acquire rwlock recursively Until the code paths are fixed properly, put in place an ugly workaround to make it safe to recursively acquire a read lock on a mount.
Revision 1.92 / (download) - annotate - [select for diffs], Tue Apr 29 13:02:03 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.91: +21 -1
lines
Diff to previous 1.91 (colored)
Move override of curlwp into lwp.h.
Revision 1.91 / (download) - annotate - [select for diffs], Mon Apr 28 20:24:10 2008 UTC (15 years, 10 months ago) by martin
Branch: MAIN
Changes since 1.90: +1 -8
lines
Diff to previous 1.90 (colored)
Remove clause 3 and 4 from TNF licenses
Revision 1.90 / (download) - annotate - [select for diffs], Mon Apr 28 15:36:01 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.89: +23 -4
lines
Diff to previous 1.89 (colored)
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.89 / (download) - annotate - [select for diffs], Sun Apr 27 11:37:48 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Changes since 1.88: +20 -1
lines
Diff to previous 1.88 (colored)
- Rename crit_enter/crit_exit to kpreempt_disable/kpreempt_enable. DragonflyBSD uses the crit names for something quite different. - Add a kpreempt_disabled function for diagnostic assertions. - Add inline versions of kpreempt_enable/kpreempt_disable for primitives. - Make some more changes for preemption safety to the x86 pmap.
Revision 1.88 / (download) - annotate - [select for diffs], Thu Apr 24 18:39:25 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.87: +2 -2
lines
Diff to previous 1.87 (colored)
Merge proc::p_mutex and proc::p_smutex into a single adaptive mutex, since we no longer need to guard against access from hardware interrupt handlers. Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the child process share the parent's lock so that signal state may be kept in sync. Partially addresses PR kern/37437.
Revision 1.87 / (download) - annotate - [select for diffs], Sat Apr 12 17:16:09 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX,
yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.86: +2 -2
lines
Diff to previous 1.86 (colored)
Move the LW_BOUND flag into the thread-private flag word. It can be tested by other threads/CPUs but that is only done when the LWP is known to be in a quiescent state (for example, on a run queue).
Revision 1.86 / (download) - annotate - [select for diffs], Sat Apr 12 17:02:09 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.85: +6 -10
lines
Diff to previous 1.85 (colored)
Take the run queue management code from the M2 scheduler, and make it mandatory. Remove the 4BSD run queue code. Effects: - Pluggable scheduler is only responsible for co-ordinating timeshared jobs. - All systems run with per-CPU run queues. - 4BSD scheduler gets processor sets / affinity. - 4BSD scheduler gets a significant peformance boost on some workloads. Discussed on tech-kern@.
Revision 1.85 / (download) - annotate - [select for diffs], Thu Mar 27 19:06:52 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Branch point for: christos-time_t
Changes since 1.84: +3 -1
lines
Diff to previous 1.84 (colored)
Make rusage collection per-LWP and collate in the appropriate places. cloned threads need a little bit more work but the locking needs to be fixed first.
Revision 1.84 / (download) - annotate - [select for diffs], Sun Mar 23 00:46:25 2008 UTC (16 years ago) by rmind
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
ad-socklock-base1
Changes since 1.83: +2 -2
lines
Diff to previous 1.83 (colored)
G/C l->l_locks. OK by <ad>.
Revision 1.83 / (download) - annotate - [select for diffs], Sat Mar 22 18:04:42 2008 UTC (16 years ago) by ad
Branch: MAIN
Changes since 1.82: +3 -2
lines
Diff to previous 1.82 (colored)
Commit the "per-CPU" select patch. This is the result of much work and testing by rmind@ and myself. Which approach to use is still being discussed, but I would like to get this out of my working tree. If we decide to use a different approach there is no problem with revisiting this.
Revision 1.82 / (download) - annotate - [select for diffs], Sat Mar 22 17:53:34 2008 UTC (16 years ago) by ad
Branch: MAIN
Changes since 1.81: +4 -2
lines
Diff to previous 1.81 (colored)
LWP_CACHE_CREDS: instead of testing (l_cred != p_cred), use a per-LWP flag bit to indicate a pending cred update. Avoids touching one item of shared state in the syscall path.
Revision 1.81 / (download) - annotate - [select for diffs], Fri Mar 21 21:55:01 2008 UTC (16 years ago) by ad
Branch: MAIN
Changes since 1.80: +2 -1
lines
Diff to previous 1.80 (colored)
Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
Revision 1.80 / (download) - annotate - [select for diffs], Mon Mar 17 16:54:51 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base
Changes since 1.79: +3 -10
lines
Diff to previous 1.79 (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.79 / (download) - annotate - [select for diffs], Sun Mar 9 15:39:14 2008 UTC (16 years ago) by rmind
Branch: MAIN
Changes since 1.78: +1 -2
lines
Diff to previous 1.78 (colored)
Remove include of sys/pset.h in sys/lwp.h header. Include it in few appropriate sources.
Revision 1.78 / (download) - annotate - [select for diffs], Sat Jan 26 17:55:29 2008 UTC (16 years, 1 month ago) by rmind
Branch: MAIN
CVS Tags: nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
hpcarm-cleanup-base
Branch point for: mjf-devfs2,
keiichi-mipv6
Changes since 1.77: +2 -1
lines
Diff to previous 1.77 (colored)
sched_setparam: fix the case when incorrect (according to the class) in-kernel priority is used. Reported by <drochner>. Minor fixes for scheduling calls to conform the POSIX: - If pid is equal to zero, use the calling process; - In case of permission problem, return EPERM instead of EACESS; - sched_setscheduler() should return previously used policy; - pthread_* calls should return the error code or zero; Should fix the namespace problems (and builds of some packages): - Move cpuset_t defintion from pset.h to sched.h; - Remove the #include of pset.h in pthread.h;
Revision 1.77 / (download) - annotate - [select for diffs], Tue Jan 15 03:37:12 2008 UTC (16 years, 2 months ago) by rmind
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase,
bouyer-xeni386-base
Changes since 1.76: +42 -2
lines
Diff to previous 1.76 (colored)
Implementation of processor-sets, affinity and POSIX real-time extensions. Add schedctl(8) - a program to control scheduling of processes and threads. Notes: - This is supported only by SCHED_M2; - Migration of LWP mechanism will be revisited; Proposed on: <tech-kern>. Reviewed by: <ad>.
Revision 1.76 / (download) - annotate - [select for diffs], Mon Jan 7 16:12:56 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.75: +2 -1
lines
Diff to previous 1.75 (colored)
Patch up sysctl locking: - Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
Revision 1.75 / (download) - annotate - [select for diffs], Wed Dec 26 16:01:38 2007 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.74: +2 -2
lines
Diff to previous 1.74 (colored)
Merge more changes from vmlocking2, mainly: - Locking improvements. - Use pool_cache for more items.
Revision 1.74 / (download) - annotate - [select for diffs], Tue Dec 25 18:33:48 2007 UTC (16 years, 2 months ago) by perry
Branch: MAIN
Changes since 1.73: +2 -2
lines
Diff to previous 1.73 (colored)
Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h
Revision 1.73 / (download) - annotate - [select for diffs], Sat Dec 22 01:14:53 2007 UTC (16 years, 3 months ago) by yamt
Branch: MAIN
Changes since 1.72: +3 -3
lines
Diff to previous 1.72 (colored)
use binuptime for l_stime/l_rtime.
Revision 1.72 / (download) - annotate - [select for diffs], Thu Dec 13 02:45:09 2007 UTC (16 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-kmem-base3
Changes since 1.71: +4 -1
lines
Diff to previous 1.71 (colored)
add ddb "whatis" command. inspired from solaris ::whatis dcmd.
Revision 1.71 / (download) - annotate - [select for diffs], Mon Dec 3 17:14:59 2007 UTC (16 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base2,
yamt-kmem-base,
vmlocking2-base2,
vmlocking2-base1,
vmlocking-nbase,
reinoud-bufcleanup-nbase,
reinoud-bufcleanup-base,
jmcneill-pm-base,
cube-autoconf-base,
cube-autoconf
Branch point for: yamt-kmem,
vmlocking2,
bouyer-xeni386
Changes since 1.70: +3 -2
lines
Diff to previous 1.70 (colored)
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.70 / (download) - annotate - [select for diffs], Sun Dec 2 14:55:49 2007 UTC (16 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.69: +2 -1
lines
Diff to previous 1.69 (colored)
mi_switch: adjust so that we don't have to hold the old LWP locked across context switch, since cpu_switchto() can be slow under certain conditions. From rmind@ with adjustments by me.
Revision 1.69 / (download) - annotate - [select for diffs], Mon Nov 12 23:12:00 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2,
bouyer-xenamd64-base
Changes since 1.68: +3 -1
lines
Diff to previous 1.68 (colored)
Add _lwp_ctl() system call: provides a bidirectional, per-LWP communication area between processes and the kernel.
Revision 1.68 / (download) - annotate - [select for diffs], Tue Nov 6 00:42:45 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: jmcneill-base
Changes since 1.67: +16 -14
lines
Diff to previous 1.67 (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.67 / (download) - annotate - [select for diffs], Thu Nov 1 21:54:10 2007 UTC (16 years, 4 months ago) by dsl
Branch: MAIN
Branch point for: mjf-devfs
Changes since 1.66: +2 -2
lines
Diff to previous 1.66 (colored)
Shave cycles of syscall entry by adding __predict_false() to LWP_CACHE_CREDS()
Revision 1.66 / (download) - annotate - [select for diffs], Tue Oct 9 19:00:15 2007 UTC (16 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-x86pmap-base4,
yamt-x86pmap-base3,
vmlocking-base
Branch point for: bouyer-xenamd64
Changes since 1.65: +2 -1
lines
Diff to previous 1.65 (colored)
Import of SCHED_M2 - the implementation of new scheduler, which is based on the original approach of SVR4 with some inspirations about balancing and migration from Solaris. It implements per-CPU runqueues, provides a real-time (RT) and time-sharing (TS) queues, ready to support a POSIX real-time extensions, and also prepared for the support of CPU affinity. The following lines in the kernel config enables the SCHED_M2: no options SCHED_4BSD options SCHED_M2 The scheduler seems to be stable. Further work will come soon. http://mail-index.netbsd.org/tech-kern/2007/10/04/0001.html http://www.netbsd.org/~rmind/m2/mysql_bench_ro_4x_local.png Thanks <ad> for the benchmarks!
Revision 1.65 / (download) - annotate - [select for diffs], Mon Oct 8 20:06:20 2007 UTC (16 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.64: +3 -1
lines
Diff to previous 1.64 (colored)
Merge run time accounting changes from the vmlocking branch. These make the LWP "start time" per-thread instead of per-CPU.
Revision 1.64 / (download) - annotate - [select for diffs], Thu Sep 6 23:59:01 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base2,
yamt-x86pmap-base,
nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Changes since 1.63: +2 -2
lines
Diff to previous 1.63 (colored)
- Fix sleepq_block() to return EINTR if the LWP is cancelled. Pointed out by yamt@. - Introduce SOBJ_SLEEPQ_LIFO, and use for LWPs sleeping via _lwp_park. libpthread enqueues most waiters in LIFO order to try and wake LWPs that ran recently, since their working set is more likely to be in cache. Matching the order of insertion reduces the time spent searching queues in the kernel. - Do not boost the priority of LWPs sleeping in _lwp_park, just let them sleep at their user priority level. LWPs waiting for some I/O event in the kernel still wait with kernel priority and get woken more quickly. This needs more evaluation and is to be revisited, but the effect on a variety of benchmarks is positive. - When waking LWPs, do not send an IPI to remote CPUs or arrange for the current LWP to be preempted unless (a) the thread being awoken has kernel priority and has higher priority than the currently running thread or (b) the remote CPU is idle.
Revision 1.63 / (download) - annotate - [select for diffs], Tue Aug 7 19:00:42 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
Branch point for: matt-armv6
Changes since 1.62: +6 -1
lines
Diff to previous 1.62 (colored)
- Fix a bug with _lwp_park() where if the computed wakeup time was under 1 microsecond into the future, the thread could enter an untimed sleep. - Change the signature of _lwp_park() to accept an lwpid_t and second hint pointer, but do so in a way that remains compatible with older pthread libraries. This can be used to wake another thread before the calling thread goes asleep, saving at least one syscall + involuntary context switch. This turns out to be a fairly large win on the condvar benchmarks that I have tried. - Mark some more syscalls MP safe.
Revision 1.62 / (download) - annotate - [select for diffs], Mon Jul 9 21:54:10 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base,
mjf-ufs-trans-base,
matt-mips64-base,
matt-mips64,
hpcarm-cleanup
Branch point for: nick-csl-alignment,
jmcneill-pm
Changes since 1.61: +2 -2
lines
Diff to previous 1.61 (colored)
Don't use lwp_t in areas not protected by _KERNEL.
Revision 1.61 / (download) - annotate - [select for diffs], Mon Jul 9 21:11:32 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.60: +13 -14
lines
Diff to previous 1.60 (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.60 / (download) - annotate - [select for diffs], Thu May 17 14:51:42 2007 UTC (16 years, 10 months ago) by yamt
Branch: MAIN
Changes since 1.59: +29 -71
lines
Diff to previous 1.59 (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.59 / (download) - annotate - [select for diffs], Thu May 17 12:05:03 2007 UTC (16 years, 10 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-idlelwp-base8
Changes since 1.58: +2 -2
lines
Diff to previous 1.58 (colored)
mark lwp_exit() and exit1() __noreturn__.
Revision 1.58 / (download) - annotate - [select for diffs], Thu Mar 29 17:34:39 2007 UTC (16 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: thorpej-atomic-base,
thorpej-atomic
Changes since 1.57: +57 -55
lines
Diff to previous 1.57 (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.57 / (download) - annotate - [select for diffs], Wed Mar 21 18:25:59 2007 UTC (17 years ago) by ad
Branch: MAIN
Changes since 1.56: +4 -2
lines
Diff to previous 1.56 (colored)
Improvements to lwp_wait1(), for PR kern/35932: - Better detect simple cycles of threads calling _lwp_wait and return EDEADLK. Does not handle deeper cycles like t1 -> t2 -> t3 -> t1. - If there are multiple threads in _lwp_wait, then make sure that targeted waits take precedence over waits for any LWP to exit. - When checking for deadlock, also count the number of zombies currently in the process as potentially reapable. Whenever a zombie is murdered, kick all waiters to make them check again for deadlock. - Add more comments. Also, while here: - LOCK_ASSERT -> KASSERT in some places - lwp_free: change boolean arguments to type 'bool'. - proc_free: let lwp_free spin waiting for the last LWP to exit, there's no reason to do it here.
Revision 1.56 / (download) - annotate - [select for diffs], Fri Mar 2 15:57:06 2007 UTC (17 years ago) by skd
Branch: MAIN
Branch point for: vmlocking,
reinoud-bufcleanup,
mjf-ufs-trans
Changes since 1.55: +2 -2
lines
Diff to previous 1.55 (colored)
Fix probable typo. LW_UNPARKED conflicted with LW_PENDSIG. Without this I see lots of threaded apps getting stuck in parked state. Ok'ed by Christos.
Revision 1.55 / (download) - annotate - [select for diffs], Thu Mar 1 14:55:06 2007 UTC (17 years ago) by ad
Branch: MAIN
Changes since 1.54: +2 -1
lines
Diff to previous 1.54 (colored)
Fix a couple of races with LWP park/unpark.
Revision 1.54 / (download) - annotate - [select for diffs], Tue Feb 27 15:07:28 2007 UTC (17 years ago) by yamt
Branch: MAIN
Changes since 1.53: +5 -5
lines
Diff to previous 1.53 (colored)
typedef pri_t and use it instead of int and u_char.
Revision 1.53 / (download) - annotate - [select for diffs], Mon Feb 26 10:50:30 2007 UTC (17 years ago) by yamt
Branch: MAIN
CVS Tags: ad-audiomp-base,
ad-audiomp
Changes since 1.52: +1 -2
lines
Diff to previous 1.52 (colored)
move wchan_t and syncobj_t to a dedicated header to simplify dependencies. fix "XXX wchan_t".
Revision 1.52 / (download) - annotate - [select for diffs], Mon Feb 26 09:20:52 2007 UTC (17 years ago) by yamt
Branch: MAIN
Changes since 1.51: +27 -3
lines
Diff to previous 1.51 (colored)
implement priority inheritance.
Revision 1.51 / (download) - annotate - [select for diffs], Thu Feb 22 04:38:03 2007 UTC (17 years ago) by matt
Branch: MAIN
Changes since 1.50: +2 -2
lines
Diff to previous 1.50 (colored)
Fix lossage from boolean_t -> bool and updated x86 bus_dma.
Revision 1.50 / (download) - annotate - [select for diffs], Tue Feb 20 18:08:43 2007 UTC (17 years, 1 month ago) by dsl
Branch: MAIN
Changes since 1.49: +5 -1
lines
Diff to previous 1.49 (colored)
Add lwp members needed for the SYSCALL_TIMES option. These are added unconditionally to avoid having the structure size be option dependant.
Revision 1.49 / (download) - annotate - [select for diffs], Sat Feb 17 22:31:45 2007 UTC (17 years, 1 month ago) by pavel
Branch: MAIN
Changes since 1.48: +17 -14
lines
Diff to previous 1.48 (colored)
Change the process/lwp flags seen by userland via sysctl back to the P_*/L_* naming convention, and rename the in-kernel flags to avoid conflict. (P_ -> PK_, L_ -> LW_ ). Add back the (now unused) LSDEAD constant. Restores source compatibility with pre-newlock2 tools like ps or top. Reviewed by Andrew Doran.
Revision 1.48 / (download) - annotate - [select for diffs], Thu Feb 15 15:13:10 2007 UTC (17 years, 1 month ago) by ad
Branch: MAIN
Branch point for: yamt-idlelwp
Changes since 1.47: +3 -2
lines
Diff to previous 1.47 (colored)
Restore proc::p_userret in a limited way for Linux compat. XXX
Revision 1.47 / (download) - annotate - [select for diffs], Fri Feb 9 21:55:37 2007 UTC (17 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: post-newlock2-merge
Changes since 1.46: +238 -79
lines
Diff to previous 1.46 (colored)
Merge newlock2 to head.
Revision 1.46 / (download) - annotate - [select for diffs], Tue Oct 24 10:05:45 2006 UTC (17 years, 4 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5,
yamt-splraiseipl-base4,
yamt-splraiseipl-base3,
wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
wrstuden-fixsa,
newlock2-nbase,
newlock2-base,
netbsd-4-base,
netbsd-4-0-RELEASE,
netbsd-4-0-RC5,
netbsd-4-0-RC4,
netbsd-4-0-RC3,
netbsd-4-0-RC2,
netbsd-4-0-RC1,
netbsd-4-0-1-RELEASE,
netbsd-4-0,
netbsd-4,
matt-nb4-arm-base,
matt-nb4-arm
Changes since 1.45: +4 -1
lines
Diff to previous 1.45 (colored)
Remove specificdata_setspecific_nowait() as result of discussion on tech-kern. Add _lwp_getspecific_by_lwp() to get lwp specific data from other lwp's. Protected by #ifdef _LWP_API_PRIVATE. Approved by: Jason Thorpe <thorpej@netbsd.org>
Revision 1.45 / (download) - annotate - [select for diffs], Wed Oct 11 04:51:06 2006 UTC (17 years, 5 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.44: +2 -1
lines
Diff to previous 1.44 (colored)
Don't free specificdata in lwp_exit2(); it's not safe to block there. Instead, free an LWP's specificdata from lwp_exit() (if it is not the last LWP) or exit1() (if it is the last LWP). For consistency, free the proc's specificdata from exit1() as well. Add lwp_finispecific() and proc_finispecific() functions to make this more convenient.
Revision 1.44 / (download) - annotate - [select for diffs], Wed Oct 11 03:46:42 2006 UTC (17 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.43: +3 -3
lines
Diff to previous 1.43 (colored)
Upon further reflection, make lwp_{get,set}specific() operate only on curlwp. Things that need to operate on "other" LWPs will get a very special (and very private) API for their needs.
Revision 1.43 / (download) - annotate - [select for diffs], Sun Oct 8 22:57:11 2006 UTC (17 years, 5 months ago) by christos
Branch: MAIN
Changes since 1.42: +2 -1
lines
Diff to previous 1.42 (colored)
add {proc,lwp}_initspecific and use them to init proc0 and lwp0.
Revision 1.42 / (download) - annotate - [select for diffs], Sun Oct 8 04:28:44 2006 UTC (17 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.41: +11 -2
lines
Diff to previous 1.41 (colored)
Add specificdata support to procs and lwps, each providing their own wrappers around the speicificdata subroutines. Also: - Call the new lwpinit() function from main() after calling procinit(). - Move some pool initialization out of kern_proc.c and into files that are directly related to the pools in question (kern_lwp.c and kern_ras.c). - Convert uipc_sem.c to proc_{get,set}specific(), and eliminate the p_ksems member from struct proc.
Revision 1.41 / (download) - annotate - [select for diffs], Sun Jul 30 21:58:11 2006 UTC (17 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-splraiseipl-base,
yamt-pdpolicy-base9,
yamt-pdpolicy-base8,
yamt-pdpolicy-base7,
rpaulo-netinet-merge-pcb-base,
abandoned-netbsd-4-base,
abandoned-netbsd-4
Branch point for: yamt-splraiseipl,
newlock2
Changes since 1.40: +1 -2
lines
Diff to previous 1.40 (colored)
Single-thread updates to the process credential.
Revision 1.40 / (download) - annotate - [select for diffs], Thu Jul 20 00:17:10 2006 UTC (17 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.39: +2 -3
lines
Diff to previous 1.39 (colored)
Try again.. Move l_cred into the startzero section, and fix the define. Doesn't change the layout of struct lwp.
Revision 1.39 / (download) - annotate - [select for diffs], Wed Jul 19 22:06:09 2006 UTC (17 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.38: +2 -2
lines
Diff to previous 1.38 (colored)
Move l_acflag into the section that gets zeroed in newlwp().
Revision 1.38 / (download) - annotate - [select for diffs], Wed Jul 19 21:11:38 2006 UTC (17 years, 8 months ago) by ad
Branch: MAIN
Changes since 1.37: +11 -2
lines
Diff to previous 1.37 (colored)
- Hold a reference to the process credentials in each struct lwp. - Update the reference on syscall and user trap if p_cred has changed. - Collect accounting flags in the LWP, and collate on LWP exit.
Revision 1.37 / (download) - annotate - [select for diffs], Mon May 22 13:43:54 2006 UTC (17 years, 10 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pdpolicy-base6,
yamt-pdpolicy-base5,
simonb-timecounters-base,
gdamore-uart-base,
gdamore-uart,
chap-midi-nbase,
chap-midi-base
Changes since 1.36: +9 -1
lines
Diff to previous 1.36 (colored)
introduce macros, UAREA_TO_USER and USER_TO_UAREA, to convert uarea VA into a pointer to struct user and vice versa, so that MD code can change the layout in uarea.
Revision 1.36 / (download) - annotate - [select for diffs], Sat Apr 1 00:57:34 2006 UTC (17 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pdpolicy-base4,
yamt-pdpolicy-base3,
elad-kernelauth-base
Branch point for: chap-midi
Changes since 1.35: +7 -7
lines
Diff to previous 1.35 (colored)
PR/32809: Pavel Cahyna: Conflicting flags in l_flag and p_flag are causing ps(1) to print incorrect information. Annotate the flags in the header files to make sure that flags are not being re-used and move flags so that there are no conflicts.
Revision 1.35 / (download) - annotate - [select for diffs], Thu Mar 30 07:08:40 2006 UTC (17 years, 11 months ago) by pavel
Branch: MAIN
Changes since 1.34: +11 -11
lines
Diff to previous 1.34 (colored)
Following the example of sys/sys/proc.h rev. 1.164, pad the LWP flags to 8 chars. It is nicer and makes the comparison of proc and lwp flags much easier.
Revision 1.34 / (download) - annotate - [select for diffs], Wed Mar 29 23:02:31 2006 UTC (17 years, 11 months ago) by cube
Branch: MAIN
Changes since 1.33: +2 -1
lines
Diff to previous 1.33 (colored)
Rework the _lwp* and sa_* families of syscalls so some details can be handled differently depending on the emulation. This paves the way for COMPAT_NETBSD32 support of our pthread system.
Revision 1.33 / (download) - annotate - [select for diffs], Thu Feb 16 20:17:20 2006 UTC (18 years, 1 month ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5,
yamt-pdpolicy-base2,
yamt-pdpolicy-base,
peter-altq-base
Branch point for: yamt-pdpolicy,
peter-altq,
elad-kernelauth
Changes since 1.32: +2 -2
lines
Diff to previous 1.32 (colored)
Change "inline" back to "__inline" in .h files -- C99 is still too new, and some apps compile things in C89 mode. C89 keywords stay. As per core@.
Revision 1.32 / (download) - annotate - [select for diffs], Sat Dec 24 19:01:28 2005 UTC (18 years, 2 months ago) by perry
Branch: MAIN
Branch point for: yamt-uio_vmspace,
simonb-timecounters,
rpaulo-netinet-merge-pcb
Changes since 1.31: +3 -3
lines
Diff to previous 1.31 (colored)
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
Revision 1.31 / (download) - annotate - [select for diffs], Sat Dec 3 17:10:46 2005 UTC (18 years, 3 months ago) by christos
Branch: MAIN
CVS Tags: ktrace-lwp-base
Changes since 1.30: +3 -3
lines
Diff to previous 1.30 (colored)
Make sure that multiple header inclusion is done, it uses consistent names, and it is around the whole code of the file, not parts of it.
Revision 1.30 / (download) - annotate - [select for diffs], Sat Oct 1 06:12:44 2005 UTC (18 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-vop-base3,
yamt-vop-base2,
yamt-vop-base,
yamt-vop,
yamt-readahead-pervnode,
yamt-readahead-perfile,
yamt-readahead-base3,
yamt-readahead-base2,
yamt-readahead-base,
yamt-readahead,
thorpej-vnode-attr-base,
thorpej-vnode-attr
Changes since 1.29: +1 -2
lines
Diff to previous 1.29 (colored)
simplify lwp exit code.
Revision 1.29 / (download) - annotate - [select for diffs], Sat Jul 16 17:50:26 2005 UTC (18 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.28: +3 -1
lines
Diff to previous 1.28 (colored)
Don't leak kernel external variables to userland. This file is included from <sys/sysctl.h>.
Revision 1.28 / (download) - annotate - [select for diffs], Sun May 29 21:16:44 2005 UTC (18 years, 9 months ago) by christos
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.27: +2 -2
lines
Diff to previous 1.27 (colored)
make the wait channel volatile.
Revision 1.27 / (download) - annotate - [select for diffs], Wed May 4 23:22:44 2005 UTC (18 years, 10 months ago) by yamt
Branch: MAIN
Changes since 1.26: +5 -6
lines
Diff to previous 1.26 (colored)
move l_private and l_locks so that they're initialized.
Revision 1.26 / (download) - annotate - [select for diffs], Sat Feb 26 22:25:34 2005 UTC (19 years ago) by perry
Branch: MAIN
CVS Tags: yamt-km-base4,
yamt-km-base3,
netbsd-3-base,
kent-audio2-base
Branch point for: netbsd-3
Changes since 1.25: +2 -2
lines
Diff to previous 1.25 (colored)
nuke trailing whitespace
Revision 1.25 / (download) - annotate - [select for diffs], Sun Jan 30 16:56:27 2005 UTC (19 years, 1 month ago) by chs
Branch: MAIN
CVS Tags: yamt-km-base2
Changes since 1.24: +2 -1
lines
Diff to previous 1.24 (colored)
define a new LWP flag which indicates that we're in the process of doing a context switch. use this on sparc and sparc64 to avoid trying to access user memory (writing the register windows back to the stack) in this case (since it's both unnecessary and wrong).
Revision 1.24 / (download) - annotate - [select for diffs], Sun Jul 18 21:26:52 2004 UTC (19 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: yamt-km-base,
kent-audio1-beforemerge,
kent-audio1-base,
kent-audio1
Branch point for: yamt-km,
kent-audio2
Changes since 1.23: +1 -2
lines
Diff to previous 1.23 (colored)
remove unneeded include.
Revision 1.23 / (download) - annotate - [select for diffs], Sun Jun 20 18:55:58 2004 UTC (19 years, 9 months ago) by hannken
Branch: MAIN
Changes since 1.22: +2 -1
lines
Diff to previous 1.22 (colored)
- Add flag L_COWINPROGRESS to struct lwp to avoid recursion when doing copy-on-write. - Change VFS_SNAPSHOT() to return the snapshot vnode locked. - Make the IO path for copy-on-write and snapshot-read more lightweight. Avoids deadlocks where vn_rdwr(...READ...) has a shared lock and needs to copy-on-write. Avoids deadlocks/panics where to clean pages the copy-on-write needs to allocate pages for its VOP_PUTPAGES(). L_COWINPROGRESS part approved by: Jason R. Thorpe <thorpej@netbsd.org>
Revision 1.22 / (download) - annotate - [select for diffs], Tue May 18 11:59:11 2004 UTC (19 years, 10 months ago) by yamt
Branch: MAIN
Changes since 1.21: +1 -2
lines
Diff to previous 1.21 (colored)
use lockstatus() instead of L_BIGLOCK to check if we're holding a biglock. fix PR/25595.
Revision 1.21 / (download) - annotate - [select for diffs], Sun Mar 14 01:08:47 2004 UTC (20 years ago) by cl
Branch: MAIN
CVS Tags: netbsd-2-base,
netbsd-2-0-base,
netbsd-2-0-RELEASE,
netbsd-2-0-RC5,
netbsd-2-0-RC4,
netbsd-2-0-RC3,
netbsd-2-0-RC2,
netbsd-2-0-RC1,
netbsd-2-0-1-RELEASE
Branch point for: netbsd-2-0,
netbsd-2
Changes since 1.20: +2 -2
lines
Diff to previous 1.20 (colored)
add kernel part of concurrency support for SA on MP systems - move per VP data into struct sadata_vp referenced from l->l_savp * VP id * lock on VP data * LWP on VP * recently blocked LWP on VP * queue of LWPs woken which ran on this VP before sleep * faultaddr * LWP cache for upcalls * upcall queue - add current concurrency and requested concurrency variables - make process exit run LWP on all VPs - make signal delivery consider all VPs - make timer events consider all VPs - add sa_newsavp to allocate new sadata_vp structure - add sa_increaseconcurrency to prepare new VP - make sys_sa_setconcurrency request new VP or wakeup idle VP - make sa_yield lower current concurrency - set sa_cpu = VP id in upcalls - maintain cached LWPs per VP
Revision 1.20 / (download) - annotate - [select for diffs], Sun Mar 14 00:45:21 2004 UTC (20 years ago) by cl
Branch: MAIN
Changes since 1.19: +2 -4
lines
Diff to previous 1.19 (colored)
g/c sys_sa_unblockyield which has been unused since 2004/01/02
Revision 1.19 / (download) - annotate - [select for diffs], Sun Jan 11 18:37:52 2004 UTC (20 years, 2 months ago) by jdolecek
Branch: MAIN
Changes since 1.18: +1 -2
lines
Diff to previous 1.18 (colored)
ride 1.6ZH version bump - g/c some unused struct lwp and struct proc fields (former reaper stuff)
Revision 1.18 / (download) - annotate - [select for diffs], Sun Jan 4 11:33:31 2004 UTC (20 years, 2 months ago) by jdolecek
Branch: MAIN
Changes since 1.17: +3 -4
lines
Diff to previous 1.17 (colored)
Rearrange process exit path to avoid need to free resources from different process context ('reaper'). From within the exiting process context: * deactivate pmap and free vmspace while we can still block * introduce MD cpu_lwp_free() - this cleans all MD-specific context (such as FPU state), and is the last potentially blocking operation; all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free() * process is now immediatelly marked as zombie and made available for pickup by parent; the remaining last lwp continues the exit as fully detached * MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same for both 'process' and 'lwp' exit uvm_lwp_exit() is modified to never block; the u-area memory is now always just linked to the list of available u-areas. Introduce (blocking) uvm_uarea_drain(), which is called to release the excessive u-area memory; this is called by parent within wait4(), or by pagedaemon on memory shortage. uvm_uarea_free() is now private function within uvm_glue.c. MD process/lwp exit code now always calls lwp_exit2() immediatelly after switching away from the exiting lwp. g/c now unneeded routines and variables, including the reaper kernel thread
Revision 1.17 / (download) - annotate - [select for diffs], Fri Jan 2 18:52:17 2004 UTC (20 years, 2 months ago) by cl
Branch: MAIN
Changes since 1.16: +3 -1
lines
Diff to previous 1.16 (colored)
kernel part of no-syscall upcall stack return: libpthread registers an offset between ss_sp and struct sa_stackinfo_t (located in struct __pthread_st) when calling sa_register. The kernel increments the sast_gen counter in struct sastack when an upcall stack is used. libpthread increments the sasi_stackgen counter in struct sa_stackinfo_t when an upcall stack is freed. The kernel compares the two counters to decide if a stack is free or in use. - add struct sa_stackinfo_t with sasi_stackgen to count stack use in userland - add sast_gen to struct sastack to count stack use in kernel - add SA_FLAG_STACKINFO to enable the stackinfo_offset argument in the sa_register syscall - add sa_stackinfo_offset to struct sadata for offset between ss_sp and struct sa_stackinfo_t - add ssize_t stackinfo_offset argument to sa_register, initialize struct sadata's sa_stackinfo_offset from it if SA_FLAG_STACKINFO is set - add sa_getstack, sa_getstack0, sa_stackused and sa_setstackfree functions to find/use/free upcall stacks and use these where appropriate - don't record stack for upcall in sa_upcall0 - pass sau to sa_switchcall instead of l2 (l2 = curlwp in sa_switchcall) - add sa_vp_blocker to struct sadata to pass recently blocked lwp to sa_switchcall - delay finding a stack for blocked upcalls to sa_switchcall - add sa_stacknext to struct sadata pointing to next most likely free upcall stack; also g/c sa_stackslist in struct sadata and sast_list in struct sastack - add L_SA_WOKEN flag: LWP is on sa_woken queue - add L_SA_RECYCLE flag: LWP should be recycled in sa_setwoken - replace l_upcallstack with L_SA_WOKEN/L_SA_RECYCLE/L_SA_BLOCKING flags - g/c now unused sast_blocker in struct sastack - make sa_switchcall, sa_upcall0 and sa_upcall_getstate static in kern_sa.c - call sa_upcall_userret only once in userret - split sa_makeupcalls out of sa_upcall_userret and use to process the sa_upcalls queue - on process exit: mark LWPs sleeping in saunblock interruptible; also there are no LWPs sleeping on l->l_upcallstack anymore; also clear sa_wokenq_head to prevent unblocked upcalls additional changes: - cleanup timerupcall sa_vp == curlwp check - add check in sa_yield if we didn't block on our way here and we wouldn't any longer be the LWP on the VP - invalidate sa_vp_ofaultaddr after resolving pagefault
Revision 1.16 / (download) - annotate - [select for diffs], Wed Dec 24 22:42:11 2003 UTC (20 years, 2 months ago) by manu
Branch: MAIN
Changes since 1.15: +2 -1
lines
Diff to previous 1.15 (colored)
Split sys_lwp_suspend, just like sys_lwp_unsuspend is split. We get sys_lwp_suspend, with the sanity checks, and lwp_suspend, with the actual implementation.
Revision 1.15 / (download) - annotate - [select for diffs], Sat Dec 20 18:22:16 2003 UTC (20 years, 3 months ago) by manu
Branch: MAIN
Changes since 1.14: +1 -3
lines
Diff to previous 1.14 (colored)
Introduce lwp_emuldata and the associated hooks. No hook is provided for the exec case, as the emulation already has the ability to intercept that with the e_proc_exec hook. It is the responsability of the emulation to take appropriaye action about lwp_emuldata in e_proc_exec. Patch reviewed by Christos.
Revision 1.14 / (download) - annotate - [select for diffs], Mon Nov 17 22:52:09 2003 UTC (20 years, 4 months ago) by cl
Branch: MAIN
Changes since 1.13: +2 -2
lines
Diff to previous 1.13 (colored)
- use list to keep track of free stacks. - use splay tree for the pagefault check if the thread was running on an upcall stack. => removes the limitation that all upcall stacks need to be adjoining and that all upcall stacks have to be loaded with the 1st sys_sa_stacks call. => enables keeping information associated with a stack in the kernel which makes it simpler to find out which LWP is using a stack. => allows increasing the SA_MAXNUMSTACKS without having to allocate an array of that size.
Revision 1.13 / (download) - annotate - [select for diffs], Mon Nov 3 22:34:51 2003 UTC (20 years, 4 months ago) by cl
Branch: MAIN
Changes since 1.12: +1 -2
lines
Diff to previous 1.12 (colored)
Reimplement VP donation such that multiple unblocked upcalls can be combined. Also prepare for adding VP repossession later. - kern_sa.c: sa_yield/sa_switch: detect if there are pending unblocked upcalls. - kern_sa.c: sa_unblock_userret/sa_setwoken: queue LWPs about to invoke an unblocked upcall on the sa_wokenq. put queued LWPs in a state where they can be put in the cache. notify LWP on the VP about pending upcalls. - kern_sa.c: sa_upcall_userret: check sa_wokenq for pending upcalls, generate unblocked upcalls with multiple event sas - kern_sa.c: sa_vp_repossess/sa_vp_donate: g/c, restore original sa_vp_repossess
Revision 1.12 / (download) - annotate - [select for diffs], Sun Nov 2 16:26:10 2003 UTC (20 years, 4 months ago) by cl
Branch: MAIN
Changes since 1.11: +5 -3
lines
Diff to previous 1.11 (colored)
Cleanup signal delivery for SA processes: General idea: only consider the LWP on the VP for signal delivery, all other LWPs are either asleep or running from waking up until repossessing the VP. - in kern_sig.c:kpsignal2: handle all states the LWP on the VP can be in - in kern_sig.c:proc_stop: only try to stop the LWP on the VP. All other LWPs will suspend in sa_vp_repossess() until the VP-LWP donates the VP. Restore original behaviour (before SA-specific hacks were added) for non-SA processes. - in kern_sig.c:proc_unstop: only return the LWP on the VP - handle sa_yield as case 0 in sa_switch instead of clearing L_SA, add an L_SA_YIELD flag - replace sa_idle by L_SA_IDLE flag since it was either NULL or == sa_vp Also don't output itimerfire overrun warning if the process is already exiting. Also g/c sa_woken because it's not used. Also g/c some #if 0 code.
Revision 1.11 / (download) - annotate - [select for diffs], Tue Sep 16 13:46:26 2003 UTC (20 years, 6 months ago) by cl
Branch: MAIN
Changes since 1.10: +3 -1
lines
Diff to previous 1.10 (colored)
fix SA/pthread pagefault failure: - prevent BLOCKED upcalls on double page faults and during upcalls - make libpthread handle blocked threads which hold locks - prevent UNBLOCKED upcalls from overtaking their BLOCKED upcall this adds a new syscall sa_unblockyield see also http://mail-index.netbsd.org/tech-kern/2003/09/15/0020.html
Revision 1.10 / (download) - annotate - [select for diffs], Sat Sep 13 08:32:18 2003 UTC (20 years, 6 months ago) by jdolecek
Branch: MAIN
Changes since 1.9: +2 -1
lines
Diff to previous 1.9 (colored)
move dupfd from struct proc to struct lwp - it's per-LWP, not per-process; we use curlwp where the lwp is not directly available, i.e. in device open routines briefly discussed on tech-kern
Revision 1.9 / (download) - annotate - [select for diffs], Sat Sep 13 07:56:03 2003 UTC (20 years, 6 months ago) by jdolecek
Branch: MAIN
Changes since 1.8: +2 -3
lines
Diff to previous 1.8 (colored)
move l_ctxlink in struct definition to 'zero' region visually too, to make it more clear that l_ctxlink _is_ zeroed
Revision 1.8 / (download) - annotate - [select for diffs], Mon Jul 28 23:35:21 2003 UTC (20 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.7: +2 -1
lines
Diff to previous 1.7 (colored)
Improve _lwp_wakeup so when it wakes a thread, the target thread thinks ltsleep has been interrupted and thus the target will not think it was a spurious wakeup. (this makes syscalls cancellable for libpthread).
Revision 1.7 / (download) - annotate - [select for diffs], Thu Jul 17 18:16:59 2003 UTC (20 years, 8 months ago) by fvdl
Branch: MAIN
Changes since 1.6: +2 -1
lines
Diff to previous 1.6 (colored)
Changes from Stephan Uphoff to patch problems with LWPs blocking when they shouldn't, and MP.
Revision 1.6 / (download) - annotate - [select for diffs], Tue Feb 4 13:41:48 2003 UTC (21 years, 1 month ago) by yamt
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.5: +2 -2
lines
Diff to previous 1.5 (colored)
constify wait channels of ltsleep/wakeup. they are never dereferenced.
Revision 1.5 / (download) - annotate - [select for diffs], Sun Feb 2 20:34:42 2003 UTC (21 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.4: +2 -2
lines
Diff to previous 1.4 (colored)
Move l_flags to after l_cpu to save 4 bytes on LP64 machines.
Revision 1.4 / (download) - annotate - [select for diffs], Thu Jan 30 19:14:18 2003 UTC (21 years, 1 month ago) by manu
Branch: MAIN
Changes since 1.3: +3 -1
lines
Diff to previous 1.3 (colored)
For cproc_t, use a per thread value instead of a per process value. ifdef out l_emuldata in struct lwp until we actually use it.
Revision 1.3 / (download) - annotate - [select for diffs], Tue Jan 21 04:06:06 2003 UTC (21 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.2: +2 -1
lines
Diff to previous 1.2 (colored)
Do a preliminary switchover of the mach code to lwp's. It compiles now but probably doesn't work. That's for someone who understand this code better.
Revision 1.2 / (download) - annotate - [select for diffs], Sat Jan 18 09:53:16 2003 UTC (21 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.1: +187 -0
lines
Diff to previous 1.1 (colored)
Merge the nathanw_sa branch.
Revision 1.1, Mon Mar 5 22:50:02 2001 UTC (23 years ago) by nathanw
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase,
thorpej_scsipi_beforemerge,
thorpej_scsipi_base,
thorpej-mips-cache-base,
thorpej-mips-cache,
thorpej-devvp-base,
thorpej-devvp,
newlock-base,
newlock,
nathanw_sa_before_merge,
nathanw_sa_base,
kqueue-base,
kqueue,
ifpoll-base,
gmcgarry_ucred_base,
gmcgarry_ucred,
gmcgarry_ctxsw_base,
gmcgarry_ctxsw,
gehenna-devsw-base,
gehenna-devsw,
eeh-devprop-base,
eeh-devprop
Branch point for: nathanw_sa
FILE REMOVED
file lwp.h was initially added on branch nathanw_sa.