linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul McKenney <paulmckrcu@gmail.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics <intel-gfx@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI <dri-devel@lists.freedesktop.org>,
	Jani Nikula <jani.nikula@intel.com>,
	linux-next@vger.kernel.org
Subject: Re: linux-next: manual merge of the drm tree with the drm-intel-fixes tree
Date: Mon, 27 Mar 2017 10:14:10 -0700	[thread overview]
Message-ID: <CAJzB8QG8bE1onedcBLJPcwQwVH4BrpNcWNzpH00JMfDqgyzObQ@mail.gmail.com> (raw)
In-Reply-To: <20170322110050.1e2ea77d@canb.auug.org.au>


[-- Attachment #1.1: Type: text/plain, Size: 2157 bytes --]

> On Tue, Mar 21, 2017 at 5:00 PM, Stephen Rothwell <sfr@canb.auug.org.au>
wrote:
> Hi Dave,
>
> Today's linux-next merge of the drm tree got a conflict in:
>
>   drivers/gpu/drm/i915/i915_gem_shrinker.c
>
> between commit:
>
>   3d3d18f086cd ("drm/i915: Avoid rcu_barrier() from reclaim paths
(shrinker)")
>
> from the drm-intel-fixes tree and commit:
>
>   519d52498156 ("drm/i915: i915_gem_shrink_all() needs an awake device")
>
> from the drm tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc drivers/gpu/drm/i915/i915_gem_shrinker.c
> index d5d2b4c6ed38,006a8b908f77..000000000000
> --- a/drivers/gpu/drm/i915/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c
> @@@ -263,7 -264,9 +264,9 @@@ unsigned long i915_gem_shrink_all(struc
>                                 I915_SHRINK_BOUND |
>                                 I915_SHRINK_UNBOUND |
>                                 I915_SHRINK_ACTIVE);
> +       intel_runtime_pm_put(dev_priv);
> +
>  -      rcu_barrier(); /* wait until our RCU delayed slab frees are
completed */
>  +      synchronize_rcu(); /* wait for our earlier RCU delayed slab frees
*/

Unless I am really confused, the RCU delayed slab frees are via call_rcu().
This means that synchronize_rcu() is -not- guaranteed to wait on them.
For example, CPU 0 might be making its way through a pile of callbacks,
including some RCU delayed slab free callbacks.  If there are enough
callbacks, it could take CPU 0 several grace periods to work through the
backlog.  CPU 1 might have no callbacks queued, and might execute the
above code.  Now synchronize_rcu() will wait for a grace period, but only
one, and not necessarily for CPU 0's backlog to drain.

I do not believe that the above fix is safe.

>         return freed;
>   }
>

[-- Attachment #1.2: Type: text/html, Size: 4202 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-03-27 17:14 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22  0:00 linux-next: manual merge of the drm tree with the drm-intel-fixes tree Stephen Rothwell
2017-03-27 17:14 ` Paul McKenney [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-07  2:10 Stephen Rothwell
2024-03-07  8:27 ` Joonas Lahtinen
2023-04-17 14:39 broonie
2022-05-17  1:26 Stephen Rothwell
2022-02-25 16:14 broonie
2022-02-22 17:03 broonie
2020-05-08  3:50 Stephen Rothwell
2020-05-07  2:43 Stephen Rothwell
2020-01-22  0:37 Stephen Rothwell
2020-01-08  1:15 Stephen Rothwell
2020-01-08  1:10 Stephen Rothwell
2020-01-08  1:04 Stephen Rothwell
2020-01-08  2:28 ` Stephen Rothwell
2019-10-31  0:33 Stephen Rothwell
2019-11-08  0:42 ` Stephen Rothwell
2018-01-05  1:00 Stephen Rothwell
2017-07-21  1:26 Stephen Rothwell
2017-06-14  0:56 Stephen Rothwell
2017-06-14  0:50 Stephen Rothwell
2017-06-09  2:26 Stephen Rothwell
2017-06-08  2:53 Stephen Rothwell
2017-03-30  1:14 Stephen Rothwell
2017-03-30  1:08 Stephen Rothwell
2017-03-21 23:57 Stephen Rothwell
2017-03-21  0:28 Stephen Rothwell
2016-06-14  2:10 Stephen Rothwell
2015-12-22 23:06 Stephen Rothwell
2015-12-09  2:35 Stephen Rothwell
2015-12-03 14:51 Mark Brown
2015-12-03 15:49 ` Jani Nikula
2015-12-03 14:47 Mark Brown
2015-12-03 14:52 ` Imre Deak
2015-08-17  3:23 Stephen Rothwell
2015-06-05  5:46 mpe@ellerman.id.au
2015-06-05  8:03 ` Jani Nikula
2015-06-09  1:58   ` Stephen Rothwell
2015-03-16  2:30 Stephen Rothwell
2015-03-16 13:43 ` Xi Ruoyao
2015-03-16 15:04   ` Jani Nikula
2014-12-03  2:27 Stephen Rothwell
2014-12-03  8:24 ` Jani Nikula
2014-12-03  8:28   ` Stephen Rothwell
2014-11-17  3:04 Stephen Rothwell
2014-07-23  2:38 Stephen Rothwell
2014-07-09  4:06 Stephen Rothwell
2014-05-22  5:44 Stephen Rothwell
2014-05-22  5:40 Stephen Rothwell
2014-05-07  3:24 Stephen Rothwell
2013-10-28  5:46 Stephen Rothwell
2013-10-28  6:12 ` Stephen Rothwell

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=CAJzB8QG8bE1onedcBLJPcwQwVH4BrpNcWNzpH00JMfDqgyzObQ@mail.gmail.com \
    --to=paulmckrcu@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=sfr@canb.auug.org.au \
    /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).