[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKohponnT=q5bEgzdSSdPNQnskPMM0BbDdDPR3Cc+Gq5NeK-xg@mail.gmail.com>
Date: Tue, 16 Oct 2012 15:22:26 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Andy Shevchenko <andy.shevchenko@...il.com>
Cc: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Vinod Koul <vinod.koul@...el.com>,
linux-kernel@...r.kernel.org, spear-devel <spear-devel@...t.st.com>
Subject: Re: [PATCH] dmatest: terminate all ongoing transfers before
submitting new one
Hi Andy,
Adding blank lines before and after your replies makes it more readable.
On 16 October 2012 15:05, Andy Shevchenko <andy.shevchenko@...il.com> wrote:
> On Tue, Oct 16, 2012 at 11:56 AM, viresh kumar <viresh.kumar@...aro.org> wrote:
>> Can you try with a large timeout value for the module.
> I tried and the failures were gone.
Ok. So there is no problem with s/w emulation. Good. :)
>> We must get to the root cause of these failures. There may be something more
>> serious which is getting hidden due to this call to terminate().
> My understanding is that. The software LLP emulation runs several
> transactions per active descriptor. Because of a huge load of the
> CPU/DMA some transactions are not done within given timeout. The
> dmatest supplies next block to transfer without doing anything for
> previous one. Under some circumstances the new transfer is queued, and
> immediately after this the callback function is called for _previous_
> transfer. The check condition doesn't recognize which transfer called
> the callback function.
>
> Rough solution is proposed by current patch. Another solution is to
> mark each transfer with id and check done flag and transfer id
> together.
>> Also, the proposed solution might hide some other important errors. We may need
>> to terminate transfers when we found that an error is there in last transfers:
> I think it could be better than first solution, but what do you think
> about marking each transfer with corresponding id?
But dma_test expects the transfer to finish within timeout. If it
doesn't, then that's
an error.
So, for testing your s/w emulation, you must pass higher timeout. And
terminating
transfers for error case would be better, to make them timeout safe.
--
viresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists