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"