diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-01-13 19:03:23 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-01-13 19:03:23 +0000 |
commit | 0dee809a2dea5c22e790f798c8991d6c47584e93 (patch) | |
tree | 3fed8d0a87880180cb9be6db99f655c4f0d9335b /sys/dev/usb2/controller/usb2_bus.h | |
parent | 4a6646160afda48ebd262b9548fc477b9629a141 (diff) | |
download | FreeBSD-src-0dee809a2dea5c22e790f798c8991d6c47584e93.zip FreeBSD-src-0dee809a2dea5c22e790f798c8991d6c47584e93.tar.gz |
MFp4: //depot/projects/usb@155842
Reduce the number of callback processes to 4 per
USB controller. There are two rough categories:
1) Giant locked USB transfers.
2) Non-Giant locked USB transfers.
On a real system with many USB devices plugged in the
number of processes reported by "ps auxw | grep USBPROC"
was reduced from 40 to 18.
Submitted by: Hans Petter Selasky
Diffstat (limited to 'sys/dev/usb2/controller/usb2_bus.h')
-rw-r--r-- | sys/dev/usb2/controller/usb2_bus.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/usb2/controller/usb2_bus.h b/sys/dev/usb2/controller/usb2_bus.h index 43776fd..c81a7a5 100644 --- a/sys/dev/usb2/controller/usb2_bus.h +++ b/sys/dev/usb2/controller/usb2_bus.h @@ -53,6 +53,13 @@ struct usb2_bus { struct usb2_bus_stat stats_ok; struct usb2_process explore_proc; struct usb2_process roothub_proc; + /* + * There are two callback processes. One for Giant locked + * callbacks. One for non-Giant locked callbacks. This should + * avoid congestion and reduce response time in most cases. + */ + struct usb2_process giant_callback_proc; + struct usb2_process non_giant_callback_proc; struct usb2_bus_msg explore_msg[2]; struct usb2_bus_msg detach_msg[2]; struct usb2_bus_msg attach_msg[2]; |