Re: [RFC PATCH v6 6/9] media: tegra: Add Tegra210 Video input driver

From: Sowjanya Komatineni
Date: Fri Apr 10 2020 - 14:59:19 EST



On 4/10/20 11:47 AM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


09.04.2020 21:28, Sowjanya Komatineni ÐÐÑÐÑ:
On 4/9/20 7:50 AM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


09.04.2020 06:38, Sowjanya Komatineni ÐÐÑÐÑ:
...
Tested with 3 buffers and by checking outstanding buffers in process by
VI hw and holding to start capture till one outstanding buffer in
process by HW.
Also tested with 2 buffers without checking for outstanding buffers.

In both cases, I see same %CPU for the kthreads and is < 1%

I don't see where buffers queue max limit is set to 3 in the code, but
should be okay if CPU isn't getting hogged. Looking forward to v7.
Sorry, correction I meant to say pre-queued buffers before streaming not
num_buffers.
vb2 queue min_buffers_needed was set to 3 as part of one of the issue
debug in earlier version which actually was irrelevant to that issue and
should have been removed. Will remove min_buffers_needed in v7.

I added checking for outstanding requests by hardware just to be safer
although we may not hit this case of issuing more than 1 outstanding
frame capture to VI hardware as capture_frame() waits till it sees frame
start event through HW syncpt increment before proceeding for memory
write and issuing next frame capture.

So issuing frame captures are synchronized with frame start and frame end.

Will remove min_buffers_needed and also explicit check for outstanding
buffers in v7.
It's still not clear to me how the "pre-queued buffers" will be limited.
I'll take another look at the v7.

OK, but I don't understand what you mean by limit on pre-queued buffers.

I was saying vb2 queue has min_buffers_needed which was set to 3 where streaming will start only after 3 buffers got queued up.

Regarding outstanding condition check to make sure no more than 2 syncpt trigger requests are in FIFO I added it to be safe where mostly we may not hit and also I only see capture start thread holding for it during initial frame capture as it issues single shot for 1st 2 buffers capture and holds 3 buffers which is already queued till at least one of those 2 issued capture is done to make sure of not triggering syncpt condition when fifo already has 2 pending.

In v7, will remove setting min_buffers_needed and also outstanding syncpt trigger check.