Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1251170
| From | "Christopher Hall" <christopher.s.hall@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v4 1/4] Produce system time from correlated clocksource |
| Date | 2015-10-20 02:20 +0200 |
| Message-ID | <qlsOK-3LO-9@gated-at.bofh.it> (permalink) |
| References | <qiWSZ-4U-3@gated-at.bofh.it> <qiWT0-4U-25@gated-at.bofh.it> <qjdKb-80D-49@gated-at.bofh.it> <qjFZL-8q-7@gated-at.bofh.it> <qjLVw-DS-5@gated-at.bofh.it> |
| Organization | Intel Corporation |
Thomas, On Thu, 15 Oct 2015 01:15:57 -0700, Thomas Gleixner <tglx@linutronix.de> wrote: >> > >> > > +#define SHADOW_HISTORY_DEPTH 7 >> > >> > And that number is 7 because? >> >> Due to power of 2 it will be 8 instead. As above the useful history is >> 8-2*1 >> ms (1 ms is the minimum jiffy length). Array size 4 would not be enough >> history for the DSP which requires 4 ms of history, in the worst case. > > And how exactly becomes 7 magically 8? I'm making the array size a power of two, per your suggestion. In my view, the candidate array sizes are 4 and 8. But the DSP driver code requires that it be at least 8. Here is my reasoning: The number of shadow_timekeeper array elements that contain useful history is n-2 where n is the size of the shadow_timekeeper array. This is true because shadow_timekeeper[shadow_index] is a copy of tk_core.timekeeper (this isn't history). The next entry of the shadow_timekeeper array may be in-flight and contain invalid information, because update_wall_time() makes changes to the next entry of shadow timekeeper outside of the sequence lock. If that occurs, get_correlated_timestamp() would not be notified of this change through a change in sequence number. Combining these two requirements, the candidate array sizes and their effective history sizes is: Array Size Effective History (in elements) ========== =============================== 4 2 8 6 16 14 update_wall_clock() checks that the number of elapsed cycles is >= tk->cycle_interval before performing any updates to shadow_timekeeper. The minimum cycle count (and minimum time) that is contained in each history element is equal to cycle_interval which represents a time period of 1/HZ seconds. The smallest configurable period for cycle_interval is 1 ms (in cycles). Each history element, therefore, is guaranteed to contain 1 ms of history for all kernel configurations. For correct operation of the DSP using the proposed ART->system time API we need at least 4 ms of history. To guarantee this much history is available, the array size needs to be 8. Array Size Minimum Effective History (in ms) ========== ================================= 4 2 8 6 <---- 16 14 Does this make sense for the choice of array size 8? > Make it a seperate function which can hand in the information and > leave the PTP specific sample/conversion function alone. OK. The audio driver code will conform to the original correlated clocksource API. FYI, I will be away from work and email until 10/28. Any responses will be delayed until then. Thanks, Chris -- 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 — Next in thread | Find similar | Unroll thread
Re: [PATCH v4 1/4] Produce system time from correlated clocksource "Christopher Hall" <christopher.s.hall@intel.com> - 2015-10-20 02:20 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource John Stultz <john.stultz@linaro.org> - 2015-10-20 02:40 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Richard Cochran <richardcochran@gmail.com> - 2015-10-20 11:00 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Thomas Gleixner <tglx@linutronix.de> - 2015-10-20 12:50 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Richard Cochran <richardcochran@gmail.com> - 2015-10-20 14:00 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Richard Cochran <richardcochran@gmail.com> - 2015-10-20 17:00 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Thomas Gleixner <tglx@linutronix.de> - 2015-10-20 21:20 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Richard Cochran <richardcochran@gmail.com> - 2015-10-20 21:40 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource John Stultz <john.stultz@linaro.org> - 2015-10-20 22:20 +0200
Re: [PATCH v4 1/4] Produce system time from correlated clocksource Thomas Gleixner <tglx@linutronix.de> - 2015-10-21 09:50 +0200
csiph-web