docs/126227: [patch] kthread(9) refers to non-existent manpage, describes invalid return values

Mateusz Guzik mjguzik at gmail.com
Sun Aug 3 23:10:01 UTC 2008


>Number:         126227
>Category:       docs
>Synopsis:       [patch] kthread(9) refers to non-existent manpage, describes invalid return values
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 03 23:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Mateusz Guzik
>Release:        8.0-CURRENT
>Organization:
>Environment:
FreeBSD eternal 8.0-CURRENT FreeBSD 8.0-CURRENT #24: Wed Jul 23 01:21:38 CEST 2008     f at eternal:/usr/obj/usr/src/sys/ETERNAL  i386

>Description:
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)

>How-To-Repeat:

>Fix:
Proposed patch is attached.

Patch attached with submission follows:

--- share/man/man9/kthread.9.orig	2008-08-03 23:43:40.000000000 +0200
+++ share/man/man9/kthread.9	2008-08-03 23:59:22.000000000 +0200
@@ -23,11 +23,11 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/share/man/man9/kthread.9,v 1.18 2008/04/29 22:43:15 julian Exp $
 .\"
-.Dd October 26, 2007
+.Dd August 3, 2008
 .Dt KTHREAD 9
 .Os
 .Sh NAME
 .Nm kthread_start ,
 .Nm kthread_shutdown ,
@@ -41,24 +41,25 @@
 .In sys/kthread.h
 .Ft void
 .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
 .Fn kthread_resume "struct thread *td"
 .Ft int
 .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"
 .Fa "struct proc **procptr" "struct thread **tdptr"
 .Fa "int flags" "int pages" "char * procname" "const char *fmt" "..."
@@ -140,12 +141,11 @@
 If this argument is
 .Dv NULL ,
 then it is ignored.
 The
 .Fa flags
-argument specifies a set of flags as described in
-.Xr rfork 2 .
+argument can be set to RFSTOPPED, to leave thread in a stopped state.
 The
 .Fa pages
 argument specifies the size of the new kernel thread's stack in pages.
 If 0 is used, the default kernel stack size is allocated.
 The rest of the arguments form a
@@ -272,27 +272,14 @@
 .Pp
 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
+Memmory for thread's stack couldn't be allocated.
 .El
 .Sh SEE ALSO
-.Xr rfork 2 ,
-.Xr exit1 9 ,
 .Xr kproc 9 ,
 .Xr SYSINIT 9 ,
 .Xr wakeup 9
 .Sh HISTORY
 The


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-doc mailing list