21 Commits

Author SHA1 Message Date
attilio
a4281bb884 - Fix the kthread_{suspend, resume, suspend_check}() locking.
In the current code, the locking is completely broken and may lead
  easilly to deadlocks. Fix it by using the proc_mtx, linked to the
  suspending thread, as lock for the operation.  Keep using the
  thread_lock for setting and reading the flag even if it is not entirely
  necessary (atomic ops may do it as well, but this way the code is more
  readable).
- Fix a deadlock within kthread_suspend().
  The suspender should not sleep on a different channel wrt the suspended
  thread, or, otherwise, the awaker should wakeup both. Uniform the
  interface to what the kproc_* counterparts do (sleeping on the same
  channel).
- Change the kthread_suspend_check() prototype.
  kthread_suspend_check() always assumes curthread and must only refer to
  it, so skip the thread pointer as it may be easilly mistaken.
  If curthread is not a kthread, the system will panic.

In collabouration with:	jhb
Tested by:		Giovanni Trematerra
			<giovanni dot trematerra at gmail dot com>
MFC:			2 weeks
2010-01-24 15:07:00 +00:00
julian
c5b50090c7 Add claraifications to the kproc and kthread manpages and link
the kthread_create(9) man page to the kproc(9) page as it had migrated and
people looking for it may need a hand to find its new name.

MFC after:	1 week
2009-08-23 07:48:11 +00:00
trhodes
e8de906c2a Add ENOMEM to the return values.
Remove invalid return values.
Remove reference to non-existent manual pages.
Remove reference to rfork (it does not discuss RFSTOPPED).
Add sys/unistd.h to the list of includes (required for RFSTOPPED).

PR:		126227
Submitted by:	Mateusz Guzik <mjguzik@gmail.com> (based on, original version)
Reviewed by:	jhb, Christoph Mallon <christoph.mallon@gmx.de>
2009-01-27 00:22:16 +00:00
julian
2ddf06099d Document the kproc_kthread_add() call
and fix a small detail of its implementation.
MFC after: 1 week
2008-04-29 22:43:15 +00:00
julian
00b0426d31 Doc police fixes
thanks to: ru@
2007-10-26 16:50:21 +00:00
julian
7ae0237b47 catch up with the code. 2007-10-26 08:28:45 +00:00
julian
c94c51af9f Note the temporary removal of these functions. 2007-10-21 02:45:57 +00:00
ru
10fbbd3d56 Assorted markup fixes and minor wordsmithing.
Approved by:	re
2005-06-15 13:31:23 +00:00
joerg
a4ba66f4df Document that kthread_exit()ing will cause a wakeup(9) on the thread
handle.

MFC after:	1 week
2004-09-24 19:58:47 +00:00
benno
3832720b63 Update the documentation for kthread_create to include the pages argument.
Reviewed by:	sheldonh
Forgotten by:	scottl
2002-10-19 01:39:44 +00:00
alfred
48fe919d3e de-__P() 2002-10-10 00:32:55 +00:00
mpp
52a504f88d ispell sweep of share/man/man9/*. 2002-01-09 11:43:48 +00:00
ru
623da62a5a mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
dd
eaa6ee03b8 mdoc(7) police: remove extraneous .Pp before and/or after .Sh. 2001-07-09 09:54:33 +00:00
ru
05e503d80a mdoc(7) police: sort SEE ALSO xrefs (sort -b -f +2 -3 +1 -2). 2001-07-06 16:46:48 +00:00
jhb
4664d7c8cc - Add 2001 to copyright.
- Kthread functions return an error status, they don't set errno to an
  error status.
- Remove the BUGS section as all the bugs listed have been fixed now.
2001-03-09 03:09:30 +00:00
ru
17ba214098 Prepare for mdoc(7)NG. 2000-12-29 09:18:45 +00:00
jhb
656396e81a Catch up to the changes to the kthread API. 2000-12-15 20:39:35 +00:00
jhb
622e380f74 Beef up the description of the kernel thread API.
Reviewed by:	sheldonh, jasone
2000-11-13 20:34:20 +00:00
mpp
488d906ef4 Typo fix. 2000-10-27 20:55:15 +00:00
markm
b1481ced76 Add some very crude man pages to try to induce folk to work on them.
Agreed to work on them:	jasone
2000-10-24 03:33:24 +00:00