linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Vasily Khoruzhick <anarsoul@gmail.com>
Cc: Yangtao Li <tiny.windzz@gmail.com>,
	Mark Rutland <mark.rutland@arm.com>,
	daniel.lezcano@linaro.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	bjorn.andersson@linaro.org, mchehab+samsung@kernel.org,
	paulmck@linux.ibm.com, Stefan Wahren <stefan.wahren@i2se.com>,
	linux-pm@vger.kernel.org, Chen-Yu Tsai <wens@csie.org>,
	Jagan Teki <jagan@amarulasolutions.com>,
	andy.gross@linaro.org, rui.zhang@intel.com,
	devicetree <devicetree@vger.kernel.org>,
	marc.w.gonzalez@free.fr, edubezval@gmail.com,
	enric.balletbo@collabora.com, Rob Herring <robh+dt@kernel.org>,
	Jonathan.Cameron@huawei.com,
	arm-linux <linux-arm-kernel@lists.infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Olof Johansson <olof@lixom.net>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 2/3] thermal: sun50i: add thermal driver for h6
Date: Tue, 21 May 2019 09:47:23 +0200	[thread overview]
Message-ID: <20190521074723.s3hcrnpc5pkdreqe@flea> (raw)
In-Reply-To: <CA+E=qVe82xXPBXpgyLgt2ME6EjGMWWMVvD5eU-b3ntQk_okMdg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1943 bytes --]

On Fri, May 17, 2019 at 12:21:57PM -0700, Vasily Khoruzhick wrote:
> On Sun, May 12, 2019 at 6:39 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > +static int tsens_get_temp(void *data, int *temp)
> > > +{
> > > +     struct tsensor *s = data;
> > > +     struct tsens_device *tmdev = s->tmdev;
> > > +     int val;
> > > +
> > > +     regmap_read(tmdev->regmap, tmdev->chip->temp_data_base +
> > > +                 0x4 * s->id, &val);
> > > +
> > > +     if (unlikely(val == 0))
> > > +             return -EBUSY;
> >
> > I'm not sure why a val equals to 0 would be associated with EBUSY?
>
> First few reads of temp data return 0, and in case of H6 (and A64) it
> means max temperature, so kernel does emergency shutdown. I used
> -ETIMEDOUT as a workaround in my tree, but it's not appropriate here
> either. Any suggestions are welcome.

If we can use the interrupts and wait for a value to be converted
before we read, then we should do that.

> > Also, it's not in a fast path, so you can drop the unlikely. Chances
> > are it's not that unlikely anyway.
>
> As I said earlier, it's just few samples after start up.

That's not really my point though. unlikely is tricky to get right,
because the compiler has his own meaning of what exactly unlikely
means statistically to be able to do the right branching
optimisations.

However, this particular real case scenario might not have the same
probability, which might result in a poor optimisation choice due to
the unlikely being there.

Moreover, this probability can evolve in the future. For example,
let's assume that we enable dynamic PM in the driver. Starting from
there, most of the reads become "first" reads, and your unlikely case
becomes the likely one.

My point was that, because of this, and because of the fact that it's
really not a hot path, we should just drop it.

Maxime

--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2019-05-21  7:47 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-12  8:26 [PATCH 0/3] add thermal driver for h6 Yangtao Li
2019-05-12  8:26 ` [PATCH 1/3] arm64: defconfig: add allwinner sid support Yangtao Li
2019-05-12 13:25   ` Maxime Ripard
2019-05-12  8:26 ` [PATCH 2/3] thermal: sun50i: add thermal driver for h6 Yangtao Li
2019-05-12 13:39   ` Maxime Ripard
2019-05-12 21:41     ` Ondřej Jirman
2019-05-16 15:02       ` Maxime Ripard
2019-05-16 17:36         ` Ondřej Jirman
2019-05-16 18:10         ` Frank Lee
2019-05-17  7:31           ` Maxime Ripard
2019-05-17 17:19             ` Frank Lee
2019-05-21  7:41               ` Maxime Ripard
2019-05-16 17:51     ` Frank Lee
2019-05-16 21:11       ` Ondřej Jirman
2019-05-17  7:36       ` Maxime Ripard
2019-05-17 17:27         ` Frank Lee
2019-05-21  8:05           ` Maxime Ripard
2019-05-21 10:27             ` Ondřej Jirman
2019-05-21 14:27               ` Maxime Ripard
2019-05-21 17:33                 ` Ondřej Jirman
2019-05-17 19:21     ` Vasily Khoruzhick
2019-05-21  7:47       ` Maxime Ripard [this message]
2019-05-12 22:16   ` Ondřej Jirman
2019-05-16 18:06     ` Frank Lee
2019-05-16 18:29       ` Ondřej Jirman
2019-05-17 16:34         ` Frank Lee
2019-05-19 14:22           ` Ondřej Jirman
2019-05-20 10:59             ` Maxime Ripard
2019-05-25 18:48             ` Frank Lee
2019-05-25 18:51               ` Frank Lee
2019-05-25 19:53               ` Vasily Khoruzhick
2019-05-26  1:24               ` Ondřej Jirman
2019-05-12 22:39   ` Ondřej Jirman
2019-05-13 10:01     ` Maxime Ripard
2019-05-16 18:08     ` Frank Lee
2019-05-12  8:26 ` [PATCH 3/3] dt-bindings: thermal: add binding document for h6 thermal controller Yangtao Li
2019-05-12 13:41   ` Maxime Ripard
2019-05-16 18:13     ` Frank Lee
2019-05-17  7:38       ` Maxime Ripard

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=20190521074723.s3hcrnpc5pkdreqe@flea \
    --to=maxime.ripard@bootlin.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=anarsoul@gmail.com \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edubezval@gmail.com \
    --cc=enric.balletbo@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jagan@amarulasolutions.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=marc.w.gonzalez@free.fr \
    --cc=mark.rutland@arm.com \
    --cc=mchehab+samsung@kernel.org \
    --cc=olof@lixom.net \
    --cc=paulmck@linux.ibm.com \
    --cc=robh+dt@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=stefan.wahren@i2se.com \
    --cc=tiny.windzz@gmail.com \
    --cc=wens@csie.org \
    --cc=will.deacon@arm.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;
as well as URLs for NNTP newsgroup(s).