public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Dave Gordon <david.s.gordon@intel.com>
To: intel-gfx@lists.freedesktop.org, Chris Wilson <chris@chris-wilson.co.uk>
Subject: Re: ✗ Fi.CI.BAT: warning for series starting with [1/2] drm/i915: introduce & use i915_gem_object_mark_dirty()
Date: Thu, 28 Apr 2016 19:36:32 +0100	[thread overview]
Message-ID: <57225830.3000508@intel.com> (raw)
In-Reply-To: <20160428174834.30093.50482@emeril.freedesktop.org>

On 28/04/16 18:48, Patchwork wrote:
> == Series Details ==
>
> Series: series starting with [1/2] drm/i915: introduce & use i915_gem_object_mark_dirty()
> URL   : https://patchwork.freedesktop.org/series/6491/
> State : warning
>
> == Summary ==
>
> Series 6491v1 Series without cover letter
> http://patchwork.freedesktop.org/api/1.0/series/6491/revisions/1/mbox/
>
> Test gem_busy:
>          Subgroup basic-blt:
>                  pass       -> DMESG-WARN (bsw-nuc-2)
>                  pass       -> DMESG-WARN (skl-nuci5)
>                  pass       -> DMESG-WARN (bdw-nuci7-2)
>                  pass       -> DMESG-WARN (ivb-t430s)
>                  pass       -> DMESG-WARN (bdw-ultra)
>                  pass       -> DMESG-WARN (skl-i7k-2)
>                  pass       -> DMESG-WARN (byt-nuc)
>                  pass       -> DMESG-WARN (snb-x220t)
>                  pass       -> DMESG-WARN (hsw-brixbox)

Well, that's as expected: it's hitting the WARN_ON() that I put in there 
to check on usage of obj->dirty vs. pages_pin_count. Stack traces are 
all the same, like this one:

[   72.459223] ------------[ cut here ]------------
[   72.459254] WARNING: CPU: 0 PID: 6012 at 
drivers/gpu/drm/i915/i915_drv.h:3027 
i915_gem_object_set_to_gtt_domain+0x21c/0x280 [i915]
[   72.459255] WARN_ON(obj->pages_pin_count == 0)
[   72.459256] Modules linked in:
[   72.459257]  snd_hda_codec_hdmi snd_hda_intel i915 
x86_pkg_temp_thermal snd_hda_codec snd_hwdep snd_hda_core 
intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul mei_me lpc_ich 
ghash_clmulni_intel mei snd_pcm r8169 mii
[   72.459266] CPU: 0 PID: 6012 Comm: gem_busy Tainted: G        W 
  4.6.0-rc5-CI-Patchwork_2105+ #1
[   72.459267] Hardware name: Gigabyte Technology Co., Ltd. 
H87M-D3H/H87M-D3H, BIOS F11 08/18/2015
[   72.459268]  0000000000000000 ffff880212053c80 ffffffff8140de35 
ffff880212053cd0
[   72.459270]  0000000000000000 ffff880212053cc0 ffffffff81079c8c 
00000bd312e5a980
[   72.459272]  ffff880212e5a980 0000000000000001 ffff8800d7c70000 
0000000000000000
[   72.459274] Call Trace:
[   72.459277]  [<ffffffff8140de35>] dump_stack+0x67/0x92
[   72.459280]  [<ffffffff81079c8c>] __warn+0xcc/0xf0
[   72.459281]  [<ffffffff81079cfa>] warn_slowpath_fmt+0x4a/0x50
[   72.459293]  [<ffffffffa01efacb>] ? 
i915_gem_object_flush_cpu_write_domain.part.47+0x14b/0x1b0 [i915]
[   72.459303]  [<ffffffffa01f113c>] 
i915_gem_object_set_to_gtt_domain+0x21c/0x280 [i915]
[   72.459313]  [<ffffffffa01f128e>] 
i915_gem_set_domain_ioctl+0xee/0x160 [i915]
[   72.459315]  [<ffffffff815282ed>] drm_ioctl+0x13d/0x590
[   72.459325]  [<ffffffffa01f11a0>] ? 
i915_gem_object_set_to_gtt_domain+0x280/0x280 [i915]
[   72.459327]  [<ffffffff81199ba7>] ? handle_mm_fault+0x47/0x1e90
[   72.459329]  [<ffffffff811ee38a>] do_vfs_ioctl+0x8a/0x670
[   72.459331]  [<ffffffff811fa21a>] ? __fget_light+0x6a/0x90
[   72.459332]  [<ffffffff811ee9ac>] SyS_ioctl+0x3c/0x70
[   72.459333]  [<ffffffff817dc7a9>] entry_SYSCALL_64_fastpath+0x1c/0xac
[   72.459334] ---[ end trace 156adc997a22f992 ]---

So, is that a bug, marking an object dirty when pages_pin_count is 0? 
Does that mean that a program can set a BO to the GTT domain (or the CPU 
domain?), update its contents, and then it gets paged out due to memory 
pressure and the updates are lost?

Or ... no, I think the problem scenario would be
* set to GTT => mark dirty
* BO paged out => flushed to swap, marked clean
* BO paged in => still clean
* update contents => still clean?
* get paged out => not written out?

Or are we guaranteed to hit another mark_dirty during the process of 
updating the contents of the paged-in buffer?

.Dave.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-04-28 18:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28 16:26 [PATCH 1/2] drm/i915: introduce & use i915_gem_object_mark_dirty() Dave Gordon
2016-04-28 16:26 ` [PATCH 2/2] drm/i915: a couple more uses for i915_gem_object_mark_dirty() Dave Gordon
2016-04-28 16:36   ` Chris Wilson
2016-04-28 17:20     ` Dave Gordon
2016-04-28 17:27       ` Chris Wilson
2016-04-28 16:34 ` [PATCH 1/2] drm/i915: introduce & use i915_gem_object_mark_dirty() Chris Wilson
2016-04-28 17:32   ` Dave Gordon
2016-04-28 17:48 ` ✗ Fi.CI.BAT: warning for series starting with [1/2] " Patchwork
2016-04-28 18:36   ` Dave Gordon [this message]
2016-05-02  8:58     ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57225830.3000508@intel.com \
    --to=david.s.gordon@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox