Re: [PATCH V2 2/3] dmaselftest: add memcpy selftest support functions
From: Sinan Kaya
Date: Tue Nov 03 2015 - 11:28:33 EST
On 11/3/2015 11:10 AM, Vinod Koul wrote:
On Tue, Nov 03, 2015 at 08:31:57AM -0600, Timur Tabi wrote:
Sinan Kaya wrote:
Almost all DMA engine drivers come with some sort of selftest code
called from probe. I followed the same design pattern.
As others have said, it appears that's outdated.
Is there a real possibility that the hardware could fail the test
without trashing the system? It seems that if the DMA engine is
faulty, it won't "politely" fail. The whole system will crash or
some memory will get corrupted and you won't know it.
Failing politely would be right thing to do. If DMA starts sending data to
anywhere in system memory due to bug or wrong addresses we can't do
anything to prevent that
I have seen failures in three cases so far. These are the reasons, why I
want to keep these runtime tests around.
1. Bug in ARM64 DMA subsystem.
2. Bug in IOMMU driver.
3. Bug in another newly introduced driver. The new driver would hog the
CPU and won't allow HIDMA interrupts to execute. Therefore, the test
times out.
In my code, when test fails; I abort all transactions in flight and
shutdown and deregister the HIDMA driver.
Of course, there is a small window of oppurtunity; where DMA can dump
data to incorrect place if HW was faulty right before I abort the
transaction.
--
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/