linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Takashi Iwai <tiwai@suse.de>, Lee Jones <lee.jones@linaro.org>
Cc: Darren Hart <dvhart@infradead.org>,
	Andy Shevchenko <andy@infradead.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Johannes Stezenbach <js@sig21.net>,
	Hans de Goede <hdegoede@redhat.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 1/3] mfd: Add support for Cherry Trail Dollar Cove TI PMIC
Date: Wed, 06 Sep 2017 12:21:31 +0200	[thread overview]
Message-ID: <1783868.XLEivnFYIC@aspire.rjw.lan> (raw)
In-Reply-To: <s5hshg0kuo5.wl-tiwai@suse.de>

On Wednesday, September 6, 2017 12:06:50 PM CEST Takashi Iwai wrote:
> On Wed, 06 Sep 2017 11:05:04 +0200,
> Lee Jones wrote:
> > 
> > On Wed, 06 Sep 2017, Takashi Iwai wrote:
> > 
> > > On Wed, 06 Sep 2017 09:54:44 +0200,
> > > Lee Jones wrote:
> > > > 
> > > > On Tue, 05 Sep 2017, Takashi Iwai wrote:
> > > > 
> > > > > On Tue, 05 Sep 2017 10:53:41 +0200,
> > > > > Lee Jones wrote:
> > > > > > 
> > > > > > On Tue, 05 Sep 2017, Takashi Iwai wrote:
> > > > > > 
> > > > > > > On Tue, 05 Sep 2017 10:10:49 +0200,
> > > > > > > Lee Jones wrote:
> > > > > > > > 
> > > > > > > > On Tue, 05 Sep 2017, Takashi Iwai wrote:
> > > > > > > > 
> > > > > > > > > On Tue, 05 Sep 2017 09:24:51 +0200,
> > > > > > > > > Lee Jones wrote:
> > > > > > > > > > 
> > > > > > > > > > On Mon, 04 Sep 2017, Takashi Iwai wrote:
> > > > > > > > > > 
> > > > > > > > > > > This patch adds the MFD driver for Dollar Cove (TI version) PMIC with
> > > > > > > > > > > ACPI INT33F5 that is found on some Intel Cherry Trail devices.
> > > > > > > > > > > The driver is based on the original work by Intel, found at:
> > > > > > > > > > >   https://github.com/01org/ProductionKernelQuilts
> > > > > > > > > > > 
> > > > > > > > > > > This is a minimal version for adding the basic resources.  Currently,
> > > > > > > > > > > only ACPI PMIC opregion and the external power-button are used.
> > > > > > > > > > > 
> > > > > > > > > > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=193891
> > > > > > > > > > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > > > > > > > > > > Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> > > > > > > > > > > Signed-off-by: Takashi Iwai <tiwai@suse.de>
> > > > > > > > > > > ---
> > > > > > > > > > > v4->v5:
> > > > > > > > > > > * Minor coding-style fixes suggested by Lee
> > > > > > > > > > > * Put GPL text
> > > > > > > > > > > v3->v4:
> > > > > > > > > > > * no change for this patch
> > > > > > > > > > > v2->v3:
> > > > > > > > > > > * Rename dc_ti with chtdc_ti in all places
> > > > > > > > > > > * Driver/kconfig renames accordingly
> > > > > > > > > > > * Added acks by Andy and Mika
> > > > > > > > > > > v1->v2:
> > > > > > > > > > > * Minor cleanups as suggested by Andy
> > > > > > > > > > > 
> > > > > > > > > > >  drivers/mfd/Kconfig                   |  13 +++
> > > > > > > > > > >  drivers/mfd/Makefile                  |   1 +
> > > > > > > > > > >  drivers/mfd/intel_soc_pmic_chtdc_ti.c | 184 ++++++++++++++++++++++++++++++++++
> > > > > > > > > > >  3 files changed, 198 insertions(+)
> > > > > > > > > > >  create mode 100644 drivers/mfd/intel_soc_pmic_chtdc_ti.c
> > > > > > > > > > 
> > > > > > > > > > For my own reference:
> > > > > > > > > >   Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > > > > > > > 
> > > > > > > > > Thanks!
> > > > > > > > > 
> > > > > > > > > Now the question is how to deal with these.  It's no critical things,
> > > > > > > > > so I'm OK to postpone for 4.15.  OTOH, it's really a new
> > > > > > > > > device-specific stuff, thus it can't break anything else, and it'd be
> > > > > > > > > fairly safe to add it for 4.14 although it's at a bit late stage.
> > > > > > > > 
> > > > > > > > Yes, you are over 2 weeks late for v4.14.  It will have to be v4.15.
> > > > > > > 
> > > > > > > OK, I'll ring your bells again once when 4.15 development is opened.
> > > > > > > 
> > > > > > > 
> > > > > > > > > IMO, it'd be great if you can carry all stuff through MFD tree; or
> > > > > > > > > create an immutable branch (again).  But how to handle it, when to do
> > > > > > > > > it, It's all up to you guys.
> > > > > > > > 
> > > > > > > > If there aren't any build dependencies between the patches, each of
> > > > > > > > the patches should be applied through their own trees.  What are the
> > > > > > > > build-time dependencies?  Are there any?
> > > > > > > 
> > > > > > > No, there is no strict build-time dependency.  It's just that I don't
> > > > > > > see it nice to have a commit for a dead code, partly for testing
> > > > > > > purpose and partly for code consistency.  But if this makes
> > > > > > > maintenance easier, I'm happy with that, too, of course.
> > > > > > 
> > > > > > There won't be any dead code.  All of the subsystem trees are pulled
> > > > > > into -next [0] where the build bots can operate on the patches as a
> > > > > > whole.
> > > > > 
> > > > > But the merge order isn't guaranteed, i.e. at the commit of other tree
> > > > > for this new stuff, it's a dead code without merging the MFD stuff
> > > > > beforehand.  e.g. Imagine to perform the git bisection.  It's not
> > > > > about the whole tree, but about the each commit.
> > > > 
> > > > Only *building* is relevant for bisection until the whole feature
> > > > lands.
> > > 
> > > Why only building?
> > > 
> > > When merging through several tress, commits for the same series are
> > > scattered completely although they are softly tied.  This sucks when
> > > you perform git bisection, e.g. if you have an issue in the middle of
> > > the patch series.  It still works, but it jumps unnecessarily too far
> > > away and back before reaching to the point, and kconfig appears /
> > > disappears inconsistently (the dependent kconfig gone in the middle).
> > > And, this is about the release kernel (4.15 or whatever).
> > 
> > Think about how bisection works.  You state a good commit and a bad
> > one.  The good commit will be when the feature last worked, which will
> > not be until the feature has fully landed.  Bisect will not check any
> > point prior to this date.
> > 
> > If there aren't any build deps, each Maintainer will apply patches
> > into their own tree.  These will be merged together in -next where
> > they can be tested, both manually and by the 0-days.  Once the merge
> > window is opened all patches will be sucked into -rc1.  If the feature
> > works here, then it you could use -rc1 as your 'good' commit.  If it
> > doesn't, then this could indicate a merge error or a missing piece of
> > the set, either way bisect wouldn't help you.
> 
> Not really.
> 
> First of all, most of user start testing from the release kernel, so
> you can't trust that RC covered all test cases.  (Who can blame users
> who didn't use / test RC?)
> 
> Second, you ignore the fact that the development continues after
> merging *this* patchset.  What if a breakage is introduced after this
> patch?  (See below)
> 
> They often need a full bisection between the previous release and the
> current release.
> 
> > > Basically, my complaint here comes with my user's hat on.  It *is*
> > > indeed worse than a straight application of patches in some levels.
> > > It's unavoidable if you do in that way.
> > 
> > I disagree.  I user wouldn't set the 'good' commit at any point prior
> > to the feature working at least once.
> 
> Again no, not all users do test at the same time.  A device driver
> may support multiple devices / platforms, and it might be that the bug
> manifests itself only on a certain system that no one has tested
> beforehand; it's a typical case we often see after the releases.
> 
> > This will not happen if any
> > parts were missing.  The order in which the pieces are applied is
> > irrelevant if there aren't any build deps between them.  If you bisect
> > between them, then the driver simply will not build.  No problem.
> 
> The bisection is required not only for build errors but also for
> functional tests.  Sometimes it's the only way to spot the culprit of
> a functional regression.
> 
> Imagine the following case: both MFD and platform drivers are merged
> into individual trees separately.  And, some change in platform driver
> after this patch series broke some functionality mistakenly.
> 
> Now, suppose that the platform tree is merged to Linus tree before MFD
> tree, that is, the situation is like:
> 
>   MFD (commit A1) -- ... -------------------------+
>   platform (commit B1) -> broken change (B2) -+   |
>                                               v   v
>                                             --M1--M2--> Linus RC1
> 
> git-bisection can inspect M2, which shows already broken.  Then it
> inspects M1, but you can't evaluate it because the target platform
> driver can't be built without A1.  At this point, you're stuck.
> But in this case, B1 is correct and B2 is the culprit.  How can you
> spot it out?
> 
> OTOH, if the merge history honors the functional dependency, you can
> bisect properly.

