Bug 104009 - [CI] igt@gem_tiled_swapping@non-threaded - incomplete - system hang?
Summary: [CI] igt@gem_tiled_swapping@non-threaded - incomplete - system hang?
Status: CLOSED DUPLICATE of bug 104218
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-01 07:54 UTC by Marta Löfstedt
Modified: 2018-02-13 16:24 UTC (History)
1 user (show)

See Also:
i915 platform: BXT, GLK, HSW, KBL, SNB
i915 features: GEM/Other


Attachments
pstore pulled from shard-hsw4 when Ci_DRM_3506 was running (32.85 KB, text/plain)
2017-12-13 15:30 UTC, Marta Löfstedt
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Comment 4 Marta Löfstedt 2017-12-13 15:30:37 UTC
Created attachment 136141 [details]
pstore pulled from shard-hsw4 when Ci_DRM_3506 was running

 Pstore collection appear to be broken see bug 103706 so to get more data on this I managed to pull this pstore log from shards-hsw4 manually when CI_DRM_3506 was running. 
I believe this pstore show igt@gem_tiled_swapping@non-threaded behaving badly.
Comment 5 Chris Wilson 2017-12-13 15:52:00 UTC
Hmm, looking at __lock_page(), I'm reminded of this bug:

Commit 50816c48997a ("sched/wait: Standardize internal naming of
wait-queue entries") changed the behavior of add_wait_queue() from
inserting the wait entry at the head of the wait queue to the tail of
the wait queue. This is the relevant hunk:

-void add_wait_queue(wait_queue_head_t *q, wait_queue_entry_t *wait)
+void add_wait_queue(wait_queue_head_t *q, struct wait_queue_entry *wq_entry)
 {
        unsigned long flags;

-       wait->flags &= ~WQ_FLAG_EXCLUSIVE;
+       wq_entry->flags &= ~WQ_FLAG_EXCLUSIVE;
        spin_lock_irqsave(&q->lock, flags);
-       __add_wait_queue(q, wait);
+       __add_wait_queue_entry_tail(q, wq_entry);
        spin_unlock_irqrestore(&q->lock, flags);
 }
 EXPORT_SYMBOL(add_wait_queue);

Note the change from __add_wait_queue() to
__add_wait_queue_entry_tail(). I'm assuming this was a typo since the
commit message doesn't mention any functional changes. This patch
restores the old behavior.

tip-bot:

Commit-ID:  c6b9d9a33029014446bd9ed84c1688f6d3d4eab9
Gitweb:     https://git.kernel.org/tip/c6b9d9a33029014446bd9ed84c1688f6d3d4eab9
Author:     Omar Sandoval <osandov@fb.com>
AuthorDate: Tue, 5 Dec 2017 23:15:31 -0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 6 Dec 2017 19:30:34 +0100
   
   sched/wait: Fix add_wait_queue() behavioral change


Drat, which is already in drm-tip.
Comment 6 Marta Löfstedt 2018-01-11 08:22:05 UTC
I will duplicate this on bug 104218, to get better overview of the impact

*** This bug has been marked as a duplicate of bug 104218 ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.