Re: usb kthreads

From: Andrew Thompson <andy_at_fud.org.nz>
Date: Fri, 21 Aug 2009 14:56:27 +0200
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.

Andrew
Received on Fri Aug 21 2009 - 10:57:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:54 UTC