Exactly and not only that.

If the git history reflects the logical dependencies between patches,
you should be able to figure out the reason why the code was changed
this way (sometimes you can't anyway if commit logs suck, for example,
but this is a different problem) which quite often is essential for
debugging, backporting and similar.

Thanks,
Rafael

  reply	other threads:[~2017-09-06 10:30 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-04 14:43 [PATCH v5 0/3] Dollar Cove TI PMIC support for Intel Cherry Trail Takashi Iwai
2017-09-04 14:43 ` [PATCH v5 1/3] mfd: Add support for Cherry Trail Dollar Cove TI PMIC Takashi Iwai
2017-09-05  7:24   ` Lee Jones
2017-09-05  7:46     ` Takashi Iwai
2017-09-05  8:00       ` Hans de Goede
2017-09-05  8:11         ` Lee Jones
2017-09-05  8:12         ` Takashi Iwai
2017-09-05  8:10       ` Lee Jones
2017-09-05  8:20         ` Takashi Iwai
2017-09-05  8:53           ` Lee Jones
2017-09-05  9:38             ` Takashi Iwai
2017-09-05 10:31               ` Rafael J. Wysocki
2017-09-06  7:58                 ` Lee Jones
2017-09-06 10:09                   ` Rafael J. Wysocki
2017-09-06 10:47                     ` Lee Jones
2017-09-06 10:52                       ` Lee Jones
2017-09-06 22:19                         ` Rafael J. Wysocki
2017-09-07  7:39                           ` Lee Jones
2017-09-07 10:52                             ` Rafael J. Wysocki
2017-09-07 11:07                               ` Mika Westerberg
2017-09-07 10:59                                 ` Rafael J. Wysocki
2017-09-07 11:13                                   ` Lee Jones
2017-09-06  7:54               ` Lee Jones
2017-09-06  8:23                 ` Takashi Iwai
2017-09-06  9:05                   ` Lee Jones
2017-09-06 10:06                     ` Takashi Iwai
2017-09-06 10:21                       ` Rafael J. Wysocki [this message]
2017-09-06 10:50                         ` Lee Jones
2017-09-06 10:40                       ` Lee Jones
2017-09-06 10:58                         ` Takashi Iwai
2017-09-06 11:01                           ` Rafael J. Wysocki
2017-09-06 13:51                             ` Lee Jones
2017-09-06 14:34                               ` Takashi Iwai
2017-09-06 14:54                                 ` Lee Jones
2017-09-06 15:02                                   ` Takashi Iwai
2017-09-05  8:54           ` Lee Jones
2017-09-07  9:32             ` Takashi Iwai
2017-09-07 10:53               ` Lee Jones
2017-09-07 10:59                 ` Rafael J. Wysocki
2017-09-07 11:17                   ` Lee Jones
2017-09-07 11:44                     ` Takashi Iwai
2017-09-07 12:24                       ` Lee Jones
2017-09-07 13:11                         ` Takashi Iwai
2017-09-07 13:22                           ` Lee Jones
2017-09-07  8:00   ` Lee Jones
2017-09-04 14:43 ` [PATCH v5 2/3] platform/x86: Add support for Dollar Cove TI power button Takashi Iwai
2017-09-04 14:43 ` [PATCH v5 3/3] ACPI / PMIC: Add opregion driver for Intel Dollar Cove TI PMIC Takashi Iwai
2017-09-07  8:00   ` Lee Jones
  -- strict thread matches above, loose matches on Subject: below --
2017-08-24  8:11 [PATCH v2 0/3] Dollar Cove TI PMIC support for Intel Cherry Trail Takashi Iwai
2017-08-24  8:11 ` [PATCH v2 1/3] mfd: Add support for Cherry Trail Dollar Cove TI PMIC Takashi Iwai
2017-08-24  9:03   ` Mika Westerberg
2017-08-24  9:17   ` Andy Shevchenko
2017-09-04 13:37   ` Lee Jones
2017-09-04 13:50     ` Takashi Iwai
2017-09-05  7:25       ` Lee Jones
2017-09-05  7:41         ` Takashi Iwai
2017-09-05  8:14           ` Lee Jones
2017-08-24  8:11 ` [PATCH v2 2/3] platform/x86: Add support for Dollar Cove TI power button Takashi Iwai
2017-08-24  9:07   ` Mika Westerberg
2017-08-24  9:20   ` Andy Shevchenko
2017-08-24  9:45     ` Takashi Iwai
2017-08-24 11:47       ` Andy Shevchenko
2017-09-07 11:41         ` [PATCH v5 1/3] mfd: Add support for Cherry Trail Dollar Cove TI PMIC Takashi Iwai
2017-09-07 12:28           ` Lee Jones
2017-09-07 12:48             ` Takashi Iwai
2017-09-07 13:00               ` Lee Jones
2017-09-07 13:30                 ` Takashi Iwai
2017-09-07 14:13                   ` Lee Jones
2017-08-24  8:11 ` [PATCH v2 3/3] ACPI / PMIC: Add opregion driver for Intel " Takashi Iwai
2017-08-24  9:14   ` Mika Westerberg
2017-08-24  9:40     ` Takashi Iwai
2017-08-24 10:03       ` Takashi Iwai
2017-08-24  9:23   ` Andy Shevchenko
2017-08-24  9:43     ` Takashi Iwai
2017-08-24  9:27 ` [PATCH v2 0/3] Dollar Cove TI PMIC support for Intel Cherry Trail Andy Shevchenko
2017-08-24  9:38   ` Takashi Iwai

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=1783868.XLEivnFYIC@aspire.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=andy@infradead.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dvhart@infradead.org \
    --cc=hdegoede@redhat.com \
    --cc=js@sig21.net \
    --cc=lee.jones@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=tiwai@suse.de \
    /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).