usb kthreads

From: Andrew Thompson <thompsa_at_FreeBSD.org>
Date: Thu, 13 Aug 2009 00:30:02 -0700
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



Index: dev/usb/usb_process.c
===================================================================
--- dev/usb/usb_process.c	(revision 196086)
+++ dev/usb/usb_process.c	(working copy)
_at__at_ -64,9 +64,9 _at__at_
 
 #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)
_at__at_ -49,7 +49,7 _at__at_ 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;
 
Received on Thu Aug 13 2009 - 05:49:28 UTC

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