usb kthreads
Julian Elischer
julian at elischer.org
Thu Aug 13 16:54:05 UTC 2009
Andrew Thompson wrote:
> Hi,
>
>
> Here is an aesthetic patch to change the usb kernel processes to threads,
> this hides them from the usual 'ps' output. Please test and review.
>
> 1290 ?? DL 0:00.00 [usbus0]
> [lots and lots more...]
> 1309 ?? DL 0:00.00 [usbus4]
>
> After the patch they can be seen as kernel threads.
>
> PID TID COMM TDNAME CPU PRI STATE WCHAN
> 0 100000 kernel swapper 0 68 sleep sched
> 0 100009 kernel firmware taskq 0 92 sleep -
> 0 100020 kernel kqueue taskq 0 92 sleep -
> 0 100021 kernel acpi_task_0 0 92 sleep -
> 0 100022 kernel acpi_task_1 0 92 sleep -
> 0 100023 kernel acpi_task_2 0 92 sleep -
> 0 100027 kernel thread taskq 0 92 sleep -
> 0 100031 kernel bwi0 taskq 0 16 sleep -
> 0 100032 kernel bwi0 taskq 0 16 sleep -
> 0 100106 kernel usbus0 0 20 sleep wmsg
> 0 100107 kernel usbus0 0 16 sleep wmsg
> 0 100108 kernel usbus0 0 20 sleep wmsg
> 0 100109 kernel usbus0 0 20 sleep wmsg
> [ ... ]
> 0 100127 kernel usbus4 0 20 sleep wmsg
>
>
> Andrew
use kproc_kthread_add()
to create a seoarate usb process and make all the threads belong to
that process.
(kproc_kthread_add() will create a new process the first time
and add more threads to it the more it is run.)
>
>
>
> Index: dev/usb/usb_process.c
> ===================================================================
> --- dev/usb/usb_process.c (revision 196086)
> +++ dev/usb/usb_process.c (working copy)
> @@ -64,9 +64,9 @@
>
> #if (__FreeBSD_version >= 800000)
> #define USB_THREAD_CREATE(f, s, p, ...) \
> - kproc_create((f), (s), (p), RFHIGHPID, 0, __VA_ARGS__)
> -#define USB_THREAD_SUSPEND(p) kproc_suspend(p,0)
> -#define USB_THREAD_EXIT(err) kproc_exit(err)
> + kthread_add((f), (s), NULL, (p), 0, 0, __VA_ARGS__)
> +#define USB_THREAD_SUSPEND(p) kthread_suspend(p,0)
> +#define USB_THREAD_EXIT(err) kthread_exit()
> #else
> #define USB_THREAD_CREATE(f, s, p, ...) \
> kthread_create((f), (s), (p), RFHIGHPID, 0, __VA_ARGS__)
> Index: dev/usb/usb_process.h
> ===================================================================
> --- dev/usb/usb_process.h (revision 196086)
> +++ dev/usb/usb_process.h (working copy)
> @@ -49,7 +49,7 @@ struct usb_process {
> struct cv up_cv;
> struct cv up_drain;
>
> - struct proc *up_ptr;
> + struct thread *up_ptr;
> struct thread *up_curtd;
> struct mtx *up_mtx;
>
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current
mailing list