Bug 75245

Summary: [BYT]igt/gem_evict_alignment/minor-interruptible causes OOM Killer
Product: DRI Reporter: lu hua <huax.lu>
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: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 72742, 75138    
Bug Blocks:    
Attachments:
Description Flags
dmesg
none
dmesg(ceabbb)
none
dmesg(c37f30) none

Description lu hua 2014-02-20 06:33:02 UTC
System Environment:
--------------------------
Platform: Baytrail
Kernel(drm-intel-nightly)1be8f2b4dd6d3db00af24d4891c82d2650bd282d

Bug detailed description:
------------------------- 
gem_evict_alignment subtest minor-interruptible causes OOM Killer.
Run it on Baytrail with -nightly kernel and -queued kernel.
It always fails with OOM killer, run earlier kernel, It also has this issue.

output:
IGT-Version: 1.5-g06189c6 (x86_64) (Linux: 3.13.0_drm-intel-nightly_1be8f2_20140220+ x86_64)
Killed

dmesg:
[  163.745888] [drm:valleyview_set_rps], GPU freq request from 167 MHz (191) to 708 MHz (217)
[  166.044325] sendmail invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
[  166.044425] sendmail cpuset=/ mems_allowed=0
[  166.044479] CPU: 1 PID: 3171 Comm: sendmail Not tainted 3.13.0_drm-intel-nightly_1be8f2_20140220+ #218
[  166.044583]  0000000000000000 00000000000201da ffffffff8171193b ffff8800024886e0
[  166.044683]  ffffffff8170df1a 0000000000000752 0000000000000010 000000000000074d
[  166.044782]  ffff8800721644c0 0000000000000206 ffffffff812cf77a ffff880002489b80
[  166.044881] Call Trace:
[  166.044921]  [<ffffffff8171193b>] ? dump_stack+0x41/0x51
[  166.044985]  [<ffffffff8170df1a>] ? dump_header.isra.8+0x69/0x191
[  166.045057]  [<ffffffff812cf77a>] ? ___ratelimit+0xae/0xc8
[  166.045123]  [<ffffffff810a33b8>] ? oom_kill_process+0x76/0x2f8
[  166.045192]  [<ffffffff810a3b4e>] ? out_of_memory+0x3b2/0x3e5
[  166.045260]  [<ffffffff810a7258>] ? __alloc_pages_nodemask+0x651/0x75e
[  166.045358]  [<ffffffff810d07c3>] ? alloc_pages_current+0xbf/0xdc
[  166.045431]  [<ffffffff810a236c>] ? filemap_fault+0x25c/0x381
[  166.045502]  [<ffffffff810b8116>] ? __do_fault+0xac/0x3bf
[  166.045567]  [<ffffffff810bb872>] ? handle_mm_fault+0x1e7/0x7e2
[  166.045637]  [<ffffffff81719cab>] ? __do_page_fault+0x41c/0x469
[  166.045708]  [<ffffffff810361a1>] ? timespec_add_safe+0x1e/0x4d
[  166.045778]  [<ffffffff810ec585>] ? dput+0x16/0xeb
[  166.045836]  [<ffffffff8106dff5>] ? ktime_get_ts+0x49/0xab
[  166.045900]  [<ffffffff810e99ae>] ? poll_select_copy_remaining+0xe0/0xf6
[  166.045978]  [<ffffffff81717272>] ? page_fault+0x22/0x30
[  166.046039] Mem-Info:
[  166.046068] Node 0 DMA per-cpu:
[  166.046111] CPU    0: hi:    0, btch:   1 usd:   0
[  166.046166] CPU    1: hi:    0, btch:   1 usd:   0
[  166.046221] Node 0 DMA32 per-cpu:
[  166.046265] CPU    0: hi:  186, btch:  31 usd:   0
[  166.046329] CPU    1: hi:  186, btch:  31 usd:   0
[  166.046390] active_anon:11076 inactive_anon:456684 isolated_anon:32

Reproduce steps:
-------------------------
1. ./gem_evict_alignment --run-subtest minor-interruptible
Comment 1 lu hua 2014-02-20 06:33:24 UTC
Created attachment 94409 [details]
dmesg
Comment 2 Imre Deak 2014-02-20 13:59:41 UTC
Bug 75138 is triggered by the same test case and results in an OOM too, so holding off on this until that's resolved.
Comment 3 Chris Wilson 2014-05-20 08:58:12 UTC
commit ceabbba524fb43989875f66a6c06d7ce0410fe5c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Mar 25 13:23:04 2014 +0000

    drm/i915: Include bound and active pages in the count of shrinkable objects
    
    When the machine is under a lot of memory pressure and being stressed by
    multiple GPU threads, we quite often report fewer than shrinker->batch
    (i.e. SHRINK_BATCH) pages to be freed. This causes the shrink_control to
    skip calling into i915.ko to release pages, despite the GPU holding onto
    most of the physical pages in its active lists.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=72742
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Robert Beckett <robert.beckett@intel.com>
    Reviewed-by: Rafael Barbalho <rafael.barbalho@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 4 lu hua 2014-05-21 03:18:52 UTC
Created attachment 99463 [details]
dmesg(ceabbb)

It still fails with OOM killer.
output:
IGT-Version: 1.6-g5e83f04 (x86_64) (Linux: 3.14.0_kcloud_ceabbb_20140521+ x86_64
Killed
Comment 5 Chris Wilson 2014-05-21 05:45:49 UTC
Wrong kernel.
Comment 6 lu hua 2014-05-26 08:37:13 UTC
Created attachment 99845 [details]
dmesg(c37f30)

Test on latest -nightly kernel.It still exists.
output:
IGT-Version: 1.6-gff3c122 (x86_64) (Linux: 3.15.0-rc6_drm-intel-nightly_c37f30_20140526+ x86_64)
Killed

kernel config: https://bugs.freedesktop.org/show_bug.cgi?id=69247#c71
Comment 7 lu hua 2014-06-06 07:11:10 UTC
Test on latest -nightly kernel.It still exists.
Comment 8 lu hua 2014-06-09 02:48:55 UTC
skip instead of oom killer.
IGT-Version: 1.6-g18d2130 (x86_64) (Linux: 3.15.0-rc8_drm-intel-nightly_969b3c_20140608+ x86_64)
Estimated that we need 3222798336 bytes for the test, but only have 1649410048 bytes available (RAM)
Test requirement not met in function minor_evictions, file gem_evict_alignment.c:137:
Last errno: 0, Success
Test requirement: (!(intel_check_memory(2*count, size, 0x1)))
Subtest minor-normal: SKIP
Estimated that we need 6442455040 bytes for the test, but only have 1649410048 bytes available (RAM)
Test requirement not met in function major_evictions, file gem_evict_alignment.c:167:
Last errno: 0, Success
Test requirement: (!(intel_check_memory(count, size, 0x1)))
Subtest major-normal: SKIP
Estimated that we need 3222798336 bytes for the test, but only have 1649410048 bytes available (RAM)
Test requirement not met in function minor_evictions, file gem_evict_alignment.c:137:
Last errno: 0, Success
Test requirement: (!(intel_check_memory(2*count, size, 0x1)))
Subtest minor-interruptible: SKIP
Estimated that we need 6442455040 bytes for the test, but only have 1648361472 bytes available (RAM)
Test requirement not met in function major_evictions, file gem_evict_alignment.c:167:
Last errno: 0, Success
Test requirement: (!(intel_check_memory(count, size, 0x1)))
Subtest major-interruptible: SKIP
Comment 9 Elizabeth 2017-10-06 14:39:42 UTC
Closing old verified.

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.