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) > _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; > > _______________________________________________ > 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"Received on Thu Aug 13 2009 - 14:54:05 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:53 UTC