On 16.01.2013 18:47, Jason Cooper wrote:
On Wed, Jan 16, 2013 at 06:32:09PM +0100, Soeren Moch wrote:
On 16.01.2013 09:55, Soeren Moch wrote:
On 16.01.2013 04:24, Soeren Moch wrote:
I did not bisect it, but Marek mentioned earlier that commit e9da6e9905e639b0f842a244bc770b48ad0523e9 in Linux v3.6-rc1 introduced new code for dma allocations. This is probably the root cause for the new (mis-)behavior (due to my tests 3.6.0 is not working anymore).
I don't want to say that Mareks patch is wrong, probably it triggers a bug somewhere else! (in em28xx?)
The em28xx sticks are using isochronous usb transfers. Is there a special handling for that?
I'm looking at that now. It looks like the em28xx wants (as a maximum) 655040 bytes (em28xx-core.c:1088). There are 5 transfer buffers, with 64 max packets and 2047 max packet size (runtime reported max & 0x7ff).
If it actually needs all of that, then the answer may be to just increase coherent_pool= when using that driver. I'll keep digging.
I already tested with 4M coherent pool size and could not see significant improvement. Would it make sense to further increase the buffer size?
Regards, Soeren