![]() | ||||||||||
Messages in this thread |
I've been involved with the cpia_pp driver (parallel port Webcam), and found that X becomes very sluggish when capturing a stream of images. I suspect that this is due to reading the whole of each frame using parport_read(), which could be up to 200K. In the 2.0 kernel days (pre-parport layer), the cpia_pp driver would do its own parallel port banging, and would actually only read 16 bytes (fifo size) at a time before checking if it needed to reschedule. Now it fetches the whole image using a single call to parport_read(). I did a quick check, and instead of issuing one parport_read for the whole image, I looped round issuing reads of 4096 bytes. The responsiveness of the machine was much improved. Is there any problem with looping calls to parport_read() with a smaller buffer size, and performing cond_resched() each time through the loop? What size of buffer should I use? -- `O O' | Nick.Holloway@pyrites.org.uk // ^ \\ | http://www.pyrites.org.uk/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2005-03-22 11:32 [W:0.461 / U:0.500 seconds] ©2003-2008 Jasper Spaans | ||||||||||