Bug 126227

Summary: [patch] kthread(9) refers to non-existent manpage, describes invalid return values
Product: Documentation Reporter: Mateusz Guzik <mjguzik>
Component: Books & ArticlesAssignee: Tom Rhodes <trhodes>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description Mateusz Guzik 2008-08-04 00:10:00 UTC
I've found a bunch of problems:
- values that can be used in the flags argument for khtread_add are declared in sys/unistd.h, so I believe that file should be mentioned
- the only supported flag is RFSTOPPED, which is not described in rfork(2) (as it's kernel-only)
- If I understand kthread_add correctly, the only case of failure returns ENOMEM

- this manpage refers to non-existent exit1(9)

Fix: Proposed patch is attached.

Patch attached with submission follows:
Comment 1 dfilter service freebsd_committer freebsd_triage 2009-01-27 00:22:47 UTC
Author: trhodes
Date: Tue Jan 27 00:22:16 2009
New Revision: 187746
URL: http://svn.freebsd.org/changeset/base/187746

Log:
  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>

Modified:
  head/share/man/man9/kthread.9

Modified: head/share/man/man9/kthread.9
==============================================================================
--- head/share/man/man9/kthread.9	Mon Jan 26 23:17:19 2009	(r187745)
+++ head/share/man/man9/kthread.9	Tue Jan 27 00:22:16 2009	(r187746)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 26, 2007
+.Dd January 26, 2009
 .Dt KTHREAD 9
 .Os
 .Sh NAME
@@ -43,12 +43,6 @@
 .Fn kthread_start "const void *udata"
 .Ft void
 .Fn kthread_shutdown "void *arg" "int howto"
-.Ft int
-.Fo kthread_add
-.Fa "void (*func)(void *)" "void *arg" "struct proc *procp"
-.Fa "struct thread **newtdpp" "int flags" "int pages"
-.Fa "const char *fmt" ...
-.Fc
 .Ft void
 .Fn kthread_exit "void"
 .Ft int
@@ -57,6 +51,13 @@
 .Fn kthread_suspend "struct thread *td" "int timo"
 .Ft void
 .Fn kthread_suspend_check "struct thread *td"
+.In sys/unistd.h
+.Ft int
+.Fo kthread_add
+.Fa "void (*func)(void *)" "void *arg" "struct proc *procp"
+.Fa "struct thread **newtdpp" "int flags" "int pages"
+.Fa "const char *fmt" ...
+.Fc
 .Ft int
 .Fo kproc_kthread_add
 .Fa "void (*func)(void *)" "void *arg"
@@ -142,8 +143,12 @@ If this argument is
 then it is ignored.
 The
 .Fa flags
-argument specifies a set of flags as described in
-.Xr rfork 2 .
+argument may be set to
+.Dv RFSTOPPED
+to leave the thread in a stopped state.
+The caller must call
+.Fn sched_add
+to start the thread.
 The
 .Fa pages
 argument specifies the size of the new kernel thread's stack in pages.
@@ -274,23 +279,10 @@ The
 .Fn kthread_add
 function will fail if:
 .Bl -tag -width Er
-.It Bq Er EAGAIN
-The system-imposed limit on the total
-number of processes under execution would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROC .
-.It Bq Er EINVAL
-The
-.Dv RFCFDG
-flag was specified in the
-.Fa flags
-parameter.
+.It Bq Er ENOMEM
+Memory for a thread's stack could not be allocated.
 .El
 .Sh SEE ALSO
-.Xr rfork 2 ,
-.Xr exit1 9 ,
 .Xr kproc 9 ,
 .Xr SYSINIT 9 ,
 .Xr wakeup 9
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 2 Tom Rhodes freebsd_committer freebsd_triage 2009-01-27 00:23:57 UTC
State Changed
From-To: open->patched

Different version of your patch committed to HEAD, thanks 
for the submission! 


Comment 3 Tom Rhodes freebsd_committer freebsd_triage 2009-01-27 00:23:57 UTC
Responsible Changed
From-To: freebsd-doc->trhodes

Over to me.
Comment 4 Tom Rhodes freebsd_committer freebsd_triage 2012-07-21 16:48:22 UTC
State Changed
From-To: patched->closed

Changes have been merged for awhile now, thanks.