[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+Ln22Es+Mtokw91wzUaoWC2yCQHRJDEvW6=U1Rbt2H7PbDOeA@mail.gmail.com>
Date: Tue, 11 Aug 2020 18:28:18 +0200
From: Tomasz Figa <tomasz.figa@...il.com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: Sylwester Nawrocki <s.nawrocki@...sung.com>,
"open list:COMMON CLK FRAMEWORK" <linux-clk@...r.kernel.org>,
Chanwoo Choi <cw00.choi@...sung.com>,
Stephen Boyd <sboyd@...nel.org>,
Mike Turquette <mturquette@...libre.com>,
"moderated list:SAMSUNG SOC CLOCK DRIVERS"
<linux-samsung-soc@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Marek Szyprowski <m.szyprowski@...sung.com>
Subject: Re: [PATCH v2] clk: samsung: Prevent potential endless loop in the
PLL set_rate ops
2020年8月11日(火) 18:24 Krzysztof Kozlowski <krzk@...nel.org>:
>
> On Tue, Aug 11, 2020 at 02:59:07PM +0200, Tomasz Figa wrote:
> > Hi Sylwester,
> >
> > 2020年8月11日(火) 13:25 Sylwester Nawrocki <s.nawrocki@...sung.com>:
> > >
> > > In the .set_rate callback for some PLLs there is a loop polling state
> > > of the PLL lock bit and it may become an endless loop when something
> > > goes wrong with the PLL. For some PLLs there is already (a duplicated)
> > > code for polling with timeout. This patch replaces that code with
> > > the readl_relaxed_poll_timeout_atomic() macro and moves it to a common
> > > helper function, which is then used for all the PLLs. The downside
> > > of switching to the common macro is that we drop the cpu_relax() call.
> >
> > Tbh. I'm not sure what effect was exactly expected from cpu_relax() in
> > the functions which already had timeout handling. Could someone shed
> > some light on this?
>
> For us, it should not matter much, except:
> 1. when on A9 with ARM_ERRATA_754327, but we do not enable it on our
> platforms,
> 2. it is a generic pattern for busy loops.
>
> On other architectures it could mean something (e.g. yield to other
> hyper-threading CPU).
Okay, thanks for confirming that it doesn't matter for us.
Now, I wonder if the readx_poll_*() helpers are supposed to take all
of those into account or on systems which would benefit from such
operations, it would be the caller's responsibility.
Best regards,
Tomasz
Powered by blists - more mailing lists