[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [v2] drm/i915/guc: Allow preempt-client to be NULL (rev4)
== Series Details == Series: series starting with [v2] drm/i915/guc: Allow preempt-client to be NULL (rev4) URL : https://patchwork.freedesktop.org/series/37395/ State : failure == Summary == Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 Test perf: Subgroup oa-exponents: pass -> FAIL (shard-apl) fdo#102254 Test kms_flip: Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test kms_pipe_crc_basic: Subgroup nonblocking-crc-pipe-a-frame-sequence: pass -> FAIL (shard-apl) fdo#103481 Test kms_cursor_legacy: Subgroup 2x-long-flip-vs-cursor-legacy: pass -> FAIL (shard-hsw) fdo#104873 Subgroup flip-vs-cursor-toggle: fail -> PASS (shard-hsw) fdo#102670 +1 Test kms_setmode: Subgroup basic: fail -> PASS (shard-hsw) fdo#99912 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 fdo#102254 https://bugs.freedesktop.org/show_bug.cgi?id=102254 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481 fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 shard-apltotal:2795 pass:1723 dwarn:1 dfail:0 fail:21 skip:1049 time:12048s shard-hswtotal:2836 pass:1733 dwarn:1 dfail:0 fail:11 skip:1090 time:11710s shard-snbtotal:2836 pass:1328 dwarn:1 dfail:0 fail:10 skip:1497 time:6382s Blacklisted hosts: shard-kbltotal:2836 pass:1872 dwarn:1 dfail:0 fail:21 skip:942 time:9340s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7879/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: warning for tests: Add a random load generator
== Series Details == Series: tests: Add a random load generator URL : https://patchwork.freedesktop.org/series/37601/ State : warning == Summary == Test kms_setmode: Subgroup basic: fail -> PASS (shard-hsw) fdo#99912 Test gem_linear_blits: Subgroup normal: pass -> SKIP (shard-apl) Test kms_flip: Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Subgroup blocking-wf_vblank: pass -> DMESG-FAIL (shard-hsw) fdo#103928 Subgroup 2x-plain-flip-fb-recreate: pass -> FAIL (shard-hsw) fdo#100368 Test perf: Subgroup oa-exponents: pass -> FAIL (shard-apl) fdo#102254 Subgroup polling: pass -> FAIL (shard-hsw) fdo#102252 Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 +1 Subgroup in-flight-suspend: fail -> PASS (shard-hsw) fdo#104676 Test kms_cursor_legacy: Subgroup flip-vs-cursor-atomic: fail -> PASS (shard-hsw) fdo#102670 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928 fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368 fdo#102254 https://bugs.freedesktop.org/show_bug.cgi?id=102254 fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 fdo#104676 https://bugs.freedesktop.org/show_bug.cgi?id=104676 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 shard-apltotal:2750 pass:1682 dwarn:1 dfail:0 fail:21 skip:1044 time:11875s shard-hswtotal:2750 pass:1667 dwarn:1 dfail:1 fail:11 skip:1067 time:11629s shard-snbtotal:2750 pass:1273 dwarn:1 dfail:1 fail:10 skip:1463 time:6461s Blacklisted hosts: shard-kbltotal:2720 pass:1778 dwarn:1 dfail:1 fail:21 skip:916 time:9355s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_860/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v10] drm/i915/icl: Gen11 forcewake support
Hi Daniele, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on next-20180202] [cannot apply to v4.15] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Michel-Thierry/drm-i915-icl-Gen11-forcewake-support/20180204-034751 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-u0-02040445 (attached as .config) compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): In file included from drivers/gpu//drm/i915/i915_drv.h:56:0, from drivers/gpu//drm/i915/intel_uncore.c:24: drivers/gpu//drm/i915/intel_uncore.c:903:12: error: 'GEN11_BSD_RING_BASE' undeclared here (not in a function) RING_TAIL(GEN11_BSD_RING_BASE), /* 0x1C (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:903:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD_RING_BASE), /* 0x1C (base) */ ^ >> drivers/gpu//drm/i915/intel_uncore.c:904:12: error: 'GEN11_BSD2_RING_BASE' >> undeclared here (not in a function) RING_TAIL(GEN11_BSD2_RING_BASE), /* 0x1C4000 (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:904:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD2_RING_BASE), /* 0x1C4000 (base) */ ^ >> drivers/gpu//drm/i915/intel_uncore.c:905:12: error: 'GEN11_VEBOX_RING_BASE' >> undeclared here (not in a function) RING_TAIL(GEN11_VEBOX_RING_BASE), /* 0x1C8000 (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:905:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_VEBOX_RING_BASE), /* 0x1C8000 (base) */ ^ >> drivers/gpu//drm/i915/intel_uncore.c:906:12: error: 'GEN11_BSD3_RING_BASE' >> undeclared here (not in a function) RING_TAIL(GEN11_BSD3_RING_BASE), /* 0x1D (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:906:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD3_RING_BASE), /* 0x1D (base) */ ^ >> drivers/gpu//drm/i915/intel_uncore.c:907:12: error: 'GEN11_BSD4_RING_BASE' >> undeclared here (not in a function) RING_TAIL(GEN11_BSD4_RING_BASE), /* 0x1D4000 (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:907:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD4_RING_BASE), /* 0x1D4000 (base) */ ^ >> drivers/gpu//drm/i915/intel_uncore.c:908:12: error: 'GEN11_VEBOX2_RING_BASE' >> undeclared here (not in a function) RING_TAIL(GEN11_VEBOX2_RING_BASE), /* 0x1D8000 (base) */ ^ drivers/gpu//drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu//drm/i915/intel_uncore.c:908:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_VEBOX2_RING_BASE), /* 0x1D8000 (base) */ ^ drivers/gpu//drm/i915/intel_uncore.c: In function 'intel_uncore_fw_domains_init': >> drivers/gpu//drm/i915/intel_uncore.c:1382:19: error: 'I915_MAX_VCS' >> undeclared (first use in this function) for (i = 0; i < I915_MAX_VCS; i++) { ^ drivers/gpu//drm/i915/intel_uncore.c:1382:19: note: each undeclared identifier is reported only once for each function it appears in drivers/gpu//drm/i915/intel_uncore.c:1382:17: warning: comparison between pointer and integer for (i = 0; i < I915_MAX_VCS; i++) { ^ >> drivers/gpu//drm/i915/intel_uncore.c:1390:19: error: 'I915_MAX_VECS' >> undeclared (first use in this function) for (i = 0; i < I915_MAX_VECS; i++) { ^ drivers/gpu//drm/i915/intel_uncore.c:1390:17: warning: comparison between pointer and integer for (i = 0; i < I915_MAX_VECS; i++) { ^ In
Re: [Intel-gfx] [PATCH v10] drm/i915/icl: Gen11 forcewake support
Hi Daniele, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on next-20180202] [cannot apply to v4.15] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Michel-Thierry/drm-i915-icl-Gen11-forcewake-support/20180204-034751 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-randconfig-x019-201805 (attached as .config) compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from drivers/gpu/drm/i915/i915_drv.h:56:0, from drivers/gpu/drm/i915/intel_uncore.c:24: >> drivers/gpu/drm/i915/intel_uncore.c:903:12: error: 'GEN11_BSD_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN6_BSD_RING_BASE'? RING_TAIL(GEN11_BSD_RING_BASE), /* 0x1C (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ >> drivers/gpu/drm/i915/intel_uncore.c:903:2: note: in expansion of macro >> 'RING_TAIL' RING_TAIL(GEN11_BSD_RING_BASE), /* 0x1C (base) */ ^ >> drivers/gpu/drm/i915/intel_uncore.c:904:12: error: 'GEN11_BSD2_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN11_BSD_RING_BASE'? RING_TAIL(GEN11_BSD2_RING_BASE), /* 0x1C4000 (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu/drm/i915/intel_uncore.c:904:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD2_RING_BASE), /* 0x1C4000 (base) */ ^ >> drivers/gpu/drm/i915/intel_uncore.c:905:12: error: 'GEN11_VEBOX_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN11_BSD_RING_BASE'? RING_TAIL(GEN11_VEBOX_RING_BASE), /* 0x1C8000 (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu/drm/i915/intel_uncore.c:905:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_VEBOX_RING_BASE), /* 0x1C8000 (base) */ ^ >> drivers/gpu/drm/i915/intel_uncore.c:906:12: error: 'GEN11_BSD3_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN11_BSD2_RING_BASE'? RING_TAIL(GEN11_BSD3_RING_BASE), /* 0x1D (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu/drm/i915/intel_uncore.c:906:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD3_RING_BASE), /* 0x1D (base) */ ^ >> drivers/gpu/drm/i915/intel_uncore.c:907:12: error: 'GEN11_BSD4_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN11_BSD3_RING_BASE'? RING_TAIL(GEN11_BSD4_RING_BASE), /* 0x1D4000 (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu/drm/i915/intel_uncore.c:907:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_BSD4_RING_BASE), /* 0x1D4000 (base) */ ^ >> drivers/gpu/drm/i915/intel_uncore.c:908:12: error: 'GEN11_VEBOX2_RING_BASE' >> undeclared here (not in a function); did you mean 'GEN11_VEBOX_RING_BASE'? RING_TAIL(GEN11_VEBOX2_RING_BASE), /* 0x1D8000 (base) */ ^ drivers/gpu/drm/i915/i915_reg.h:123:47: note: in definition of macro '_MMIO' #define _MMIO(r) ((const i915_reg_t){ .reg = (r) }) ^ drivers/gpu/drm/i915/intel_uncore.c:908:2: note: in expansion of macro 'RING_TAIL' RING_TAIL(GEN11_VEBOX2_RING_BASE), /* 0x1D8000 (base) */ ^ drivers/gpu/drm/i915/intel_uncore.c: In function 'intel_uncore_fw_domains_init': >> drivers/gpu/drm/i915/intel_uncore.c:1382:19: error: 'I915_MAX_VCS' >> undeclared (first use in this function); did you mean 'I915_MAP_WC'? for (i = 0; i < I915_MAX_VCS; i++) { ^~~~ I915_MAP_WC drivers/gpu/drm/i915/intel_uncore.c:1382:19: note: each undeclared identifier is reported only once for each function it appears in >> drivers/gpu/drm/i915/intel_uncore.c:1382:17: warning: comparison between >> pointer and integer for (i = 0; i < I915_MAX_VCS; i++) { ^ >>
Re: [Intel-gfx] i915 PSR test results and cursor lag
On Fri, Feb 2, 2018 at 7:18 PM, Andy Lutomirskiwrote: > On Fri, Feb 2, 2018 at 1:24 AM, Andy Lutomirski wrote: >> On Thu, Feb 1, 2018 at 9:20 PM, Chris Wilson >> wrote: >>> Quoting Andy Lutomirski (2018-02-01 21:04:30) I got this after a recent suspend/resume: Feb 01 09:44:34 laptop systemd-logind[2412]: Lid closed. Feb 01 09:44:34 laptop systemd-logind[2412]: device-enumerator: scan all dirs Feb 01 09:44:34 laptop systemd-logind[2412]: device-enumerator: scanning /sys/bus Feb 01 09:44:34 laptop systemd-logind[2412]: device-enumerator: scanning /sys/class Feb 01 09:44:34 laptop systemd-logind[2412]: Failed to open configuration file '/etc/systemd/sleep.conf': No such file or directory Feb 01 09:44:34 laptop systemd-logind[2412]: Suspending... Feb 01 09:44:34 laptop systemd-logind[2412]: Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=PrepareForSleep cookie=570 reply Feb 01 09:44:34 laptop systemd-logind[2412]: Got message type=method_call sender=:1.46 destination=:1.1 object=/org/freedesktop/login1/session/_32 interface=org.freedesktop.login1.Session member=ReleaseDevice Feb 01 09:44:34 laptop systemd-logind[2412]: Sent message type=signal sender=n/a destination=:1.46 object=/org/freedesktop/login1/session/_32 interface=org.freedesktop.login1.Session member=PauseDevice cookie Feb 01 09:44:34 laptop gnome-shell[2630]: Failed to apply DRM plane transform 0: Permission denied Feb 01 09:44:34 laptop gnome-shell[2630]: drmModeSetCursor2 failed with (Permission denied), drawing cursor with OpenGL from now on But I don't see the word "cursor" in my system logs before the first suspend. What am I looking for? This is Fedora 27 running a Gnome Wayland session, but it hasn't been reinstalled in some time, so it's possible that there are some weird settings sitting around. But I did check and I have no weird i915 parameters. >>> >>> You are using gnome-shell as the display server. From that it appears to >>> have started off with a HW cursor and switched to a SW cursor after >>> suspend. Did you notice a change in behaviour? After rebooting or just >>> restarting gnome-shell? >> >> I think it's less consistently bad after a reboot before suspending. >> >>> Also, are these things potentially related: [ 3067.702527] [drm:intel_pipe_update_start [i915]] *ERROR* Potential atomic update failure on pipe A >>> >>> They are just "missed the immediate vblank for the screen update" >>> messages. Should not be related to PSR, but may cause jitter by delaying >>> the odd screen update. >> >> I just got this one, and the timestamp is at least reasonably close to >> a giant latency spike: >> >> [ 288.799654] [drm:intel_pipe_update_end [i915]] *ERROR* Atomic >> update failure on pipe A (start=31 end=32) time 15 us, min 1073, max >> 1079, scanline start 1087, end 1088 >> >>> As I'm typing this, I've seen a couple instances of what seems like a full *second* of cursor latency, but I've only gotten the potential atomic update failure once. And is there any straightforward tracing to do to distinguish between PSR exit latency and other potential sources of latency? >>> >>> It looks plausible that we could at least report how long it takes the >>> registers to reflect the change in state (but we don't). The best source >>> of information atm is /sys/kernel/debug/dri/0/i915_edp_psr_status. >> >> Hmm. >> >> I went and looked at the code, and I noticed what could be bugs or >> could (more likely) be my confusion since I don't know this code at >> all: >> >> intel_single_frame_update() does something inscrutable to me, but I >> imagine it does something that causes the next page flip to get >> noticed by the panel even with PSR on. But how does the code that >> calls it know that anything happened? (Looking at the commit history, >> maybe this is something special that's only needed on some platforms >> but doesn't replace the normal PSR exit sequence.) >> >> Perhaps more interestingly, intel_psr_flush() does this: >> >> /* By definition flush = invalidate + flush */ >> if (frontbuffer_bits) >> intel_psr_exit(dev_priv); >> >> if (!dev_priv->psr.active && !dev_priv->psr.busy_frontbuffer_bits) >> if (!work_busy(_priv->psr.work.work)) >> schedule_delayed_work(_priv->psr.work, >> msecs_to_jiffies(100)); >> >> I'm guessing that the idea is that we're turning off PSR because we >> want the panel to update and we expect that, in 100ms, the update will >> have hit the panel and we'll have been idle long enough for it to make >> sense to re-enter PSR. IOW, the code wants PSR to be off for at least >> 100ms
Re: [Intel-gfx] i915 PSR test results and cursor lag
On Sat, Feb 3, 2018 at 5:20 AM, Pandiyan, Dhinakaranwrote: > > On Fri, 2018-02-02 at 19:18 +, Andy Lutomirski wrote: >> I updated to 4.15, and the situation is much worse. With >> enable_psr=1, the system survives for several seconds and then the >> screen stops updating entirely. If I boot with i915.enable_psr=1, I >> get to the Fedora login screen and then the system dies. If I set >> enable_psr=1 using sysfs, it does a bit after the next resume. It >> seems like it also sometimes hangs even worse a bit after the screen >> stops updating, but it's hard to tell. > > The login screen freeze sounds like what I have. Does this system have > DMC firmware? If yes, can you try this series > https://patchwork.freedesktop.org/series/37598/. You'll only need > patches 1,8,9 and 10. That fixes the hang. Feel free to add: Tested-by: Andy Lutomirski to the i915 parts. Also, any chance of getting it into the 4.15 stable kernels? --Andy ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/breadcrumbs: Drop request reference for the signaler thread (rev2)
== Series Details == Series: drm/i915/breadcrumbs: Drop request reference for the signaler thread (rev2) URL : https://patchwork.freedesktop.org/series/36908/ State : failure == Summary == Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test kms_cursor_legacy: Subgroup flip-vs-cursor-atomic: fail -> PASS (shard-hsw) fdo#102670 +1 Test kms_flip: Subgroup flip-vs-absolute-wf_vblank-interruptible: pass -> FAIL (shard-hsw) fdo#100368 Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Test kms_rotation_crc: Subgroup bad-tiling: pass -> FAIL (shard-apl) fdo#103925 Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 Test kms_draw_crc: Subgroup fill-fb: pass -> SKIP (shard-snb) fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 shard-apltotal:2795 pass:1724 dwarn:1 dfail:0 fail:20 skip:1049 time:12065s shard-hswtotal:2836 pass:1732 dwarn:1 dfail:0 fail:12 skip:1090 time:11572s shard-snbtotal:2836 pass:1327 dwarn:1 dfail:0 fail:10 skip:1498 time:6385s Blacklisted hosts: shard-kbltotal:2836 pass:1870 dwarn:3 dfail:0 fail:22 skip:941 time:9372s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7878/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2] drm/i915/guc: Allow preempt-client to be NULL (rev4)
== Series Details == Series: series starting with [v2] drm/i915/guc: Allow preempt-client to be NULL (rev4) URL : https://patchwork.freedesktop.org/series/37395/ State : success == Summary == Series 37395v4 series starting with [v2] drm/i915/guc: Allow preempt-client to be NULL https://patchwork.freedesktop.org/api/1.0/series/37395/revisions/4/mbox/ Test debugfs_test: Subgroup read_all_entries: pass -> INCOMPLETE (fi-snb-2520m) fdo#103713 Test gem_mmap_gtt: Subgroup basic-small-bo-tiledx: pass -> FAIL (fi-gdg-551) fdo#102575 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575 fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:420s fi-bdw-gvtdvmtotal:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:423s fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:372s fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:485s fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:283s fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:480s fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:483s fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:469s fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:454s fi-cfl-s2total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:562s fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:412s fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:278s fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:511s fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:392s fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:401s fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:414s fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:451s fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:412s fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:456s fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:496s fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:454s fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:502s fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:581s fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:431s fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:508s fi-skl-6700hqtotal:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:530s fi-skl-6700k2total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:488s fi-skl-6770hqtotal:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:483s fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:414s fi-skl-gvtdvmtotal:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:431s fi-snb-2520m total:3pass:2dwarn:0 dfail:0 fail:0 skip:0 fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:400s Blacklisted hosts: fi-glk-dsi total:288 pass:152 dwarn:1 dfail:4 fail:0 skip:131 time:263s 2e76a2952923eba64c4f9baf461613bc42ee997a drm-tip: 2018y-02m-02d-20h-33m-12s UTC integration manifest d28ada97885a drm/i915: Only allocate preempt context when required 6166a85814ef drm/i915: Move the scheduler feature bits into the purview of the engines 3c85087dcfae drm/i915/guc: Allow preempt-client to be NULL == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7879/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for tests: Add a random load generator
== Series Details == Series: tests: Add a random load generator URL : https://patchwork.freedesktop.org/series/37601/ State : success == Summary == IGT patchset tested on top of latest successful build c219cc5307474cb53612ca759354f9473955e110 tools: Clear unused fields in register spec with latest DRM-Tip kernel build CI_DRM_3720 2e76a2952923 drm-tip: 2018y-02m-02d-20h-33m-12s UTC integration manifest Testlist changes: +igt@gem_exec_load@all +igt@gem_exec_load@blt +igt@gem_exec_load@bsd +igt@gem_exec_load@bsd1 +igt@gem_exec_load@bsd2 +igt@gem_exec_load@pulse +igt@gem_exec_load@render +igt@gem_exec_load@vebox Test gem_mmap_gtt: Subgroup basic-small-bo-tiledx: pass -> FAIL (fi-gdg-551) fdo#102575 Test kms_pipe_crc_basic: Subgroup suspend-read-crc-pipe-b: pass -> INCOMPLETE (fi-snb-2520m) fdo#103713 fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:420s fi-bdw-gvtdvmtotal:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:424s fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:374s fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:487s fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:282s fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:481s fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:487s fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:470s fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:461s fi-cfl-s2total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:566s fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:416s fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:281s fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:517s fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:392s fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:399s fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:413s fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:450s fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:417s fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:457s fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:494s fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:454s fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:501s fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:574s fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:432s fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:508s fi-skl-6700hqtotal:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:527s fi-skl-6700k2total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:493s fi-skl-6770hqtotal:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:488s fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:417s fi-skl-gvtdvmtotal:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:430s fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33 fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:406s Blacklisted hosts: fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:470s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_860/issues.html ___ 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/breadcrumbs: Drop request reference for the signaler thread (rev2)
== Series Details == Series: drm/i915/breadcrumbs: Drop request reference for the signaler thread (rev2) URL : https://patchwork.freedesktop.org/series/36908/ State : success == Summary == Series 36908v2 drm/i915/breadcrumbs: Drop request reference for the signaler thread https://patchwork.freedesktop.org/api/1.0/series/36908/revisions/2/mbox/ Test gem_mmap_gtt: Subgroup basic-small-bo-tiledx: pass -> FAIL (fi-gdg-551) fdo#102575 Test kms_pipe_crc_basic: Subgroup suspend-read-crc-pipe-b: pass -> INCOMPLETE (fi-snb-2520m) fdo#103713 fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:421s fi-bdw-gvtdvmtotal:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:425s fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:370s fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:481s fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:280s fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:476s fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:487s fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:465s fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:463s fi-cfl-s2total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:568s fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:410s fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:277s fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:513s fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:386s fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:395s fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:408s fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:468s fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:410s fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:460s fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:495s fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:452s fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:497s fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:572s fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:428s fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:506s fi-skl-6700hqtotal:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:527s fi-skl-6700k2total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:483s fi-skl-6770hqtotal:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:473s fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:414s fi-skl-gvtdvmtotal:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:429s fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33 fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:392s Blacklisted hosts: fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:470s 2e76a2952923eba64c4f9baf461613bc42ee997a drm-tip: 2018y-02m-02d-20h-33m-12s UTC integration manifest 60b9a2f8d1e9 drm/i915/breadcrumbs: Drop request reference for the signaler thread == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7878/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2] drm/i915: Only allocate preempt context when required
If we remove some hardcoded assumptions about the preempt context having a fixed id, reserved from use by normal user contexts, we may only allocate the i915_gem_context when required. Then the subsequent decisions on using preemption reduce to having the preempt context available. v2: Include an assert that we don't allocate the preempt context twice. Signed-off-by: Chris WilsonCc: Michal Winiarski Cc: Tvrtko Ursulin Cc: Arkadiusz Hiler Cc: Mika Kuoppala Cc: Daniele Ceraolo Spurio Acked-by: Daniele Ceraolo Spurio --- drivers/gpu/drm/i915/i915_gem_context.c | 31 drivers/gpu/drm/i915/intel_engine_cs.c | 6 ++--- drivers/gpu/drm/i915/intel_guc_submission.c | 24 +- drivers/gpu/drm/i915/intel_lrc.c | 17 - drivers/gpu/drm/i915/intel_ringbuffer.h | 5 drivers/gpu/drm/i915/selftests/mock_gem_device.c | 6 - 6 files changed, 48 insertions(+), 41 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 8337d15bb0e5..dd9efb9d0e0b 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -449,12 +449,18 @@ destroy_kernel_context(struct i915_gem_context **ctxp) i915_gem_context_free(ctx); } +static bool needs_preempt_context(struct drm_i915_private *i915) +{ + return HAS_LOGICAL_RING_PREEMPTION(i915); +} + int i915_gem_contexts_init(struct drm_i915_private *dev_priv) { struct i915_gem_context *ctx; - int err; + /* Reassure ourselves we are only called once */ GEM_BUG_ON(dev_priv->kernel_context); + GEM_BUG_ON(dev_priv->preempt_context); INIT_LIST_HEAD(_priv->contexts.list); INIT_WORK(_priv->contexts.free_work, contexts_free_worker); @@ -468,8 +474,7 @@ int i915_gem_contexts_init(struct drm_i915_private *dev_priv) ctx = i915_gem_context_create_kernel(dev_priv, I915_PRIORITY_MIN); if (IS_ERR(ctx)) { DRM_ERROR("Failed to create default global context\n"); - err = PTR_ERR(ctx); - goto err; + return PTR_ERR(ctx); } /* * For easy recognisablity, we want the kernel context to be 0 and then @@ -479,23 +484,18 @@ int i915_gem_contexts_init(struct drm_i915_private *dev_priv) dev_priv->kernel_context = ctx; /* highest priority; preempting task */ - ctx = i915_gem_context_create_kernel(dev_priv, INT_MAX); - if (IS_ERR(ctx)) { - DRM_ERROR("Failed to create default preempt context\n"); - err = PTR_ERR(ctx); - goto err_kernel_context; + if (needs_preempt_context(dev_priv)) { + ctx = i915_gem_context_create_kernel(dev_priv, INT_MAX); + if (!IS_ERR(ctx)) + dev_priv->preempt_context = ctx; + else + DRM_ERROR("Failed to create preempt context; disabling preemption\n"); } - dev_priv->preempt_context = ctx; DRM_DEBUG_DRIVER("%s context support initialized\n", dev_priv->engine[RCS]->context_size ? "logical" : "fake"); return 0; - -err_kernel_context: - destroy_kernel_context(_priv->kernel_context); -err: - return err; } void i915_gem_contexts_lost(struct drm_i915_private *dev_priv) @@ -521,7 +521,8 @@ void i915_gem_contexts_fini(struct drm_i915_private *i915) { lockdep_assert_held(>drm.struct_mutex); - destroy_kernel_context(>preempt_context); + if (i915->preempt_context) + destroy_kernel_context(>preempt_context); destroy_kernel_context(>kernel_context); /* Must free all deferred contexts (via flush_workqueue) first */ diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index 7eebfbb95e89..bf634432c9c6 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -631,7 +631,7 @@ int intel_engine_init_common(struct intel_engine_cs *engine) * Similarly the preempt context must always be available so that * we can interrupt the engine at any time. */ - if (HAS_LOGICAL_RING_PREEMPTION(engine->i915)) { + if (engine->i915->preempt_context) { ring = engine->context_pin(engine, engine->i915->preempt_context); if (IS_ERR(ring)) { @@ -656,7 +656,7 @@ int intel_engine_init_common(struct intel_engine_cs *engine) err_breadcrumbs: intel_engine_fini_breadcrumbs(engine); err_unpin_preempt: - if (HAS_LOGICAL_RING_PREEMPTION(engine->i915)) +
[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/selftests: Flush old resets between engines (rev2)
== Series Details == Series: drm/i915/selftests: Flush old resets between engines (rev2) URL : https://patchwork.freedesktop.org/series/37591/ State : failure == Summary == Test kms_flip: Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test kms_cursor_crc: Subgroup cursor-64x64-random: pass -> SKIP (shard-snb) Test kms_plane: Subgroup plane-position-hole-dpms-pipe-a-planes: pass -> SKIP (shard-snb) Test kms_cursor_legacy: Subgroup flip-vs-cursor-toggle: fail -> PASS (shard-hsw) fdo#102670 +1 Subgroup 2x-long-flip-vs-cursor-legacy: pass -> FAIL (shard-hsw) fdo#104873 Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 Test perf: Subgroup enable-disable: pass -> FAIL (shard-apl) fdo#103715 Subgroup polling: pass -> FAIL (shard-hsw) fdo#102252 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 fdo#103715 https://bugs.freedesktop.org/show_bug.cgi?id=103715 fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 shard-apltotal:2795 pass:1724 dwarn:1 dfail:0 fail:20 skip:1049 time:11953s shard-hswtotal:2836 pass:1731 dwarn:1 dfail:0 fail:13 skip:1090 time:11525s shard-snbtotal:2836 pass:1326 dwarn:1 dfail:0 fail:10 skip:1499 time:6366s Blacklisted hosts: shard-kbltotal:2836 pass:1872 dwarn:1 dfail:0 fail:22 skip:941 time:9376s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7877/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH igt v2] tests: Add a random load generator
Apply a random load to one or all engines in order to apply stress to RPS as it tries to constantly adjust the GPU frequency to meet the changing workload. This can be used to reproduce the byt (j1900) system hang. v2: igt_until_timeout Signed-off-by: Chris Wilson--- tests/Makefile.sources | 1 + tests/gem_exec_load.c | 176 + 2 files changed, 177 insertions(+) create mode 100644 tests/gem_exec_load.c diff --git a/tests/Makefile.sources b/tests/Makefile.sources index 870c90935..8b5a18680 100644 --- a/tests/Makefile.sources +++ b/tests/Makefile.sources @@ -79,6 +79,7 @@ TESTS_progs = \ gem_exec_gttfill \ gem_exec_latency \ gem_exec_lut_handle \ + gem_exec_load \ gem_exec_nop \ gem_exec_parallel \ gem_exec_params \ diff --git a/tests/gem_exec_load.c b/tests/gem_exec_load.c new file mode 100644 index 0..ba88466a9 --- /dev/null +++ b/tests/gem_exec_load.c @@ -0,0 +1,176 @@ +/* + * Copyright © 2018 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "igt.h" +#include "igt_rand.h" +#include "igt_sysfs.h" + +IGT_TEST_DESCRIPTION("Apply a random load to each engine"); + +static inline uint32_t randmax(uint32_t *state, uint32_t ep_ro) +{ + return (uint64_t)hars_petruska_f54_1_random(state) * ep_ro >> 32; +} + +static void one(int fd, unsigned int engine, int scale, unsigned int timeout) +{ + uint32_t prng = engine; + igt_spin_t *spin[2] = {}; + unsigned int max; + int sysfs; + + sysfs = igt_sysfs_open(fd, NULL); + + max = sysfs < 0 ? 1 : igt_sysfs_get_u32(sysfs, "gt_max_freq_mhz"); + + igt_until_timeout(timeout) { + /* +* For every second, we randomly assign a desire % busyness +* and the frequency with which to submit a batch, defining +* a pulse-width modulation (pwm). +*/ + unsigned int pwm = randmax(, 1000); + unsigned int load = randmax(, pwm / scale); + const unsigned int interval = 1e6 / pwm; + unsigned int cur = + max > 1 ? igt_sysfs_get_u32(sysfs, "gt_cur_freq_mhz") : 1; + + while (pwm--) { + if (randmax(, pwm * cur) <= load * max) { + spin[1] = __igt_spin_batch_new(fd, 0, engine, 0); + load--; + } + igt_spin_batch_free(fd, spin[0]); + spin[0] = spin[1]; + spin[1] = NULL; + + usleep(interval); + } + } + igt_spin_batch_free(fd, spin[0]); + + close(sysfs); +} + +static void all(int fd, unsigned int timeout) +{ + unsigned int engines[16]; + unsigned int nengine; + unsigned int engine; + + nengine = 0; + for_each_engine(fd, engine) + engines[nengine++] = engine; + igt_require(nengine > 1); + + for (unsigned int n = 0; n < nengine; n++) + igt_fork(child, 1) + one(fd, engines[n], nengine/2, timeout); + igt_waitchildren(); +} + +static void pulse(int fd, unsigned int timeout) +{ + const uint32_t bbe = MI_BATCH_BUFFER_END; + struct drm_i915_gem_exec_object2 obj[2] = { + { .flags = EXEC_OBJECT_WRITE }, + }; + unsigned int engines[16]; + unsigned int nengine; + unsigned int engine; + + nengine = 0; + for_each_engine(fd, engine) { + if (engine == 0) + continue; + + engines[nengine++] = engine; + } + igt_require(nengine); + + obj[1].handle = gem_create(fd, 4096); + gem_write(fd, obj[1].handle, 0, , sizeof(bbe)); + +
[Intel-gfx] [PATCH v2] drm/i915/breadcrumbs: Drop request reference for the signaler thread
If we remember to cancel the signaler on a request when retiring it (after we know that the request has been signaled), we do not need to carry an additional request in the signaler itself. This prevents an issue whereby the signaler threads may be delayed and hold on to thousands of request references, causing severe memory fragmentation and premature oom (most noticeable on 32b snb due to the limited GFP_KERNEL and frequent use of inter-engine fences). v2: Rename first_signal(), document reads outside of locks. Signed-off-by: Chris WilsonCc: Tvrtko Ursulin --- drivers/gpu/drm/i915/i915_gem_request.c | 6 +- drivers/gpu/drm/i915/intel_breadcrumbs.c | 150 +-- 2 files changed, 86 insertions(+), 70 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c index 5ff57211ee06..dc7cc2c55bc7 100644 --- a/drivers/gpu/drm/i915/i915_gem_request.c +++ b/drivers/gpu/drm/i915/i915_gem_request.c @@ -555,7 +555,10 @@ static void i915_gem_request_retire(struct drm_i915_gem_request *request) spin_lock_irq(>lock); if (request->waitboost) atomic_dec(>i915->gt_pm.rps.num_waiters); - dma_fence_signal_locked(>fence); + if (!test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >fence.flags)) + dma_fence_signal_locked(>fence); + if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, >fence.flags)) + intel_engine_cancel_signaling(request); spin_unlock_irq(>lock); i915_priotree_fini(request->i915, >priotree); @@ -864,6 +867,7 @@ i915_gem_request_alloc(struct intel_engine_cs *engine, /* No zalloc, must clear what we need by hand */ req->global_seqno = 0; + req->signaling.wait.seqno = 0; req->file_priv = NULL; req->batch = NULL; req->capture_list = NULL; diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c index 62b2a20bc24e..efbc627a2a25 100644 --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c @@ -224,7 +224,7 @@ void intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine) struct intel_wait *wait, *n; if (!b->irq_armed) - goto wakeup_signaler; + return; /* * We only disarm the irq when we are idle (all requests completed), @@ -249,14 +249,6 @@ void intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine) b->waiters = RB_ROOT; spin_unlock_irq(>rb_lock); - - /* -* The signaling thread may be asleep holding a reference to a request, -* that had its signaling cancelled prior to being preempted. We need -* to kick the signaler, just in case, to release any such reference. -*/ -wakeup_signaler: - wake_up_process(b->signaler); } static bool use_fake_irq(const struct intel_breadcrumbs *b) @@ -633,6 +625,63 @@ static void signaler_set_rtpriority(void) sched_setscheduler_nocheck(current, SCHED_FIFO, ); } +static void __intel_engine_remove_signal(struct intel_engine_cs *engine, +struct drm_i915_gem_request *request) +{ + struct intel_breadcrumbs *b = >breadcrumbs; + + lockdep_assert_held(>rb_lock); + + /* +* Wake up all other completed waiters and select the +* next bottom-half for the next user interrupt. +*/ + __intel_engine_remove_wait(engine, >signaling.wait); + + /* +* Find the next oldest signal. Note that as we have +* not been holding the lock, another client may +* have installed an even older signal than the one +* we just completed - so double check we are still +* the oldest before picking the next one. +*/ + if (request->signaling.wait.seqno) { + if (request == rcu_access_pointer(b->first_signal)) { + struct rb_node *rb = rb_next(>signaling.node); + rcu_assign_pointer(b->first_signal, + rb ? to_signaler(rb) : NULL); + } + + rb_erase(>signaling.node, >signals); + request->signaling.wait.seqno = 0; + } +} + +static struct drm_i915_gem_request * +get_first_signal_rcu(struct intel_breadcrumbs *b) +{ + /* +* See the big warnings for i915_gem_active_get_rcu() and similarly +* for dma_fence_get_rcu_safe() that explain the intricacies involved +* here with defeating CPU/compiler speculation and enforcing +* the required memory barriers. +*/ + do { + struct drm_i915_gem_request *request; + + request = rcu_dereference(b->first_signal); + if (request) + request = i915_gem_request_get_rcu(request); + + barrier(); + +
Re: [Intel-gfx] [PATCH 6/6] drm/i915: Skip post-reset request emission if the engine is not idle
Quoting Chris Wilson (2018-02-01 10:36:20) > Since commit 7b6da818d86f ("drm/i915: Restore the kernel context after a > GPU reset on an idle engine") we submit a request following the engine > reset. The intent is that we don't submit a request if the engine is > busy (as it will restart active by itself) but we only checked to see if > there were remaining requests in flight on the hardware and skipped > checking to see if there were any ready requests that would be > immediately submitted on restart (the same time as our new request would > be). Having convinced the engine to appear idle in the previous patch, > we can use intel_engine_is_idle() as a better test to only submit a new > request if there are no pending requests. > > As it happens, this is tripping up igt/drv_selftest/live_hangcheck in CI > as we overfill the kernel_context ringbuffer trigger an infinite > recursion from within the reset. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104786 > References: 7b6da818d86f ("drm/i915: Restore the kernel context after a GPU > reset on an idle engine") > Signed-off-by: Chris Wilson> Cc: Mika Kuoppala > Cc: Joonas Lahtinen > Cc: Michel Thierry This would be nice to have fixed in CI. > --- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 088579324c14..c049496e8757 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3133,7 +3133,7 @@ void i915_gem_reset(struct drm_i915_private *dev_priv) > * an incoherent read by the CS (presumably stale TLB). An > * empty request appears sufficient to paper over the glitch. > */ > - if (list_empty(>timeline->requests)) { > + if (intel_engine_is_idle(engine)) { > struct drm_i915_gem_request *rq; > > rq = i915_gem_request_alloc(engine, > -- > 2.15.1 > ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Always update the no_fbc_reason when disabling
Quoting Chris Wilson (2018-01-25 22:41:22) > Provide the reason why we call intel_fbc_deactivate() so that debugging > issues with FBC being delayed is clearer. > > Signed-off-by: Chris WilsonAny takers? > --- > drivers/gpu/drm/i915/intel_fbc.c | 17 ++--- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_fbc.c > b/drivers/gpu/drm/i915/intel_fbc.c > index a8a8a80497a8..80682a418a70 100644 > --- a/drivers/gpu/drm/i915/intel_fbc.c > +++ b/drivers/gpu/drm/i915/intel_fbc.c > @@ -492,7 +492,8 @@ static void intel_fbc_schedule_activation(struct > intel_crtc *crtc) > schedule_work(>work); > } > > -static void intel_fbc_deactivate(struct drm_i915_private *dev_priv) > +static void intel_fbc_deactivate(struct drm_i915_private *dev_priv, > +const char *reason) > { > struct intel_fbc *fbc = _priv->fbc; > > @@ -505,6 +506,8 @@ static void intel_fbc_deactivate(struct drm_i915_private > *dev_priv) > > if (fbc->active) > intel_fbc_hw_deactivate(dev_priv); > + > + fbc->no_fbc_reason = reason; > } > > static bool multiple_pipes_ok(struct intel_crtc *crtc, > @@ -923,6 +926,7 @@ void intel_fbc_pre_update(struct intel_crtc *crtc, > { > struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); > struct intel_fbc *fbc = _priv->fbc; > + const char *reason = "update pending"; > > if (!fbc_supported(dev_priv)) > return; > @@ -930,7 +934,7 @@ void intel_fbc_pre_update(struct intel_crtc *crtc, > mutex_lock(>lock); > > if (!multiple_pipes_ok(crtc, plane_state)) { > - fbc->no_fbc_reason = "more than one pipe active"; > + reason = "more than one pipe active"; > goto deactivate; > } > > @@ -940,7 +944,7 @@ void intel_fbc_pre_update(struct intel_crtc *crtc, > intel_fbc_update_state_cache(crtc, crtc_state, plane_state); > > deactivate: > - intel_fbc_deactivate(dev_priv); > + intel_fbc_deactivate(dev_priv, reason); > unlock: > mutex_unlock(>lock); > } > @@ -973,9 +977,8 @@ static void __intel_fbc_post_update(struct intel_crtc > *crtc) > intel_fbc_reg_params_equal(_params, >params)) > return; > > - intel_fbc_deactivate(dev_priv); > + intel_fbc_deactivate(dev_priv, "FBC enabled (active or scheduled)"); > intel_fbc_schedule_activation(crtc); > - fbc->no_fbc_reason = "FBC enabled (active or scheduled)"; > } > > void intel_fbc_post_update(struct intel_crtc *crtc) > @@ -1016,7 +1019,7 @@ void intel_fbc_invalidate(struct drm_i915_private > *dev_priv, > fbc->busy_bits |= intel_fbc_get_frontbuffer_bit(fbc) & > frontbuffer_bits; > > if (fbc->enabled && fbc->busy_bits) > - intel_fbc_deactivate(dev_priv); > + intel_fbc_deactivate(dev_priv, "frontbuffer write"); > > mutex_unlock(>lock); > } > @@ -1246,7 +1249,7 @@ static void intel_fbc_underrun_work_fn(struct > work_struct *work) > DRM_DEBUG_KMS("Disabling FBC due to FIFO underrun.\n"); > fbc->underrun_detected = true; > > - intel_fbc_deactivate(dev_priv); > + intel_fbc_deactivate(dev_priv, "FIFO underrun"); > out: > mutex_unlock(>lock); > } > -- > 2.15.1 > ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH igt 2/2] igt/kms_frontbuffer_tracking: Bump the wait time for FBC
Quoting Chris Wilson (2018-01-26 21:39:28) > Quoting Chris Wilson (2018-01-25 21:28:49) > > It is taking longer than a couple of seconds for the FBC worker to be > > executed after scheduling; and then will take a minimum of a vblank > > interval for it activate. So wait longer to reduce the flip flops. > > > > Signed-off-by: Chris Wilson> > Any acks? Still looking for a response here. CI says that 2s isn't enough for FBC to kick in (it spends most of that time waiting for an invalidate, and then at the every end about 5ms waiting for the next vblank). In terms of human response, we don't care so much how long it takes to enable FBC, but how long it takes to disable; similarly for PSR. The downside to it taking longer than expected to enable FBC is power consumption. Is the display block hooked up to rapl? -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [01/10] drm/vblank: Data type fixes for 64-bit vblank sequences.
== Series Details == Series: series starting with [01/10] drm/vblank: Data type fixes for 64-bit vblank sequences. URL : https://patchwork.freedesktop.org/series/37598/ State : failure == Summary == Test perf: Subgroup blocking: pass -> FAIL (shard-hsw) fdo#102252 Subgroup oa-exponents: pass -> FAIL (shard-apl) fdo#102254 Test kms_flip_tiling: Subgroup flip-changes-tiling-yf: pass -> FAIL (shard-apl) fdo#103822 Test kms_flip: Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Test kms_cursor_legacy: Subgroup flip-vs-cursor-toggle: fail -> PASS (shard-hsw) fdo#102670 +1 Test kms_plane_lowres: Subgroup pipe-b-tiling-none: pass -> FAIL (shard-apl) fdo#103166 Test kms_cursor_crc: Subgroup cursor-128x128-suspend: pass -> INCOMPLETE (shard-hsw) fdo#103540 Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test gem_exec_suspend: Subgroup basic-s4-devices: pass -> INCOMPLETE (shard-hsw) fdo#104874 fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#102254 https://bugs.freedesktop.org/show_bug.cgi?id=102254 fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166 fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540 fdo#104874 https://bugs.freedesktop.org/show_bug.cgi?id=104874 shard-apltotal:2795 pass:1722 dwarn:1 dfail:0 fail:22 skip:1049 time:12044s shard-hswtotal:2765 pass:1690 dwarn:1 dfail:0 fail:12 skip:1059 time:10623s shard-snbtotal:2836 pass:1327 dwarn:2 dfail:0 fail:10 skip:1497 time:6423s Blacklisted hosts: shard-kbltotal:2836 pass:1868 dwarn:5 dfail:0 fail:22 skip:941 time:9351s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7875/shards.html ___ 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/selftests: Flush old resets between engines (rev2)
== Series Details == Series: drm/i915/selftests: Flush old resets between engines (rev2) URL : https://patchwork.freedesktop.org/series/37591/ State : success == Summary == Series 37591v2 drm/i915/selftests: Flush old resets between engines https://patchwork.freedesktop.org/api/1.0/series/37591/revisions/2/mbox/ Test kms_flip: Subgroup basic-flip-vs-dpms: pass -> DMESG-WARN (fi-skl-6700hq) fdo#101144 fdo#101144 https://bugs.freedesktop.org/show_bug.cgi?id=101144 fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:420s fi-bdw-gvtdvmtotal:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:428s fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:370s fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:487s fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:281s fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:480s fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:481s fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:463s fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:460s fi-cfl-s2total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:564s fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:408s fi-gdg-551 total:288 pass:180 dwarn:0 dfail:0 fail:0 skip:108 time:276s fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:507s fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:386s fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:396s fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:409s fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:457s fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:415s fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:463s fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:499s fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:455s fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:498s fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:575s fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:426s fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:503s fi-skl-6700hqtotal:288 pass:261 dwarn:1 dfail:0 fail:0 skip:26 time:532s fi-skl-6700k2total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:489s fi-skl-6770hqtotal:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:475s fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:414s fi-skl-gvtdvmtotal:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:429s fi-snb-2520m total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:530s fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:395s Blacklisted hosts: fi-glk-dsi total:288 pass:257 dwarn:0 dfail:0 fail:1 skip:30 time:460s 2e76a2952923eba64c4f9baf461613bc42ee997a drm-tip: 2018y-02m-02d-20h-33m-12s UTC integration manifest 13f2824cb7bb drm/i915/selftests: Flush old resets between engines == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7877/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/selftests: Flush old resets between engines
== Series Details == Series: drm/i915/selftests: Flush old resets between engines URL : https://patchwork.freedesktop.org/series/37591/ State : failure == Summary == Test kms_flip: Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Subgroup 2x-plain-flip-ts-check: fail -> PASS (shard-hsw) Subgroup 2x-plain-flip-fb-recreate-interruptible: pass -> FAIL (shard-hsw) Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 Test perf: Subgroup blocking: pass -> FAIL (shard-hsw) fdo#102252 Subgroup oa-exponents: pass -> FAIL (shard-apl) fdo#102254 Subgroup buffer-fill: pass -> FAIL (shard-apl) fdo#103755 Test kms_cursor_legacy: Subgroup flip-vs-cursor-atomic: fail -> PASS (shard-hsw) fdo#102670 +1 Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test kms_frontbuffer_tracking: Subgroup fbc-1p-indfb-fliptrack: pass -> FAIL (shard-apl) fdo#103167 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#102254 https://bugs.freedesktop.org/show_bug.cgi?id=102254 fdo#103755 https://bugs.freedesktop.org/show_bug.cgi?id=103755 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 shard-apltotal:2795 pass:1722 dwarn:1 dfail:0 fail:22 skip:1049 time:11992s shard-hswtotal:2836 pass:1731 dwarn:1 dfail:0 fail:13 skip:1090 time:11594s shard-snbtotal:2836 pass:1328 dwarn:1 dfail:0 fail:10 skip:1497 time:6386s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7874/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: warning for drm/i915: Show the GPU state when declaring wedged
== Series Details == Series: drm/i915: Show the GPU state when declaring wedged URL : https://patchwork.freedesktop.org/series/37599/ State : warning == Summary == Series 37599v1 drm/i915: Show the GPU state when declaring wedged https://patchwork.freedesktop.org/api/1.0/series/37599/revisions/1/mbox/ Test gem_mmap_gtt: Subgroup basic-small-bo-tiledx: pass -> FAIL (fi-gdg-551) fdo#102575 Test gem_sync: Subgroup basic-all: pass -> SKIP (fi-pnv-d510) Subgroup basic-each: pass -> SKIP (fi-pnv-d510) Subgroup basic-many-each: pass -> SKIP (fi-pnv-d510) Subgroup basic-store-all: pass -> SKIP (fi-pnv-d510) Subgroup basic-store-each: pass -> SKIP (fi-pnv-d510) Test gem_tiled_blits: Subgroup basic: pass -> SKIP (fi-pnv-d510) Test gem_tiled_fence_blits: Subgroup basic: pass -> SKIP (fi-pnv-d510) Test gem_wait: Subgroup basic-busy-all: pass -> SKIP (fi-pnv-d510) Subgroup basic-wait-all: pass -> SKIP (fi-pnv-d510) Subgroup basic-await-all: pass -> SKIP (fi-pnv-d510) Test kms_busy: Subgroup basic-flip-a: pass -> SKIP (fi-pnv-d510) Subgroup basic-flip-b: pass -> SKIP (fi-pnv-d510) Test kms_cursor_legacy: Subgroup basic-busy-flip-before-cursor-legacy: pass -> SKIP (fi-pnv-d510) Test kms_flip: Subgroup basic-flip-vs-dpms: pass -> DMESG-WARN (fi-skl-6700hq) fdo#101144 Test kms_pipe_crc_basic: Subgroup suspend-read-crc-pipe-b: pass -> INCOMPLETE (fi-snb-2520m) fdo#103713 fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575 fdo#101144 https://bugs.freedesktop.org/show_bug.cgi?id=101144 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:417s fi-bdw-gvtdvmtotal:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:424s fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:371s fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:481s fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:281s fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:482s fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:480s fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:461s fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:453s fi-cfl-s2total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:567s fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:413s fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:281s fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:512s fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:385s fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:398s fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:410s fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:456s fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:410s fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:460s fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:494s fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:451s fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:499s fi-pnv-d510 total:288 pass:209 dwarn:1 dfail:0 fail:0 skip:78 time:545s fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:426s fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:502s fi-skl-6700hqtotal:288 pass:261 dwarn:1 dfail:0 fail:0 skip:26 time:529s fi-skl-6700k2total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:484s fi-skl-6770hqtotal:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:474s fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:413s fi-skl-gvtdvmtotal:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:428s fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33 fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:395s Blacklisted hosts: fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0
[Intel-gfx] [PATCH v2] drm/i915/selftests: Flush old resets between engines
When injecting rapid resets, we must be careful to at least wait for the previous reset to have taken effect and the engine restarted. If we perform a second reset before that has happened, we will notice that the engine hasn't recovered and declare it lost, wedging the device and failing. In practice, since we wait for each hanging batch to start before injecting the reset, this too-fast-reset condition can only be triggered when moving onto the next engine in the test, so we need only wait for the existing reset to complete before switching engines. v2: Wrap up the wait inside a safety net to bail out in case of angry hw. Signed-off-by: Chris WilsonCc: Mika Kuoppala Cc: Michel Thierry --- drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 65 ++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c index d1f91a533afa..a4f4ff22389b 100644 --- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c +++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c @@ -244,6 +244,57 @@ static u32 hws_seqno(const struct hang *h, return READ_ONCE(h->seqno[rq->fence.context % (PAGE_SIZE/sizeof(u32))]); } +struct wedge_me { + struct delayed_work work; + struct drm_i915_private *i915; + const void *symbol; +}; + +static void wedge_me(struct work_struct *work) +{ + struct wedge_me *w = container_of(work, typeof(*w), work.work); + + pr_err("%pS timed out, cancelling all further testing.\n", + w->symbol); + i915_gem_set_wedged(w->i915); +} + +static void __init_wedge(struct wedge_me *w, +struct drm_i915_private *i915, +long timeout, +const void *symbol) +{ + w->i915 = i915; + w->symbol = symbol; + + INIT_DELAYED_WORK_ONSTACK(>work, wedge_me); + schedule_delayed_work(>work, timeout); +} + +static void __fini_wedge(struct wedge_me *w) +{ + cancel_delayed_work_sync(>work); + destroy_delayed_work_on_stack(>work); + w->i915 = NULL; +} + +#define wedge_on_timeout(W, DEV, TIMEOUT) \ + for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \ +(W)->i915; \ +__fini_wedge((W))) + +static int flush_test(struct drm_i915_private *i915, unsigned int flags) +{ + struct wedge_me w; + + cond_resched(); + + wedge_on_timeout(, i915, HZ) + i915_gem_wait_for_idle(i915, flags); + + return i915_terminally_wedged(>gpu_error) ? -EIO : 0; +} + static void hang_fini(struct hang *h) { *h->batch = MI_BATCH_BUFFER_END; @@ -255,7 +306,7 @@ static void hang_fini(struct hang *h) i915_gem_object_unpin_map(h->hws); i915_gem_object_put(h->hws); - i915_gem_wait_for_idle(h->i915, I915_WAIT_LOCKED); + flush_test(h->i915, I915_WAIT_LOCKED); } static bool wait_for_hang(struct hang *h, struct drm_i915_gem_request *rq) @@ -487,7 +538,9 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active) if (err) break; - cond_resched(); + err = flush_test(i915, 0); + if (err) + break; } if (i915_terminally_wedged(>gpu_error)) @@ -726,7 +779,9 @@ static int __igt_reset_engine_others(struct drm_i915_private *i915, if (err) break; - cond_resched(); + err = flush_test(i915, 0); + if (err) + break; } if (i915_terminally_wedged(>gpu_error)) @@ -952,6 +1007,10 @@ static int igt_reset_queue(void *arg) i915_gem_chipset_flush(i915); i915_gem_request_put(prev); + + err = flush_test(i915, I915_WAIT_LOCKED); + if (err) + break; } fini: -- 2.15.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Show the GPU state when declaring wedged
Dump each engine state when i915_gem_set_wedged() is called to give us some more clues as to why we had to terminate the GPU. Signed-off-by: Chris WilsonCc: Joonas Lahtinen --- drivers/gpu/drm/i915/i915_gem.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 63308ec016a3..cc1d89966737 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3199,6 +3199,13 @@ void i915_gem_set_wedged(struct drm_i915_private *i915) struct intel_engine_cs *engine; enum intel_engine_id id; + if (drm_debug & DRM_UT_DRIVER) { + struct drm_printer p = drm_debug_printer(__func__); + + for_each_engine(engine, i915, id) + intel_engine_dump(engine, , "%s\n", engine->name); + } + /* * First, stop submission to hw, but do not yet complete requests by * rolling the global seqno forward (since this would complete requests -- 2.15.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.IGT: failure for Adhering to HDCP1.4 Compliance Test Spec (rev3)
== Series Details == Series: Adhering to HDCP1.4 Compliance Test Spec (rev3) URL : https://patchwork.freedesktop.org/series/37539/ State : failure == Summary == Test kms_cursor_legacy: Subgroup flip-vs-cursor-toggle: fail -> PASS (shard-hsw) fdo#102670 +1 Test perf_pmu: Subgroup busy-double-start-vcs0: pass -> INCOMPLETE (shard-apl) Test kms_flip: Subgroup 2x-flip-vs-expired-vblank-interruptible: fail -> PASS (shard-hsw) fdo#102887 Test gem_eio: Subgroup in-flight-contexts: dmesg-warn -> PASS (shard-snb) fdo#104058 fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670 fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058 shard-apltotal:2795 pass:1725 dwarn:1 dfail:0 fail:19 skip:1049 time:12072s shard-hswtotal:2836 pass:1732 dwarn:1 dfail:0 fail:12 skip:1090 time:11548s shard-snbtotal:2836 pass:1328 dwarn:1 dfail:0 fail:10 skip:1497 time:6414s Blacklisted hosts: shard-kbltotal:2836 pass:1873 dwarn:1 dfail:0 fail:21 skip:941 time:9349s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7873/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 01/10] drm/vblank: Data type fixes for 64-bit vblank sequences.
Dhinakaran Pandiyanwrites: > From: "Pandiyan, Dhinakaran" > > drm_vblank_count() has an u32 type returning what is a 64-bit vblank count. > The effect of this is when drm_wait_vblank_ioctl() tries to widen the user > space requested vblank sequence using this clipped 32-bit count(when the > value is >= 2^32) as reference, the requested sequence remains a 32-bit > value and gets queued like that. However, the code that checks if the > requested sequence has passed compares this against the 64-bit vblank > count. For patches 1-7: Reviewed-by: Keith Packard -- -keith signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx