usb kthreads
Julian Elischer
julian at elischer.org
Fri Aug 21 15:31:30 UTC 2009
Andrew Thompson wrote:
> On 13/08/2009, at 18:54, Julian Elischer <julian at elischer.org> wrote:
>
>> 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.)
>
> I have found a problem with this use of kproc_kthread_add where all the
> threads can exit (unload all hci modules) and the proc exits. On the
> next thread add it panics on a stale proc pointer. It may be easier just
> to use kthread_create which adds on proc0.
just make the last one out clear the proc pointer.
>
> Andrew
> _______________________________________________
> 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