From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Rob Herring <robh+dt@kernel.org>,
Daniel Scally <djrscally@gmail.com>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Hans de Goede <hdegoede@redhat.com>,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Subject: Re: [PATCH v4 7/7] usb: typec: mux: Add On Semi fsa4480 driver
Date: Mon, 7 Mar 2022 16:01:22 -0800 [thread overview]
Message-ID: <Yiac0h4RX8VxDtZ7@ripper> (raw)
In-Reply-To: <YiaDd+quwXgbuz5D@smile.fi.intel.com>
On Mon 07 Mar 14:13 PST 2022, Andy Shevchenko wrote:
> On Mon, Mar 07, 2022 at 01:04:50PM -0800, Bjorn Andersson wrote:
> > On Mon 07 Mar 08:13 PST 2022, Andy Shevchenko wrote:
> > > On Mon, Mar 07, 2022 at 06:48:25AM -0800, Bjorn Andersson wrote:
> > > > On Mon 07 Mar 02:16 PST 2022, Andy Shevchenko wrote:
> > > > > On Sun, Mar 06, 2022 at 07:40:40PM -0800, Bjorn Andersson wrote:
>
> ...
>
> > > > > > + /* 15us to allow the SBU switch to turn off */
> > > > > > + usleep_range(15, 1000);
> > > > >
> > > > > This is quite unusual range.
> > > > >
> > > > > If you are fine with the long delay, why to stress the system on it?
> > > > > Otherwise the use of 1000 is unclear.
> > > > >
> > > > > That said, I would expect one of the below:
> > > > >
> > > > > usleep_range(15, 30);
> > > > > usleep_range(500, 1000);
> > > >
> > > > Glad you asked about that, as you say the typical form is to keep the
> > > > range within 2x of the lower value, or perhaps lower + 5.
> > > >
> > > > But if the purpose is to specify a minimum time and then give a max to
> > > > give the system some flexibility in it's decision of when to wake up.
> > > > And in situations such as this, we're talking about someone connecting a
> > > > cable, so we're in "no rush" and I picked the completely arbitrary 1ms
> > > > as the max.
> > > >
> > > > Do you see any drawback of this much higher number? (Other than it
> > > > looking "wrong")
> > >
> > > I see the drawback of low number.
> >
> > 15us is based on the data sheet and if the kernel is ready to serve us
> > after 15us then let's do that.
> >
> > > The 1000 makes not much sense to me with the minimum 66x times less.
> > > If there is no rush, use some reasonable values,
> > > what about
> > >
> > > usleep_range(100, 1000);
> > >
> > > ? 10x is way better than 66x.
> >
> > I don't agree, and in particular putting 100 here because it's 1/10 of
> > the number I just made up doesn't sounds like a good reason. The
> > datasheet says 15us, so that is at least based on something real.
> >
> > In https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
> > I find the following:
> >
> > With the introduction of a range, the scheduler is
> > free to coalesce your wakeup with any other wakeup
> > that may have happened for other reasons, or at the
> > worst case, fire an interrupt for your upper bound.
> >
> > The larger a range you supply, the greater a chance
> > that you will not trigger an interrupt; this should
> > be balanced with what is an acceptable upper bound on
> > delay / performance for your specific code path. Exact
> > tolerances here are very situation specific, thus it
> > is left to the caller to determine a reasonable range.
> >
> > Which to me says that the wider range is perfectly reasonable. In
> > particular 15, 30 (which seems to be quite common) makes the available
> > range to the scheduler unnecessarily narrow.
> >
> > And it's clear that whatever the upper bound it's going to be some
> > arbitrary number, but 1ms should ensure that there are other hrtimer
> > interrupts to piggy back on.
>
> Okay, I have grepped for usleep_range(x[x], yyyy) and there are 9 modules
> use it. A few commit messages call 1000 as "reasonable upper limit".
>
Right, we usually see a much more narrow range, as you say 2x or perhaps
10x, and this why I said I was glad you asked. I have been wondering
about this in a few different cases...
Thanks,
Bjorn
next prev parent reply other threads:[~2022-03-07 23:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-07 3:40 [PATCH v4 1/7] device property: Helper to match multiple connections Bjorn Andersson
2022-03-07 3:40 ` [PATCH v4 2/7] device property: Use multi-connection matchers for single case Bjorn Andersson
2022-03-07 3:40 ` [PATCH v4 3/7] usb: typec: mux: Check dev_set_name() return value Bjorn Andersson
2022-03-07 10:08 ` Andy Shevchenko
2022-03-07 14:33 ` Bjorn Andersson
2022-03-07 14:52 ` Heikki Krogerus
2022-03-07 3:40 ` [PATCH v4 4/7] usb: typec: mux: Introduce indirection Bjorn Andersson
2022-03-07 3:40 ` [PATCH v4 5/7] usb: typec: mux: Allow multiple mux_devs per mux Bjorn Andersson
2022-03-07 3:40 ` [PATCH v4 6/7] dt-bindings: usb: Add binding for fcs,fsa4480 Bjorn Andersson
2022-03-07 3:40 ` [PATCH v4 7/7] usb: typec: mux: Add On Semi fsa4480 driver Bjorn Andersson
2022-03-07 10:16 ` Andy Shevchenko
2022-03-07 14:48 ` Bjorn Andersson
2022-03-07 16:13 ` Andy Shevchenko
2022-03-07 21:04 ` Bjorn Andersson
2022-03-07 22:13 ` Andy Shevchenko
2022-03-08 0:01 ` Bjorn Andersson [this message]
2022-03-07 10:05 ` [PATCH v4 1/7] device property: Helper to match multiple connections Andy Shevchenko
2022-03-07 19:13 ` Bjorn Andersson
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=Yiac0h4RX8VxDtZ7@ripper \
--to=bjorn.andersson@linaro.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=devicetree@vger.kernel.org \
--cc=djrscally@gmail.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=hdegoede@redhat.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.