Re: interference on display, Intel 945GM, 32bit system, kernel next

Krzysztof Kolasa
2015-07-22T09:38:26Z

On 22.07.2015 10:27, Daniel Vetter wrote:
> On Tue, Jul 21, 2015 at 08:07:47PM +0200, Krzysztof Kolasa wrote:
>> On 21.07.2015 16:03, Daniel Vetter wrote:
>>> On Tue, Jul 21, 2015 at 02:48:21PM +0200, Krzysztof Kolasa wrote:
>>>> On 21.07.2015 11:43, Chris Wilson wrote:
>>>>> On Tue, Jul 21, 2015 at 11:07:20AM +0200, Daniel Vetter wrote:
>>>>>> On Tue, Jul 21, 2015 at 10:58:50AM +0200, Krzysztof Kolasa wrote:
>>>>>>> On 21.07.2015 10:41, Daniel Vetter wrote:
>>>>>>>> I meant whether you can reset the bad commit and it's immediate parent
>>>>>>>> extensively to make sure the bisect is really correct. gpu's occasionally
>>>>>>>> take a while to hang themselves, so could be that the bisect was
>>>>>>>> mislead somewhere.
>>>>>>> Again I will bisect, more testing good sections.
>>>>>>>
>>>>>>> At the moment on my old laptop, the latest official, properly working kernel is 4.1.2
>>>>>> You don't need to redo the full bisect, only retest the bad and the parent
>>>>>> of the bad extensively. That's enough to confirm the bisect result for
>>>>>> sure.
>>>>> The bisection is misleading. It's a missing write-barrier.
>>>>> -Chris
>>>>>
>>>> tested again:
>>>>
>>>> # good: [cd102a687beed1042824d5fa81c6ba8bfe78e6a4] drm/i915: Remove misleading comment around bind_to_vm
>>>> git bisect good cd102a687beed1042824d5fa81c6ba8bfe78e6a4
>>>> # bad: [0875546c5318c85c13d07014af5350e9000bc9e9] drm/i915: Fix up the vma aliasing ppgtt binding
>>>> git bisect bad 0875546c5318c85c13d07014af5350e9000bc9e9
>>>> # first bad commit: [0875546c5318c85c13d07014af5350e9000bc9e9] drm/i915: Fix up the vma aliasing ppgtt binding
>>>>
>>>>
>>>> Screen does not lie :) first bad is BAD, good is GOOD
>>>>
>>>> on commit cd102a687beed10, computer worked steadily (with a large number of windows, applications) about an hour and stopped the tests, everything was OK
>>>>
>>>> on commit 0875546c5318c85, after about one minute, the screen gone mad
>>> Suprising. Can you try out the below patch, it should disable the active
>>> ingredient of the offending. On older kernels just remove the if
>>> (bind_flags) before the call to ->bind_vma - the point is to call
>>> ->bind_vma unconditionally.
>>> -Daniel
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> index cc133c700686..1227cd69c624 100644
>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> @@ -2908,9 +2908,6 @@ int i915_vma_bind(struct i915_vma *vma, enum i915_cache_level cache_level,
>>> else
>>> bind_flags &= ~vma->bound;
>>>
>>> - if (bind_flags == 0)
>>> - return 0;
>>> -
>>> if (vma->bound == 0 && vma->vm->allocate_va_range) {
>>> trace_i915_va_alloc(vma->vm,
>>> vma->node.start,
>>
>> I tested the patch and did not help ...
> Does this one below help?
> -Daniel
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index d2df321ba634..38dce61e028d 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -150,9 +150,6 @@ static int i915_getparam(struct drm_device *dev, void *data,
> case I915_PARAM_HAS_COHERENT_PHYS_GTT:
> value = 1;
> break;
> - case I915_PARAM_MMAP_VERSION:
> - value = 1;
> - break;
> case I915_PARAM_SUBSLICE_TOTAL:
> value = INTEL_INFO(dev)->subslice_total;
> if (!value)
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 52b446b27b4d..c71525cefdf9 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1676,7 +1676,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
> struct drm_gem_object *obj;
> unsigned long addr;
>
> - if (args->flags & ~(I915_MMAP_WC))
> + if (args->flags)
> return -EINVAL;
>
> if (args->flags & I915_MMAP_WC && !cpu_has_pat)

This patch little has changed for the better, after a few minutes the screen several times turned into noise and returned back to almost normal, but after those few occasions computer stopped responding to the keyboard and the screen appeared blinking dashes and noise.

also appeared oops:

Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.993959] ------------[ cut here ]------------
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994002] WARNING: CPU: 0 PID: 34 at drivers/gpu/drm/i915/intel_display.c:3291 intel_crtc_wait_for_pending_flips+0x15c/0x1f0 [i915]()
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994006] WARN_ON(ret)
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994008] Modules linked in: dm_crypt 8192cu(OE) nls_utf8 cifs fscache pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) snd_hda_codec_si3054 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_pcm snd_hwdep snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq joydev i915 serio_raw snd_timer i2c_algo_bit snd_seq_device lpc_ich drm_kms_helper snd drm mac_hid soundcore video coretemp parport_pc ppdev lp parport autofs4 uas usb_storage psmouse ahci pata_acpi libahci 8139too 8139cp mii
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994070] CPU: 0 PID: 34 Comm: kworker/u4:1 Tainted: G W OE 4.2.0-rc3-winsoft-x86+ #2
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994073] Hardware name: FUJITSU SIEMENS AMILO Pro Edition V3405 /AMILO Pro Edition V3405 , BIOS R01-B0E 03/20/2007
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994110] Workqueue: i915-hangcheck i915_hangcheck_elapsed [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994113] 00000000 00000000 f5eb1d5c c183ad60 f5eb1da0 f5eb1d90 c10668fb f88cdd73
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994121] f5eb1dbc 00000022 f88c01c4 00000cdb f88642dc 00000cdb f88642dc f4e88000
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994129] f4dab834 00000001 f5eb1da8 c1066963 00000009 f5eb1da0 f88cdd73 f5eb1dbc
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994136] Call Trace:
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994147] [<c183ad60>] dump_stack+0x41/0x52
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994154] [<c10668fb>] warn_slowpath_common+0x8b/0xc0
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994194] [<f88642dc>] ? intel_crtc_wait_for_pending_flips+0x15c/0x1f0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994232] [<f88642dc>] ? intel_crtc_wait_for_pending_flips+0x15c/0x1f0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994237] [<c1066963>] warn_slowpath_fmt+0x33/0x40
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994276] [<f88642dc>] intel_crtc_wait_for_pending_flips+0x15c/0x1f0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994316] [<f86912a4>] ? drm_modeset_lock_all_crtcs+0x94/0xa0 [drm]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994357] [<f8866057>] intel_crtc_disable_planes+0x37/0xf0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994396] [<f88661ba>] intel_prepare_reset+0x6a/0x80 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994431] [<f883a4e7>] i915_handle_error+0x147/0x6e0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994467] [<f8848cf0>] ? gen2_write16+0xa0/0xa0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994474] [<c10ba4b1>] ? vprintk_default+0x41/0x60
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994509] [<f883acdb>] i915_hangcheck_elapsed+0x20b/0x3c0 [i915]
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994515] [<c100fca2>] ? __switch_to+0x192/0x4f0
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994520] [<c107c7af>] process_one_work+0x11f/0x380
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994524] [<c107d0a9>] worker_thread+0x39/0x450
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994528] [<c107d070>] ? rescuer_thread+0x2c0/0x2c0
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994533] [<c10818fb>] kthread+0x9b/0xb0
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994539] [<c1840781>] ret_from_kernel_thread+0x21/0x30
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994543] [<c1081860>] ? kthread_stop+0xc0/0xc0
Jul 22 11:14:20 AMILO-V3405 kernel: [ 535.994546] ---[ end trace 7e723326a2b87bb9 ]---

Krzysztof