cafe_ccic slowness in VIDIOC_S_FMT
Mitch Bradley
wmb at laptop.org
Sun Jul 8 17:56:30 EDT 2007
David Woodhouse wrote:
> On Sun, 2007-07-08 at 15:04 -0600, Jonathan Corbet wrote:
>
>> David Woodhouse <dwmw2 at infradead.org> wrote:
>>
>>
>>> Do we have a coherent explanation of these problems in the datasheet
>>> and/or errata? Are they planned to be fixed in a future version of the
>>> CAFÉ?
>>>
>> I raised the issue with Marvell early on, but didn't get too far. They
>> seem to think that it works well enough.
>>
>
> We need a better response from Marvell -- 'it works well enough' is just
> not acceptable. We need to know exactly what's going wrong, and
> precisely what the timing constraints are. And ideally, it should be in
> the datasheet.
>
Are we sure that the Marvell chip is the source of the problem? The
Omnivision chip could also be affecting the timing.
> Is your value of 2ms empirical?
>
>
>>> The majority of the problem in this case is the scheduler -- just
>>> changing from msleep(2) to mdelay(2) reduces the time taken for ov7670
>>> init by an order of magnitude (~377 ticks to ~32).
>>>
>> Interesting. I'd made a real effort to get the hard delays out of
>> there, though. Might the real solution be to use hrtimers here?
>>
>
> I suspect hrtimers aren't the answer. It's not the timing system -- it's
> the scheduler. We're runnable almost immediately after we go to sleep --
> but we just don't get the CPU back until a few userspace processes have
> had a turn. I wonder if there's a way to make the scheduler give the CPU
> back immediately -- temporarily setting the process to SCHED_FIFO would
> be an evil hack, but maybe there's a nicer way?
>
>
>> There's a *lot* of registers to write, I hate to hog the CPU for 2ms for
>> every single one of them.
>>
>
> Perhaps we could have a 'bulk write' i2c API where we can submit the
> whole of (for example) the ov7670_default_regs array in one go, and the
> smbus code can immediately do the next write from the IRQ handler?
>
> There's a bunch of places where that kind of thing would be useful.
>
>
More information about the Devel
mailing list