Bug 79573

Summary: [ILK/BDW]igt/gem_evict_everything subcases minor-interruptible and minor-normal fail
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Imre Deak <imre.deak>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
dmesg with patch
none
dmesg none

Description Guo Jinxian 2014-06-03 05:47:40 UTC
Created attachment 100339 [details]
dmesg

==System Environment==
--------------------------
Regression: No. 
These cases always fail

Non-working platforms: ILK BDW

==kernel==
--------------------------
origin/drm-intel-nightly: 455a8fc4304af51a913e33763b72dd2849c11d0c(fails)
    drm-intel-nightly: 2014y-06m-02d-19h-49m-25s integration manifest
origin/drm-intel-next-queued: 866997c6fc0d3ed9fa35770d23ba2f48c17919c7(fails)
    drm/i915: Drop unused lut tables from intel_plane
origin/drm-intel-fixes: d23db88c3ab233daed18709e3a24d6c95344117f(fails)
    drm/i915: Prevent negative relocation deltas from wrapping

==Bug detailed description==
-----------------------------
igt/gem_evict_everything subcases minor-interruptible and minor-normal fail

Output:
./gem_evict_everything --run-subtest minor-interruptible
IGT-Version: 1.6-g532b7e6 (x86_64) (Linux: 3.15.0-rc3_drm-intel-next-queued_866997_20140603+ x86_64)
Test assertion failure function copy, file gem_evict_everything.c:125:
Last errno: 0, Success
Failed assertion: ret == error
Subtest minor-interruptible: FAIL

==Reproduce steps==
---------------------------- 
1. ./gem_evict_everything --run-subtest minor-interruptible
Comment 1 Chris Wilson 2014-06-03 06:36:57 UTC
Can you please update the error message after applying

commit a384e55b49dce17eff1945536f957546bc7902cf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 3 07:31:49 2014 +0100

    igt/gem_evict_everything: Move assertion
    
    If we move the assertion from out of the callback, we can get a much
    more useful error message.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 2 Guo Jinxian 2014-06-04 01:49:31 UTC
Created attachment 100375 [details]
dmesg with patch

(In reply to comment #1)
> Can you please update the error message after applying
> 
> commit a384e55b49dce17eff1945536f957546bc7902cf
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Tue Jun 3 07:31:49 2014 +0100
> 
>     igt/gem_evict_everything: Move assertion
>     
>     If we move the assertion from out of the callback, we can get a much
>     more useful error message.
>     
>     References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Output:
./gem_evict_everything --run-subtest minor-interruptible
IGT-Version: 1.6-g3c70e6a (x86_64) (Linux: 3.15.0-rc7_drm-intel-nightly_455a8f_20140603+ x86_64)
Test assertion failure function minor_evictions, file eviction_common.c:97:
Last errno: 0, Success
Failed assertion: ret == ENOSPC
Subtest minor-interruptible: FAIL
Comment 3 Chris Wilson 2014-06-05 12:35:41 UTC
I've refined the load calculation, fearing that we have an integer overflow. Can you please recheck with IGT_LOG_LEVEL=debug, i.e.

IGT_LOG_LEVEL=debug ./gem_evict_everything --run-subtest minor-interruptible


commit a1a8aa16fb4e27a267f4ac12883419114a020dd7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 5 13:19:39 2014 +0100

    igt/gem_evict_everything: Compute number of surfaces to saturate the aperture
    
    The goal is to only fill the aperture, not all of memory, so fine-tune
    the computed number of surfaces, hopefully avoiding an integer overflow
    in the process.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 4 Guo Jinxian 2014-06-06 03:34:03 UTC
Created attachment 100501 [details]
dmesg

(In reply to comment #3)
> I've refined the load calculation, fearing that we have an integer overflow.
> Can you please recheck with IGT_LOG_LEVEL=debug, i.e.
> 
> IGT_LOG_LEVEL=debug ./gem_evict_everything --run-subtest minor-interruptible
> 
> 
> commit a1a8aa16fb4e27a267f4ac12883419114a020dd7
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Thu Jun 5 13:19:39 2014 +0100
> 
>     igt/gem_evict_everything: Compute number of surfaces to saturate the
> aperture
>     
>     The goal is to only fill the aperture, not all of memory, so fine-tune
>     the computed number of surfaces, hopefully avoiding an integer overflow
>     in the process.
>     
>     References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Test on latest igt: 9a70e29f8380c2fc6f9b43757c68e24bf2619061, the result was skip.
Output:
 IGT_LOG_LEVEL=debug ./gem_evict_everything --run-subtest minor-interruptible
IGT-Version: 1.6-g9a70e29 (x86_64) (Linux: 3.15.0-rc7_drm-intel-nightly_0a37b5_20140604+ x86_64)
Checking 4097 surfaces of size 1048576 bytes (total 4298117120) against RAM
Estimated that we need 4298117120 bytes for the test, but only have 3904897024 bytes available (RAM)
Test requirement not met in function minor_evictions, file eviction_common.c:79:
Last errno: 0, Success
Test requirement: (!(intel_check_memory(total_surfaces, surface_size, 0x1)))
Subtest minor-interruptible: SKIP
Comment 5 Chris Wilson 2014-06-06 07:11:44 UTC
Machine is not capable of running the test (not enough RAM).
Comment 6 Gordon Jin 2014-06-15 08:47:30 UTC
looks like a valid bug, and the patch mentioned in comment#3 fixed the problem (FAIL->SKIP).
Comment 7 Chris Wilson 2014-06-15 12:15:49 UTC
No. It was *NOT* fixed. The commit just demonstrated that the machine as configured was not capable of running the test -- even though that was the machine's raison d'etre.
Comment 8 Gordon Jin 2014-06-15 13:37:15 UTC
For machines not capable of running the test (not enough RAM), we should expect the test to return SKIP, right? But it was wrong to return FAIL -- that's the bug reported here. And it's FIXED.
Comment 9 Chris Wilson 2014-06-15 13:42:23 UTC
No. The test tried to do something that was impossible, the kernel behaved appropriately. The machine is incorrectly configured to run the test.
Comment 10 Gordon Jin 2014-06-15 23:51:42 UTC
(In reply to comment #9)
> No. The test tried to do something that was impossible, the kernel behaved
> appropriately. The machine is incorrectly configured to run the test.

Do you mean the test or the machine is invalid? (I thought you fixed the test)

Could you elaborate what's wrong for the machine configuration?
Comment 11 Gordon Jin 2014-08-01 08:29:37 UTC
without good explanation for why this machines is considered incorrectly configured, I'm keeping my opinion this is a valid bug, and already fixed in igt.
Comment 12 Jari Tahvanainen 2017-08-14 08:31:42 UTC
Moving old bug from Verified to Closed.

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