From: Baoyou Xie <baoyou.xie@linaro.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>,
Jun Nie <jun.nie@linaro.org>,
wim@iguana.be, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
linux-watchdog@vger.kernel.org,
devicetree <devicetree@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Shawn Guo <shawnguo@kernel.org>,
"xie.baoyou" <xie.baoyou@zte.com.cn>,
chen.chaokai@zte.com.cn, wang.qiang01@zte.com.cn
Subject: Re: [PATCH v6 3/3] watchdog: zx2967: add watchdog controller driver for ZTE's zx2967 family
Date: Wed, 1 Feb 2017 11:29:15 +0800 [thread overview]
Message-ID: <CA+DQWkyfgx7U4GPkCKhg0zCyOkAT3z3pRU57uu6ccZSZG5d8mA@mail.gmail.com> (raw)
In-Reply-To: <20170130165359.GA20288@roeck-us.net>
[-- Attachment #1: Type: text/plain, Size: 3522 bytes --]
On 31 January 2017 at 00:53, Guenter Roeck <linux@roeck-us.net> wrote:
> On Fri, Jan 27, 2017 at 10:40:09AM +0800, Baoyou Xie wrote:
> > On 27 January 2017 at 00:17, Mathieu Poirier <mathieu.poirier@linaro.org
> >
> > wrote:
> >
> > > On Thu, Jan 26, 2017 at 09:32:56AM +0800, Baoyou Xie wrote:
> > > > On 26 January 2017 at 00:23, Mathieu Poirier <
> mathieu.poirier@linaro.org
> > > >
> > > > wrote:
> > > >
> > > > > On Wed, Jan 25, 2017 at 10:44:49AM +0800, Baoyou Xie wrote:
> > > > > > This patch adds watchdog controller driver for ZTE's zx2967
> family.
> > > > > >
> > > > > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org>
> > > > > > ---
> [ ... ]
> > > > > > + reset_control_assert(rstc);
> > > > > > + usleep_range(500, 20000);
> > > > >
> > > > > Alright, I'm officially confused.
> > > > >
> > > > > First and foremost you still haven't provided an explanation as to
> why
> > > > > this is
> > > > > required. Second, in your previous submission you had:
> > > > >
> > > > > mdelay(10);
> > > > >
> > > > > That is a busy loop of 10ms. In this post using usleep_range() is
> a
> > > step
> > > > > in the
> > > > > right direction but the min and max values to wait for don't make
> > > sense.
> > > > > Here
> > > > > you have 500 and 20000, which is 0.5ms and 20ms.
> > > > >
> > > > > In fact, sleeping for 0.5ms is enough.
> > > > we extended the sleeping time to 20ms, the purpose is merging the
> timer
> > > > interrupts. of course, it's happy to replace it with
> usleep_range(500,
> > > > 1000).
> > >
> > > "merging the timer interrupts" - you mean trying to get the WD tick to
> be
> > > closer
> > > to other timers? If so I really don't see why. Timers are
> asynchronous by
> > > nature and there can be dozens of them enabled at any given time.
> > >
> > > Really?
> > Even if the system runs asynchronously, early process may trigger delayed
> > process, for example delayed work queue or timers, we can merge our
> > watchdog timer and those delayed work's timers.
> >
> In the probe function ?
>
> > Furthermore, what happen if we build this driver as module?
> >
> If every driver writer would use that line of argument, booting would
> take much longer than necessary, with every process sitting on unnecessary
> wait or sleep calls for perceived "optimization" purposes. Probe functions
> run exactly once, and should be time optimized. You should have an idea
> what the minimum reset hold time is, and follow it.
>
> > But, as i said early, it's a trial optimization but can be instead with
> > usleep_range(500, 1000).
> >
> > In some case, such optimization is helpful. I'd like to talk a story
> here,
> > about before ten years, I pressed a return key in console, you know, in
> > this case, a process be created and exited, so the cpu core that process
> > run at sent an IPI to other CPU, IPI interrupt resulted in the
> performance
> > decreased by 20%, so sad:)
> >
> It appears to be somewhat unlikely that each keypress resulted in a driver
> being instantiated. If it did, a sleep in its probe function was the least
> of your problems.
>
> > Unless there is a H/W constraint requiring a delay between the
> > > assert/deassert
> > > of the WD, I don't think adding a wait operation (of any kind) make
> sense.
>
> Correct.
>
>
I have discussed with hardware and reset driver engineers, It's better to
place usleep_range call into reset driver, so we're happy to remove
usleep_range
here.
So, I will send a new patch that remove it.
> Guenter
>
[-- Attachment #2: Type: text/html, Size: 5287 bytes --]
prev parent reply other threads:[~2017-02-01 3:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-25 2:44 [PATCH v6 1/3] dt: bindings: add documentation for zx2967 family watchdog controller Baoyou Xie
[not found] ` <1485312289-18354-1-git-send-email-baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-01-25 2:44 ` [PATCH v6 2/3] MAINTAINERS: add zx2967 watchdog controller driver to ARM ZTE architecture Baoyou Xie
2017-01-25 2:44 ` [PATCH v6 3/3] watchdog: zx2967: add watchdog controller driver for ZTE's zx2967 family Baoyou Xie
2017-01-25 16:23 ` Mathieu Poirier
2017-01-26 1:32 ` Baoyou Xie
[not found] ` <CA+DQWkxpcHqVfDSGuUK-i4DOVXsYEYo60MG5y_oBDNp+ykEdLQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-26 16:17 ` Mathieu Poirier
2017-01-27 2:40 ` Baoyou Xie
[not found] ` <CA+DQWkyPtndGEz-QYvmKaXoGNKQ69Zqu-aG7tCKnT-Mrmx5Wsw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-30 16:53 ` Guenter Roeck
2017-02-01 3:29 ` Baoyou Xie [this message]
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=CA+DQWkyfgx7U4GPkCKhg0zCyOkAT3z3pRU57uu6ccZSZG5d8mA@mail.gmail.com \
--to=baoyou.xie@linaro.org \
--cc=chen.chaokai@zte.com.cn \
--cc=devicetree@vger.kernel.org \
--cc=jun.nie@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=mathieu.poirier@linaro.org \
--cc=robh+dt@kernel.org \
--cc=shawnguo@kernel.org \
--cc=wang.qiang01@zte.com.cn \
--cc=wim@iguana.be \
--cc=xie.baoyou@zte.com.cn \
/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;
as well as URLs for NNTP newsgroup(s).