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






_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to