Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1241209
| From | Lee Jones <lee.jones@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout |
| Date | 2015-10-07 10:00 +0200 |
| Message-ID | <qgRNM-6WR-9@gated-at.bofh.it> (permalink) |
| References | <qgBIZ-Em-7@gated-at.bofh.it> <qgBIZ-Em-15@gated-at.bofh.it> <qgGfE-7en-21@gated-at.bofh.it> <qgHv4-AR-7@gated-at.bofh.it> <qgHv4-AR-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, 06 Oct 2015, Russell King - ARM Linux wrote: > On Tue, Oct 06, 2015 at 09:51:22PM +0100, Lee Jones wrote: > > On Tue, 06 Oct 2015, Russell King - ARM Linux wrote: > > > On Tue, Oct 06, 2015 at 03:44:00PM +0100, Lee Jones wrote: > > > > Samples are documented to be available every 0.667us, so in theory > > > > the 8 sample deep FIFO should take 5.336us to fill. However, during > > > > thorough testing, it became apparent that filling the FIFO actually > > > > takes closer to 12us. > > > > > > Is that measured? > > > > I measured it using ktime. Hopefully that was adequate. > > > > > > +/* > > > > + * Samples are documented to be available every 0.667us, so in theory > > > > + * the 8 sample deep FIFO should take 5.336us to fill. However, during > > > > + * thorough testing, it became apparent that filling the FIFO actually > > > > + * takes closer to 12us. > > > > + */ > > > > +#define ST_RNG_FILL_FIFO_TIMEOUT 12 > > > > > > I hope you're not using such a precise figure with udelay(). udelay() > > > is not guaranteed to give exactly (or even at least) the delay you > > > request. It's defined to give an approximate delay. > > > > > > Many people have a problem understanding that, so I won't explain why > > > it is that way, just accept that it is and move on... it's not going > > > to magically get "fixed" because someone has just learnt about this. :) > > > > Thanks for the info. I did do testing, again using ktime, to make > > sure and on our platform (is it platform specific?) I measured > > udelay(1) to be ~1100ns. After moving to a 12us timeout and reading > > many MBs of randomness I am yet to receive any more timeouts. > > If you happen to fall back to the software timing loop, udelay(1) will not > be >=1us anymore, but will be slightly shorter. > > That's because the loops_per_jiffy value is calculated as the number of > loops between each timer interrupt - so the period being measured is the > timer period, minus the time it takes for the timer interrupt to run. > The latter is indeterminant. Consequently, the loops_per_jiffy estimate > is always slightly under the real number of loops-per-jiffy, so delays > generated by udelay() and friends will always be slightly short. > > The faster your HZ value, the bigger the error. The longer the interrupt > handler takes, the bigger the error. Thanks for taking the time to explain. > IIRC, Linus recommends a x2 factor on delays, especially timeouts generated > by these functions. In this implementation it shouldn't matter too much either way. Even when the timeouts were prolific, bandwidth was not reduced due to the quick turn-round of the subsystem. I don't foresee any impact on bandwidth if we were to raise the timeout either; in fact, I doubt we'd ever see a timeout again. -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RESEND 1/3] hwrng: st: dt: Fix trivial typo in node address Lee Jones <lee.jones@linaro.org> - 2015-10-06 16:50 +0200
[PATCH 3/3] hwrng: st: Use real-world device timings for timeout Lee Jones <lee.jones@linaro.org> - 2015-10-06 16:50 +0200
Re: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-10-06 21:40 +0200
Re: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-10-06 23:00 +0200
Re: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout Lee Jones <lee.jones@linaro.org> - 2015-10-07 10:00 +0200
Re: [PATCH 3/3] hwrng: st: Use real-world device timings for timeout Lee Jones <lee.jones@linaro.org> - 2015-10-06 23:00 +0200
Re: [RESEND 1/3] hwrng: st: dt: Fix trivial typo in node address Herbert Xu <herbert@gondor.apana.org.au> - 2015-10-06 17:40 +0200
csiph-web