NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Subject: Re: kern/52126

The following reply was made to PR kern/52126; it has been noted by GNATS.

From: (Michael van Elst)
Subject: Re: Subject: Re: kern/52126
Date: Sat, 19 Aug 2017 08:41:28 -0000 (UTC) (Matt Brocklehurst) writes:
 > I've tried a mixture of different drives, they all give the "unable to stop
 > EDMA" error on boot.
 The corresponding code in Linux does almost the same. Differences are:
 - it not only waits for the IDLE flag, but also for the CACHEEMPTY flag
   before disabling DMA.
 - it waits up to 15ms (instead of 10ms) before disabling DMA
 - it disables DMA even when the idle timeout is reached.
 - it waits up to 100ms (instead of the remainder of 10ms) after disabling DMA
   before giving up.
 On the other hand, our timeouts are very imprecise as the driver tries to
 sleep for 1 millisecond, which is impossible with HZ=100. A sleep for
 mstohz(1) will sleep 0 ticks, i.e. it will only yield the CPU to other
 LWPs. It is likely that the required delays are not met.
                                 Michael van Elst
                                 "A potential Snark may lurk in every tree."

Home | Main Index | Thread Index | Old Index