Hi, Paul Jones <p.jones@xxxxxxxxxx> writes: > First DMA to first IRQ = 116us. > > Second DMA to second IRQ = 107us. > > These seem fairly stable as the last request in a 500+MB transfer had > exactly the same timings. > > Each IRQ is taking around 14us to handle, during which most of the > time the ep->dev->lock is locked (only released in the done function > whilst calling the callback). > > Setting up DMA is taking around 5us to handle. > > Measured end-to-end performance: 135MB/s (145MB/s with tweaked > max_sector). That’s not bad given that the DMA is only managing > 153MB/s. > > Yousaf: is there a way to get an IRQ on a stall/fifo full/etc. to see > if some throttling is going on? Any other parts of the code that would > be useful to have timing on? > > Are there any tools to measure host to device raw performance (max > bulk throughput)? max bulk or max MSC BOT ? For MSC you can use dd. For max bulk, you'd have to write something up with libusb and probably hack f_sourcesink.c a bit to always requeue a completed usb_request and never process anything. -- balbi
Attachment:
signature.asc
Description: PGP signature