From: Stephen Rothwell <sfr@canb•auug.org.au>
To: Dave Airlie <airlied@linux•ie>
Cc: linux-next@vger•kernel.org, linux-kernel@vger•kernel.org,
Zhao Yakui <yakui.zhao@intel•com>,
Daniel Vetter <daniel.vetter@ffwll•ch>,
Chris Wilson <chris@chris-wilson•co.uk>,
Jani Nikula <jani.nikula@intel•com>
Subject: linux-next: manual merge of the drm tree with Linus' tree
Date: Thu, 5 Jun 2014 13:59:50 +1000 [thread overview]
Message-ID: <20140605135950.78ee7dee@canb.auug.org.au> (raw)
[-- Attachment #1: Type: text/plain, Size: 3695 bytes --]
Hi Dave,
Today's linux-next merge of the drm tree got a conflict in
drivers/gpu/drm/i915/i915_gem_execbuffer.c between commit d23db88c3ab2
("drm/i915: Prevent negative relocation deltas from wrapping") from
Linus' tree and commit a8ebba75b358 ("drm/i915: Use the coarse
ping-pong mechanism based on drm fd to dispatch the BSD command on BDW
GT3") from the drm tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@canb•auug.org.au
diff --cc drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 20fef6c50267,008e208e9a3a..000000000000
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@@ -597,38 -595,8 +600,38 @@@ i915_gem_execbuffer_reserve_vma(struct
return 0;
}
+static bool
+eb_vma_misplaced(struct i915_vma *vma, bool has_fenced_gpu_access)
+{
+ struct drm_i915_gem_exec_object2 *entry = vma->exec_entry;
+ struct drm_i915_gem_object *obj = vma->obj;
+ bool need_fence, need_mappable;
+
+ need_fence =
+ has_fenced_gpu_access &&
+ entry->flags & EXEC_OBJECT_NEEDS_FENCE &&
+ obj->tiling_mode != I915_TILING_NONE;
+ need_mappable = need_fence || need_reloc_mappable(vma);
+
+ WARN_ON((need_mappable || need_fence) &&
+ !i915_is_ggtt(vma->vm));
+
+ if (entry->alignment &&
+ vma->node.start & (entry->alignment - 1))
+ return true;
+
+ if (need_mappable && !obj->map_and_fenceable)
+ return true;
+
+ if (entry->flags & __EXEC_OBJECT_NEEDS_BIAS &&
+ vma->node.start < BATCH_OFFSET_BIAS)
+ return true;
+
+ return false;
+}
+
static int
- i915_gem_execbuffer_reserve(struct intel_ring_buffer *ring,
+ i915_gem_execbuffer_reserve(struct intel_engine_cs *ring,
struct list_head *vmas,
bool *need_relocs)
{
@@@ -1018,25 -1009,37 +1028,56 @@@ i915_reset_gen7_sol_offsets(struct drm_
return 0;
}
+static struct drm_i915_gem_object *
+eb_get_batch(struct eb_vmas *eb)
+{
+ struct i915_vma *vma = list_entry(eb->vmas.prev, typeof(*vma), exec_list);
+
+ /*
+ * SNA is doing fancy tricks with compressing batch buffers, which leads
+ * to negative relocation deltas. Usually that works out ok since the
+ * relocate address is still positive, except when the batch is placed
+ * very low in the GTT. Ensure this doesn't happen.
+ *
+ * Note that actual hangs have only been observed on gen7, but for
+ * paranoia do it everywhere.
+ */
+ vma->exec_entry->flags |= __EXEC_OBJECT_NEEDS_BIAS;
+
+ return vma->obj;
+}
+
+ /**
+ * Find one BSD ring to dispatch the corresponding BSD command.
+ * The Ring ID is returned.
+ */
+ static int gen8_dispatch_bsd_ring(struct drm_device *dev,
+ struct drm_file *file)
+ {
+ struct drm_i915_private *dev_priv = dev->dev_private;
+ struct drm_i915_file_private *file_priv = file->driver_priv;
+
+ /* Check whether the file_priv is using one ring */
+ if (file_priv->bsd_ring)
+ return file_priv->bsd_ring->id;
+ else {
+ /* If no, use the ping-pong mechanism to select one ring */
+ int ring_id;
+
+ mutex_lock(&dev->struct_mutex);
+ if (dev_priv->mm.bsd_ring_dispatch_index == 0) {
+ ring_id = VCS;
+ dev_priv->mm.bsd_ring_dispatch_index = 1;
+ } else {
+ ring_id = VCS2;
+ dev_priv->mm.bsd_ring_dispatch_index = 0;
+ }
+ file_priv->bsd_ring = &dev_priv->ring[ring_id];
+ mutex_unlock(&dev->struct_mutex);
+ return ring_id;
+ }
+ }
+
static int
i915_gem_do_execbuffer(struct drm_device *dev, void *data,
struct drm_file *file,
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next reply other threads:[~2014-06-05 3:59 UTC|newest]
Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-05 3:59 Stephen Rothwell [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-01-05 2:16 linux-next: manual merge of the drm tree with Linus' tree Stephen Rothwell
2026-01-05 7:07 ` Thomas Zimmermann
2026-01-06 21:35 ` Stephen Rothwell
2025-12-04 3:06 Stephen Rothwell
2025-12-04 7:35 ` Thomas Zimmermann
2025-06-06 2:08 Stephen Rothwell
2025-05-21 4:13 Stephen Rothwell
2025-05-21 4:10 Stephen Rothwell
2025-03-24 3:06 Stephen Rothwell
2025-03-03 2:12 Stephen Rothwell
2024-11-11 2:04 Stephen Rothwell
2024-10-28 2:49 Stephen Rothwell
2024-09-16 4:15 Stephen Rothwell
2024-09-16 12:58 ` Tobias Jakobi
2024-09-17 20:24 ` Alex Deucher
2024-09-09 3:11 Stephen Rothwell
2024-03-04 1:08 Stephen Rothwell
2024-03-04 0:47 Stephen Rothwell
2024-01-08 0:14 Stephen Rothwell
2023-06-19 1:17 Stephen Rothwell
2022-11-30 22:57 Stephen Rothwell
2022-11-27 23:58 Stephen Rothwell
2022-11-29 9:07 ` Geert Uytterhoeven
2022-11-17 2:13 Stephen Rothwell
2022-09-19 0:58 Stephen Rothwell
2022-09-19 7:58 ` Geert Uytterhoeven
2022-09-19 14:23 ` Nathan Chancellor
2022-02-28 3:17 Stephen Rothwell
2021-10-29 0:48 Stephen Rothwell
2021-10-29 6:52 ` Joonas Lahtinen
2021-10-11 0:37 Stephen Rothwell
2021-08-23 2:41 Stephen Rothwell
2021-08-24 0:12 ` Stephen Rothwell
2021-08-12 1:20 Stephen Rothwell
2021-07-01 0:52 Stephen Rothwell
2021-03-29 2:14 Stephen Rothwell
2021-03-30 7:36 ` Geert Uytterhoeven
2021-03-30 23:41 ` Stephen Rothwell
2021-02-01 1:30 Stephen Rothwell
2021-02-14 22:07 ` Stephen Rothwell
2021-01-18 0:56 Stephen Rothwell
2020-10-02 3:42 Stephen Rothwell
2020-05-25 3:51 Stephen Rothwell
2020-03-23 0:50 Stephen Rothwell
2019-11-13 1:38 Stephen Rothwell
2019-11-13 1:13 Stephen Rothwell
2019-11-13 0:58 Stephen Rothwell
2019-11-13 0:50 Stephen Rothwell
2019-11-13 0:46 Stephen Rothwell
2019-11-13 0:40 Stephen Rothwell
2019-08-26 3:12 Stephen Rothwell
2019-06-11 2:19 Stephen Rothwell
2018-06-04 3:09 Stephen Rothwell
2018-03-26 3:38 Stephen Rothwell
2018-03-22 6:37 Stephen Rothwell
2018-03-26 3:45 ` Stephen Rothwell
2018-03-13 1:15 Stephen Rothwell
2018-02-18 23:10 Stephen Rothwell
2018-02-20 20:15 ` Rodrigo Vivi
2018-02-18 23:02 Stephen Rothwell
2018-01-15 1:08 Stephen Rothwell
2017-11-23 23:37 Stephen Rothwell
2017-10-30 18:36 Mark Brown
2017-10-30 18:26 Mark Brown
2017-08-28 2:32 Stephen Rothwell
2017-07-31 2:24 Stephen Rothwell
2017-07-24 2:06 Stephen Rothwell
2017-07-24 2:09 ` Stephen Rothwell
2017-06-05 2:49 Stephen Rothwell
2017-04-05 0:30 Stephen Rothwell
2017-02-23 23:17 Stephen Rothwell
2016-09-28 1:57 Stephen Rothwell
2016-09-20 2:42 Stephen Rothwell
2016-09-20 12:25 ` Philipp Zabel
2016-09-05 3:58 Stephen Rothwell
2016-09-05 3:51 Stephen Rothwell
2016-07-29 1:45 Stephen Rothwell
2016-05-09 1:28 Stephen Rothwell
2016-05-09 1:27 Stephen Rothwell
2016-03-17 0:45 Stephen Rothwell
2016-03-17 1:43 ` Luis R. Rodriguez
2016-02-29 2:59 Stephen Rothwell
2015-12-07 3:38 Stephen Rothwell
2015-11-01 8:11 Stephen Rothwell
2015-07-27 1:14 Stephen Rothwell
2015-06-21 3:50 Stephen Rothwell
2015-06-22 7:20 ` Christian König
2015-05-11 3:07 Stephen Rothwell
2015-04-07 5:22 Stephen Rothwell
2015-01-29 2:17 Stephen Rothwell
2015-01-29 8:19 ` Oded Gabbay
2015-01-22 2:22 Stephen Rothwell
2015-01-22 2:31 ` Dave Airlie
2015-01-22 2:57 ` Stephen Rothwell
2015-01-22 2:18 Stephen Rothwell
2015-01-22 2:15 Stephen Rothwell
2014-12-05 4:46 Stephen Rothwell
2014-12-05 4:39 Stephen Rothwell
2014-11-17 3:11 Stephen Rothwell
2014-11-17 9:47 ` Thierry Reding
2014-06-05 3:54 Stephen Rothwell
2014-03-31 2:54 Stephen Rothwell
2014-03-24 2:01 Stephen Rothwell
2014-03-24 8:49 ` Jani Nikula
2013-12-19 2:09 Stephen Rothwell
2013-12-19 1:59 Stephen Rothwell
2013-11-07 2:21 Stephen Rothwell
2013-11-07 2:10 Stephen Rothwell
2013-10-28 5:58 Stephen Rothwell
2013-10-28 5:28 Stephen Rothwell
2013-10-28 5:11 Stephen Rothwell
2013-07-29 2:58 Stephen Rothwell
2013-07-26 3:01 Stephen Rothwell
2013-06-24 2:56 Stephen Rothwell
2013-06-17 3:09 Stephen Rothwell
2013-02-13 4:48 Stephen Rothwell
2012-11-30 1:22 Stephen Rothwell
2012-10-04 2:00 Stephen Rothwell
2012-10-04 1:54 Stephen Rothwell
2012-09-17 4:53 Stephen Rothwell
2012-08-24 2:20 Stephen Rothwell
2012-08-24 2:19 Stephen Rothwell
2012-08-24 7:13 ` Jani Nikula
2012-08-24 7:12 ` Dave Airlie
2012-08-24 20:29 ` Sedat Dilek
2012-07-19 1:38 Stephen Rothwell
2012-07-16 3:00 Stephen Rothwell
2012-06-29 3:30 Stephen Rothwell
2012-06-29 9:01 ` Daniel Vetter
2012-05-14 4:08 Stephen Rothwell
2012-05-07 3:45 Stephen Rothwell
2012-05-07 8:06 ` Daniel Vetter
2012-05-03 3:07 Stephen Rothwell
2012-04-13 3:38 Stephen Rothwell
2012-04-13 8:59 ` Daniel Vetter
2012-03-05 3:47 Stephen Rothwell
2011-12-28 2:53 Stephen Rothwell
2011-12-28 2:44 Stephen Rothwell
2011-12-21 3:18 Stephen Rothwell
2011-12-12 2:06 Stephen Rothwell
2011-03-09 3:41 Stephen Rothwell
2010-10-15 1:54 Stephen Rothwell
2010-10-03 23:30 Stephen Rothwell
2010-10-03 23:30 Stephen Rothwell
2010-04-28 3:58 Stephen Rothwell
2010-04-27 2:51 Stephen Rothwell
2010-04-12 5:06 Stephen Rothwell
2009-10-06 2:28 Stephen Rothwell
2009-10-08 2:35 ` Stephen Rothwell
2009-10-08 3:38 ` Dave Airlie
2009-10-08 3:44 ` Stephen Rothwell
2009-09-08 5:01 Stephen Rothwell
2009-08-20 5:27 Stephen Rothwell
2009-08-20 5:30 ` Dave Airlie
2009-08-20 6:43 ` Stephen Rothwell
2009-08-20 5:07 Stephen Rothwell
2009-08-05 3:44 Stephen Rothwell
2009-02-10 6:22 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=20140605135950.78ee7dee@canb.auug.org.au \
--to=sfr@canb$(echo .)auug.org.au \
--cc=airlied@linux$(echo .)ie \
--cc=chris@chris-wilson$(echo .)co.uk \
--cc=daniel.vetter@ffwll$(echo .)ch \
--cc=jani.nikula@intel$(echo .)com \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-next@vger$(echo .)kernel.org \
--cc=yakui.zhao@intel$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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