libusb performance on 8.1
Daniel O'Connor
doconnor at gsoft.com.au
Tue Feb 22 05:57:01 UTC 2011
On 19/02/2011, at 1:38, Hans Petter Selasky wrote:
> Which harddisk driver are you using? ATA?
Yes.
> My guess would be that taskqueues() in the HDD drivers are using swi-queues,
> instead of ordinary lower-priority queues. For example in sys/dev/ata I found:
>
> TASK_INIT(&request->task, 0, ata_completed, request);
> ATA_DEBUG_RQ(request, "finish taskqueue_swi");
> taskqueue_enqueue(taskqueue_swi, &request->task);
>
> Which should perhaps just be "taskqueue_thread" instead of "taskqueue_swi".
I'll try changing it and seeing if it improves things.
> I've noticed during USB debugging that if certain non-DATA-xfer SCSI commands
> take time to complete, the whole system is waiting apparently, at least X11.
> This might indicate that synchronous code is being run from interrupt context.
Interesting.. Although in the dual core case I wouldn't have thought it would be a huge deal would it?
I had to give the dual core system I was using for testing back so I am currently using a single core with a non-ACHI capable chipset. I'll try and get access to the previous system again for some more testing.
Do you have any suggestions for how I can find out exactly where it's sleeping in libusb? Or I suppose once it's in the kernel..
--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
More information about the freebsd-usb
mailing list