On Thu, 18 Mar 2010, Johan Hovold wrote: > Hi, > > A while back I did some initial attempts at unifying the single-urb fifo-based > and the multi-urb dynamically-allocated urb write implementations, but although > the performance results were promising my design at the time was a bit too complex. > > I decided to postpone this and instead turn ftdi_sio into a kfifo-based > generic driver first, but I soon realised that a single urb would not suffice to > achieve maximum throughput. > > So I kept both schemes to avoid any regressions and instead made the > prepare_write_buffer interface fit them both. > > Today I thought some more about the unification and came up with a new design > that is both simple and clean, and that not only achieves maximum throughput > but also does so at significantly lower CPU-usage for small writes (and only > slightly higher for 2k ones). It currently uses two pre-allocated urbs (and > buffers) so in contrast to the current multi-urb writes it does no allocations > during runtime and also puts less pressure on the host-stack queues. > > This also simplifies the prepare_write_buffer interface. Wow! My suggestion sure got some quick results. The performance results sound impressive. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html