From: William Breathitt Gray <vilhelm.gray@gmail.com>
To: David Lechner <david@lechnology.com>
Cc: linux-iio@vger.kernel.org,
Robert Nelson <robertcnelson@gmail.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/8] docs: counter: add unit timer sysfs attributes
Date: Mon, 1 Nov 2021 14:27:55 +0900 [thread overview]
Message-ID: <YX9620RskHAExvcc@shinobu> (raw)
In-Reply-To: <YX9oTuLB1d6CqQOK@shinobu>
[-- Attachment #1: Type: text/plain, Size: 3785 bytes --]
On Mon, Nov 01, 2021 at 01:08:46PM +0900, William Breathitt Gray wrote:
> On Sat, Oct 30, 2021 at 11:40:27AM -0500, David Lechner wrote:
> > On 10/28/21 2:59 AM, William Breathitt Gray wrote:
> > > On Wed, Oct 27, 2021 at 10:30:36AM -0500, David Lechner wrote:
> > >> On 10/27/21 1:46 AM, William Breathitt Gray wrote:
> > >>> On Sat, Oct 16, 2021 at 08:33:39PM -0500, David Lechner wrote:
> > >>>> This documents new unit timer sysfs attributes for the counter
> > >>>> subsystem.
> > >>>>
> > >>>> Signed-off-by: David Lechner <david@lechnology.com>
> > >>>
> > >>> Hello David,
> > >>>
> > >>> The unit timer is effectively a Count in its own right, so instead of
> > >>> introducing new sysfs attributes you can just implement it as another
> > >>> Count in the driver. Count 0 is "QPOSCNT", so set the name of this new
> > >>> Count 1 as "Unit Timer" (or the datasheet naming if more apt) to
> > >>> differentiate the Counts. You can then provide the "unit_timer_enable",
> > >>> "unit_timer_period", and "unit_timer_time" functionalities as respective
> > >>> Count 1 extensions ("enable" and "period") and Count 1 "count".
> > >
> > > Actually if the counter function here is COUNTER_FUNCTION_DECREASE, then
> >
> > It is an increasing counter.
> >
> > > instead of introducing a new "period" extension, define this as a
> > > "ceiling" extension; that's what ceiling represents in the Counter
> > > interface: "the upper limit for the respective counter", which is the
> > > period of a timer counting down to a timeout.
> >
> > In one of the other patches, you made a comment about the semantics
> > of ceiling with relation to the overflow event. We can indeed treat
> > the timer as a counter and the period as the ceiling. However, the
> > unit timer event occurs when the count is equal to the period (ceiling)
> > whereas an overflow event occurs when the count exceeds the ceiling.
> > So what would this event be called in generic counter terms? "timeout"
> > doesn't seem right.
>
> Okay, so COUNTER_EVENT_THRESHOLD would be the respective Counter event
> type for this behavior because the event triggers once a threshold is
> reached (ceiling in this case).
>
> But implementing the unit timer as a counter might not be the best path
> forward as you've mentioned below.
>
> > >
> > > William Breathitt Gray
> > >
> > >>>
> > >>> If you believe it appropriate, you can provide the raw timer ticks via
> > >>> the Count 1 "count" while a nanoseconds interface is provided via a
> > >>> Count 1 extension "timeout" (or something similar).
> > >>>
> >
> > One area where this concept of treating a timer as a counter potentially
> > breaks down is the issue of CPU frequency scaling. By treating the unit
> > timer as a timer, then the kernel could take care of any changes in clock
> > rate internally by automatically adjusting the prescalar and period on
> > rate change events. But if we are just treating it as a counter, then we
> > should probably just have an attribute that provides the clock rate and
> > if we want to support CPU frequency scaling, add an event that indicates
> > that the clock rate changed.
>
> You're right, treating the unit timer as a counter might not be the most
> appropriate interface. Because this is a timer afterall, perhaps
> exposing this via the hrtimer API is better. You then have an existing
> interface available designed for timer configuration, and you can
> leverage the struct hrtimer function callback to handle your timeout
> interrupts.
>
> William Breathitt Gray
Sorry, I think I meant the clockevents framework, not hrtimers. I'm not
as familiar with timers but perhaps you know more than I do here.
William Breathitt Gray
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-11-01 5:28 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-17 1:33 [PATCH 0/8] counter: ti-eqep: implement features for speed measurement David Lechner
2021-10-17 1:33 ` [PATCH 1/8] counter/ti-eqep: implement over/underflow events David Lechner
2021-10-17 11:10 ` Jonathan Cameron
2021-10-25 7:13 ` William Breathitt Gray
2021-10-27 15:23 ` David Lechner
2021-10-28 6:41 ` William Breathitt Gray
2021-10-17 1:33 ` [PATCH 2/8] counter/ti-eqep: add support for direction David Lechner
2021-10-17 11:11 ` Jonathan Cameron
2021-10-25 7:29 ` William Breathitt Gray
2021-10-17 1:33 ` [PATCH 3/8] counter/ti-eqep: add support for unit timer David Lechner
2021-10-17 11:20 ` Jonathan Cameron
2021-10-25 8:48 ` William Breathitt Gray
2021-10-27 15:28 ` David Lechner
2021-10-28 7:48 ` William Breathitt Gray
2021-10-28 13:42 ` David Lechner
2021-10-30 8:35 ` William Breathitt Gray
2021-10-17 1:33 ` [PATCH 4/8] docs: counter: add unit timer sysfs attributes David Lechner
2021-10-17 11:23 ` Jonathan Cameron
2021-10-27 6:46 ` William Breathitt Gray
2021-10-27 15:30 ` David Lechner
2021-10-28 7:59 ` William Breathitt Gray
2021-10-30 16:40 ` David Lechner
2021-11-01 4:08 ` William Breathitt Gray
2021-11-01 5:27 ` William Breathitt Gray [this message]
2021-10-17 1:33 ` [PATCH 5/8] counter/ti-eqep: add support for latched position David Lechner
2021-10-27 7:44 ` William Breathitt Gray
2021-10-27 15:40 ` David Lechner
2021-10-28 8:12 ` William Breathitt Gray
2021-10-17 1:33 ` [PATCH 6/8] docs: counter: add latch_mode and latched_count sysfs attributes David Lechner
2021-10-17 11:26 ` Jonathan Cameron
2021-10-27 7:54 ` William Breathitt Gray
2021-10-27 17:00 ` David Lechner
2021-10-30 1:32 ` William Breathitt Gray
2021-10-30 14:39 ` Jonathan Cameron
2021-11-01 5:11 ` William Breathitt Gray
2021-10-17 1:33 ` [PATCH 7/8] counter/ti-eqep: add support for edge capture unit David Lechner
2021-10-17 11:29 ` Jonathan Cameron
2021-10-27 8:23 ` William Breathitt Gray
2021-10-27 17:28 ` David Lechner
2021-10-17 1:33 ` [PATCH 8/8] docs: counter: add edge_capture_unit_* attributes David Lechner
2021-10-27 8:26 ` William Breathitt Gray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YX9620RskHAExvcc@shinobu \
--to=vilhelm.gray@gmail.com \
--cc=david@lechnology.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robertcnelson@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox