[Intel-gfx] linux-next: build failure after merge of the drm-misc tree
Hi all, After merging the drm-misc tree, today's linux-next build (x86_64 allmodconfig) failed like this: drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c: In function 'vmw_sou_crtc_page_flip': drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c:327:8: error: too few arguments to function 'drm_atomic_helper_page_flip' ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags); ^ In file included from drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c:31:0: include/drm/drm_atomic_helper.h:126:5: note: declared here int drm_atomic_helper_page_flip(struct drm_crtc *crtc, ^ drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c: In function 'vmw_stdu_crtc_page_flip': drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c:508:8: error: too few arguments to function 'drm_atomic_helper_page_flip' ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags); ^ In file included from drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c:32:0: include/drm/drm_atomic_helper.h:126:5: note: declared here int drm_atomic_helper_page_flip(struct drm_crtc *crtc, ^ Caused by commit 41292b1fa13a ("drm: Add acquire ctx parameter to ->page_flip(_target)") interacting with commits 904bb5e5817f ("drm/vmwgfx: Switch over to internal atomic API for STDU") b0119cb9229d ("drm/vmwgfx: Switch over to internal atomic API for SOU and LDU") from the drm tree. I added this merge fix patch for today: From: Stephen RothwellDate: Mon, 3 Apr 2017 13:25:55 +1000 Subject: [PATCH] drm/vmwgfx: merge fixup for page_flip API change Signed-off-by: Stephen Rothwell --- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c index 02b8f2541dca..8d7dc9def7c2 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c @@ -324,7 +324,7 @@ static int vmw_sou_crtc_page_flip(struct drm_crtc *crtc, return -EINVAL; flags &= ~DRM_MODE_PAGE_FLIP_ASYNC; - ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags); + ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags, ctx); if (ret) { DRM_ERROR("Page flip error %d.\n", ret); return ret; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c index e59bbcd8b226..bad31bdf09b6 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c @@ -505,7 +505,7 @@ static int vmw_stdu_crtc_page_flip(struct drm_crtc *crtc, * don't hand it to the helper. */ flags &= ~DRM_MODE_PAGE_FLIP_ASYNC; - ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags); + ret = drm_atomic_helper_page_flip(crtc, new_fb, NULL, flags, ctx); if (ret) { DRM_ERROR("Page flip error %d.\n", ret); return ret; -- 2.11.0 -- Cheers, Stephen Rothwell ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] linux-next: manual merge of the drm-misc tree with the drm tree
Hi all, Today's linux-next merge of the drm-misc tree got conflicts in: drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c between commits: 904bb5e5817f ("drm/vmwgfx: Switch over to internal atomic API for STDU") b0119cb9229d ("drm/vmwgfx: Switch over to internal atomic API for SOU and LDU") from the drm tree and commit: a4eff9aa6db8 ("drm: Add acquire ctx parameter to ->set_config") from the drm-misc 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. From: Stephen RothwellDate: Mon, 3 Apr 2017 13:04:36 +1000 Subject: [PATCH] drm/vmwgfx: merge fixup for set_config API change Signed-off-by: Stephen Rothwell --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 6 -- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 5 - 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index c18c81f63ac3..2517debf214d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -2940,6 +2940,7 @@ vmw_kms_create_implicit_placement_property(struct vmw_private *dev_priv, * vmw_kms_set_config - Wrapper around drm_atomic_helper_set_config * * @set: The configuration to set. + * @ctx: lock acquisition context * * The vmwgfx Xorg driver doesn't assign the mode::type member, which * when drm_mode_set_crtcinfo is called as part of the configuration setting @@ -2947,10 +2948,11 @@ vmw_kms_create_implicit_placement_property(struct vmw_private *dev_priv, * the vmwgfx modesetting. So explicitly clear that member before calling * into drm_atomic_helper_set_config. */ -int vmw_kms_set_config(struct drm_mode_set *set) +int vmw_kms_set_config(struct drm_mode_set *set, + struct drm_modeset_acquire_ctx *ctx) { if (set && set->mode) set->mode->type = 0; - return drm_atomic_helper_set_config(set); + return drm_atomic_helper_set_config(set, ctx); } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h index 9c161d29aaeb..ecafa9a7648e 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h @@ -453,6 +453,9 @@ int vmw_kms_stdu_dma(struct vmw_private *dev_priv, bool to_surface, bool interruptible); -int vmw_kms_set_config(struct drm_mode_set *set); +struct drm_modeset_acquire_ctx; + +int vmw_kms_set_config(struct drm_mode_set *set, + struct drm_modeset_acquire_ctx *ctx); #endif -- 2.11.0 -- Cheers, Stephen Rothwell ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [Regression report] Weekly regression report WW13
Link to FDO regression list: https://bugs.freedesktop.org/buglist.cgi?bug_status=NEW_status=ASSIGNED_status=REOPENED_status=NEEDINFO=DRM%2FIntel=OP=OP=short_desc=keywords=CP=CP=OR_name=i915%20regressions_id=600614=anywordssubstr=anywordssubstr_sys=All_sys=Linux%20%28All%29_sys=other=bug_id%20DESC=DRI_based_on=i915%20regressions_format=advanced_platform=All_platform=x86%20%28IA32%29_platform=x86-64%20%28AMD64%29_platform=IA64%20%28Itanium%29_platform=Other=regression%20bisect=regression%20bisected%20pending_bisect Total regressions: 26 This week regressions:0 +---+-+++ | BugId | Summary | Created on | Bisect | +---+-+++ Previous regressions:26 ++--+++ | BugId | Summary | Created on | Bisect | ++--+++ | 99929 | [i915] Black/gray screen with kernel 4.9.3 | 2017-02-23 | Yes | | 99766 | [v4.9 PATCH] DisplayPort Monitor Doesn't Come Back From Sleep| 2017-02-10 | Yes| | 99578 | [SKL][bisected] Screen regularly returns from power save mode| 2017-01-28 | Yes| | 99575 | [ilk bisected] "drm/i915: Type safe register read/write" -> poor/nonexistent IPS | 2017-01-28 | Yes| | 99362 | no resolutions >=1080p with Acer P7500 and Thinkpad X1 | 2017-01-11 | No | | 99093 | [PNV][regression] N450 and D510 machines get stuck in igt@gem_ringfill@basic-def | 2016-12-15 | Yes| | 98690 | [SKL bisected] System freeze when starting X using kernel 4.9-rc1 or later | 2016-11-11 | Yes| | 98517 | Skylake gen6 suspend/resume video regression 4.9 | 2016-10-31 | No | | 97918 | [bdw regression 4.8] Severe graphics regression, rainbow glitching and flickerin | 2016-09-25 | No | | 96781 | [skl dp-mst] oops in atomic commit | 2016-07-02 | Yes| | 96428 | [IVB bisected] [drm:intel_dp_aux_ch] *ERROR* dp aux hw did not signal timeout (h | 2016-06-07 | Yes| | 95736 | [IVB bisected] *ERROR* uncleared fifo underrun on pipe A | 2016-05-24 | Yes| | 94590 | [KBL] igt/kms_fbcon_fbt/psr-suspend regression | 2016-03-17 | No | | 93782 | [i9xx TV][BISECT] vblank wait timeout on crtc| 2016-01-19 | Yes| | 93486 | [HP Compaq dc7800 Small Form Factor PC][REGRESSION] suspend/resume failure | 2015-12-23 | No | | 93361 | 12bpc hdmi causes wrong real refresh rate (swapbuffers return time) | 2015-12-12 | Yes| | 93263 | 945GM regression since 4.3 | 2015-12-05 | No | | 92050 | [regression]/bug introduced by commit [0e572fe7383a376992364914694c39aa7fe44c1d] | 2015-09-19 | Yes| | 91974 | [bisected] unrecoverable black screen after killing X| 2015-09-11 | Yes| | 90112 | [BSW bisected] OglGSCloth/Lightsmark/CS/ Portal/ Half Life 2 games performance d | 2015-04-20 | Yes| | 89632 | [i965 regression]igt/kms_universal_plane/universal-plane-pipe-A-functional cause | 2015-03-18 | No | | 88124 | i915: regression: after DP connected (via docking station) monitor is turned off | 2015-01-06 | No | | 87726 | [BDW Bisected] OglDrvCtx performance reduced by ~30% after use true PPGTT in Gen | 2014-12-26 | Yes| | 87725 | [BDW Bisected] OglBatch7 performance reduced by ~7% after enable execlists | 2014-12-26 | Yes| | 87131 | [PNV regression] igt/gem_exec_lut_handle takes more than 10 minutes | 2014-12-09 | No | | 100221 | [SKL] Resume from suspend to disk fails - bisected | 2017-03-15 | Yes| ++--+++ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Sleep after restarting the GPU after reset
On Sun, Apr 02, 2017 at 03:36:11PM +0100, Chris Wilson wrote: > A piece of magic that prevents Baytrail from doing a timewarp. (Perhaps > executing an incorrect portion of the ring?) If left to itself after a > few hundred resets, the GPU will write a stale seqno causing all > requests to be completed early and the GPU then appears idle. + stuck in the future > A msleep(1000) before the intel_gpu_reset, or after it is not > sufficient, but a short delay of a few hundred microseconds after (also demonstrating that this is not a stray write left inflight from before the reset) > writing the RING_CTL is. Less than a few hundred us, or inserting a few > more posting reads into the init_ring_common is not enough. To limit the > impact, it appears we only need one after all RING_CTL writes and also we > only want to apply it when writing nonzero values into the RING_HEAD/TAIL > i.e. after reset. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98836 Testcase: igt/gem_exec_whisper/hang-chain > Signed-off-by: Chris WilsonBefore I forget to add them. -Chris -- Chris Wilson, Intel Open Source Technology Centre ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Sleep after restarting the GPU after reset
== Series Details == Series: drm/i915: Sleep after restarting the GPU after reset URL : https://patchwork.freedesktop.org/series/22329/ State : success == Summary == Series 22329v1 drm/i915: Sleep after restarting the GPU after reset https://patchwork.freedesktop.org/api/1.0/series/22329/revisions/1/mbox/ Test gem_exec_suspend: Subgroup basic-s4-devices: pass -> DMESG-WARN (fi-kbl-7560u) fdo#100125 fdo#100125 https://bugs.freedesktop.org/show_bug.cgi?id=100125 fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 time: 427s fi-bdw-gvtdvmtotal:278 pass:256 dwarn:8 dfail:0 fail:0 skip:14 time: 430s fi-bsw-n3050 total:278 pass:239 dwarn:0 dfail:0 fail:0 skip:39 time: 570s fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 time: 507s fi-bxt-t5700 total:278 pass:258 dwarn:0 dfail:0 fail:0 skip:20 time: 555s fi-byt-j1900 total:278 pass:251 dwarn:0 dfail:0 fail:0 skip:27 time: 484s fi-byt-n2820 total:278 pass:247 dwarn:0 dfail:0 fail:0 skip:31 time: 483s fi-hsw-4770 total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time: 408s fi-hsw-4770r total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time: 407s fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 time: 416s fi-ivb-3520m total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time: 491s fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time: 467s fi-kbl-7500u total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time: 451s fi-kbl-7560u total:278 pass:267 dwarn:1 dfail:0 fail:0 skip:10 time: 569s fi-skl-6260u total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time: 458s fi-skl-6700hqtotal:278 pass:261 dwarn:0 dfail:0 fail:0 skip:17 time: 568s fi-skl-6700k total:278 pass:256 dwarn:4 dfail:0 fail:0 skip:18 time: 455s fi-skl-6770hqtotal:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time: 486s fi-skl-gvtdvmtotal:278 pass:265 dwarn:0 dfail:0 fail:0 skip:13 time: 437s fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time: 529s fi-snb-2600 total:278 pass:249 dwarn:0 dfail:0 fail:0 skip:29 time: 402s 19ceec7d516a7c4614833ba7a3724a4bea0c59d3 drm-tip: 2017y-03m-31d-20h-10m-03s UTC integration manifest 2aab31f drm/i915: Sleep after restarting the GPU after reset == Logs == For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4380/ ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Sleep after restarting the GPU after reset
A piece of magic that prevents Baytrail from doing a timewarp. (Perhaps executing an incorrect portion of the ring?) If left to itself after a few hundred resets, the GPU will write a stale seqno causing all requests to be completed early and the GPU then appears idle. A msleep(1000) before the intel_gpu_reset, or after it is not sufficient, but a short delay of a few hundred microseconds after writing the RING_CTL is. Less than a few hundred us, or inserting a few more posting reads into the init_ring_common is not enough. To limit the impact, it appears we only need one after all RING_CTL writes and also we only want to apply it when writing nonzero values into the RING_HEAD/TAIL i.e. after reset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98836 Signed-off-by: Chris Wilson--- drivers/gpu/drm/i915/i915_gem.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index bbc6f1c9f175..54e6d8b43c2b 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4581,6 +4581,9 @@ static int __i915_gem_restart_engines(void *data) return err; } + /* Small piece of magic to stablize resets of an active GPU */ + msleep(1); + return 0; } -- 2.11.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [BUG][REGRESSION] i915 gpu hangs under load
Am 2. April 2017 13:50:26 MESZ schrieb Thorsten Leemhuis: >Lo! On 22.03.2017 11:36, Jani Nikula wrote: >> On Wed, 22 Mar 2017, Martin Kepplinger wrote: >>> I know something similar is here: >>> https://bugs.freedesktop.org/show_bug.cgi?id=100110 too. >>> But this is rc3 and my machine is totally *not usable*. Let me be >>> annoying :) I hope I can help: >> Please file a bug over at [1]. >> […] >> [1] >https://bugs.freedesktop.org/enter_bug.cgi?product=DRI=DRM/Intel > >@Martin: did you file that bug? I could not find one :-/ I did. Got marked as duplicate of https://bugs.freedesktop.org/show_bug.cgi?id=100181 and there's a fix out there. I don't know if it's in rc5 though. > >@Jani: In similar situations could you do me a favour and ask people to >send one more reply to the public list which contains the link to the >bug filed? Regression tracking is quite hard already; searching various >bug tracker for follow up bug entries makes it even harder :-( > >Ciao, Thorsten -- Martin Kepplinger http://martinkepplinger.com sent from mobile ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [BUG][REGRESSION] i915 gpu hangs under load
Lo! On 22.03.2017 11:36, Jani Nikula wrote: > On Wed, 22 Mar 2017, Martin Kepplingerwrote: >> I know something similar is here: >> https://bugs.freedesktop.org/show_bug.cgi?id=100110 too. >> But this is rc3 and my machine is totally *not usable*. Let me be >> annoying :) I hope I can help: > Please file a bug over at [1]. > […] > [1] https://bugs.freedesktop.org/enter_bug.cgi?product=DRI=DRM/Intel @Martin: did you file that bug? I could not find one :-/ @Jani: In similar situations could you do me a favour and ask people to send one more reply to the public list which contains the link to the bug filed? Regression tracking is quite hard already; searching various bug tracker for follow up bug entries makes it even harder :-( Ciao, Thorsten ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 02/13] drm/i915: Copy user requested buffers into the error state
On Sat, Apr 01, 2017 at 05:48:55PM -0700, Matt Turner wrote: > On Wed, Mar 29, 2017 at 8:56 AM, Chris Wilson> wrote: > > Introduce a new execobject.flag (EXEC_OBJECT_CAPTURE) that userspace may > > use to indicate that it wants the contents of this buffer preserved in > > the error state (/sys/class/drm/cardN/error) following a GPU hang > > involving this batch. > > > > Use this at your discretion, the contents of the error state. although > > compressed, are allocated with GFP_ATOMIC (i.e. limited) and kept for all > > eternity (until the error state is destroyed). > > > > Based on an earlier patch by Ben Widawsky > > Signed-off-by: Chris Wilson > > Cc: Ben Widawsky > > Cc: Matt Turner > > Acked-by: Ben Widawsky > > Reviewed-by: Joonas Lahtinen > > --- > > Thank you, Chris. With this in place (and a few patches from Ben > rebased for libdrm and Mesa) I can disassemble the shader program from > an error state. > > In this case, I turned off the end-of-thread bit on the sendc in order > to cause a hang: > > render ring --- user = 0x fff75000 > pln(8) g124<1>Fg4<0,1,0>F g2<8,8,1>F { > align1 1Q compacted }; > pln(8) g125<1>Fg4.4<0,1,0>Fg2<8,8,1>F { > align1 1Q compacted }; > pln(8) g126<1>Fg5<0,1,0>F g2<8,8,1>F { > align1 1Q compacted }; > pln(8) g127<1>Fg5.4<0,1,0>Fg2<8,8,1>F { > align1 1Q compacted }; > sendc(8)null<1>UW g124<8,8,1>F > render RT write SIMD8 LastRT Surface = 0 > mlen 4 rlen 0 { align1 1Q }; > nop ; > pln(16) g120<1>Fg6<0,1,0>F g2<8,8,1>F { > align1 1H compacted }; > pln(16) g122<1>Fg6.4<0,1,0>Fg2<8,8,1>F { > align1 1H compacted }; > pln(16) g124<1>Fg7<0,1,0>F g2<8,8,1>F { > align1 1H compacted }; > pln(16) g126<1>Fg7.4<0,1,0>Fg2<8,8,1>F { > align1 1H compacted }; > sendc(16) null<1>UW g120<8,8,1>F > render RT write SIMD16 LastRT Surface = 0 > mlen 8 rlen 0 { align1 1H }; > illegal(1) { align1 1N }; > > Presumably we would like to save more than just instruction buffers. > Do we have a good way of discerning what each blob of data in the > error state is? The prechosen set are named (batch, ring, HW context, HW status, semaphore). The user ones just have a nondescript 'user'. My thinking was that either there would be an additional debug only (aub-esque) buffer added to the execbuf that contained all the useful info to index the other buffers captured, or userspace puts a header/footer into its captured batches. I did consider the possibility of adding a tag through the execobject, maybe 8-bits inside flags, but I prefer the approach of embedding information into the buffers (much more flexibile). It is also possible to take the simulator route and decode the buffers according to the current GPU state, the link between relocation addresses and buffer address should be sufficient? -Chris -- Chris Wilson, Intel Open Source Technology Centre ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx