* Avoid large reads using parport_read() ?
@ 2002-12-30 10:32 Nick Holloway
0 siblings, 0 replies; only message in thread
From: Nick Holloway @ 2002-12-30 10:32 UTC (permalink / raw)
To: linux-kernel
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/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-12-30 10:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-30 10:32 Avoid large reads using parport_read() ? Nick Holloway
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®