All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Wake up the device for the fbdev setup
Date: Mon, 4 Sep 2017 20:01:09 +0300	[thread overview]
Message-ID: <20170904170109.GI4914@intel.com> (raw)
In-Reply-To: <150444112049.20870.8523343360428549571@mail.alporthouse.com>

On Sun, Sep 03, 2017 at 01:18:40PM +0100, Chris Wilson wrote:
> Quoting ville.syrjala@linux.intel.com (2017-09-01 20:54:56)
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Our fbdev setup requires the device to be awake for access
> > through the GTT. If one boots without connected displays and
> > later plugs one in, we won't have any runtime PM references when
> > the fbdev setup runs. Explicitly grab a runtime PM reference during
> > the fbdev setup to avoid the following spew:
> > 
> > [   62.518435] RPM wakelock ref not held during HW access
> > [   62.518459] ------------[ cut here ]------------
> > [   62.518546] WARNING: CPU: 3 PID: 37 at ../drivers/gpu/drm/i915/intel_drv.h:1800 i915_vma_pin_iomap+0x144/0x150 [i915]
> > [   62.518585] Modules linked in: i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm intel_gtt agpgart netconsole nls_iso8859_1 nls_cp437 vfat fat efi_pstore coretemp hwmon intel_rapl x86_pkg_temp_thermal e1000e efivars ptp pps_core video evdev ip_tables x_tables ipv6 autofs4
> > [   62.518741] CPU: 3 PID: 37 Comm: kworker/3:1 Not tainted 4.13.0-rc7-skl+ #1077
> > [   62.518770] Hardware name:                  /NUC7i5BNB, BIOS BNKBL357.86A.0048.2017.0704.1415 07/04/2017
> > [   62.518827] Workqueue: events i915_hotplug_work_func [i915]
> > [   62.518853] task: ffff88046c00dc00 task.stack: ffffc90000184000
> > [   62.518896] RIP: 0010:i915_vma_pin_iomap+0x144/0x150 [i915]
> > [   62.518919] RSP: 0018:ffffc90000187cc8 EFLAGS: 00010292
> > [   62.518942] RAX: 000000000000002a RBX: ffff880460044000 RCX: 0000000000000006
> > [   62.518969] RDX: 0000000000000006 RSI: ffffffff819c3e6f RDI: ffffffff819f1c0e
> > [   62.518996] RBP: ffffc90000187cd8 R08: ffff88046c00e4f0 R09: 0000000000000000
> > [   62.519022] R10: ffff8804669ca800 R11: 0000000000000000 R12: ffff880461d20000
> > [   62.519049] R13: ffffc90000187d48 R14: ffff880461d20000 R15: ffff880460044000
> > [   62.519076] FS:  0000000000000000(0000) GS:ffff88047ed80000(0000) knlGS:0000000000000000
> > [   62.519107] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [   62.519130] CR2: 000056478ae213f0 CR3: 0000000002c0f000 CR4: 00000000003406e0
> > [   62.519156] Call Trace:
> > [   62.519190]  intelfb_create+0x176/0x360 [i915]
> > [   62.519216]  __drm_fb_helper_initial_config_and_unlock+0x1c7/0x3c0 [drm_kms_helper]
> > [   62.519251]  drm_fb_helper_hotplug_event.part.18+0xac/0xc0 [drm_kms_helper]
> > [   62.519282]  drm_fb_helper_hotplug_event+0x1a/0x20 [drm_kms_helper]
> > [   62.519324]  intel_fbdev_output_poll_changed+0x1a/0x20 [i915]
> > [   62.519352]  drm_kms_helper_hotplug_event+0x27/0x30 [drm_kms_helper]
> > [   62.519395]  i915_hotplug_work_func+0x24e/0x2b0 [i915]
> > [   62.519420]  process_one_work+0x1d3/0x6d0
> > [   62.519440]  worker_thread+0x4b/0x400
> > [   62.519458]  ? schedule+0x4a/0x90
> > [   62.519475]  ? preempt_count_sub+0x97/0xf0
> > [   62.519495]  kthread+0x114/0x150
> > [   62.519511]  ? process_one_work+0x6d0/0x6d0
> > [   62.519530]  ? kthread_create_on_node+0x40/0x40
> > [   62.519551]  ret_from_fork+0x27/0x40
> > [   62.519569] Code: c4 78 e6 e0 0f ff e9 08 ff ff ff 80 3d d5 bc 0c 00 00 0f 85 0b ff ff ff 48 c7 c7 d8 50 32 a0 c6 05 c1 bc 0c 00 01 e8 9d 78 e6 e0 <0f> ff e9 f1 fe ff ff 0f 1f 44 00 00 0f 1f 44 00 00 0f b6 87 98
> > [   62.519771] ---[ end trace 5fbe271f991a58ae ]---
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Ah right, the current code only works because it assumes the fbcon is
> active on the display (thus holding a wakeref) anytime it writes through
> the fbdev's GGTT iomapping. This is one instance where we need GGTT access
> before the fbcon controls the display, hence needs an explicit wakeref.
> 
> intel_fbdev_set_suspend() is also outside of the fbcon control, I
> presume that (memset_io) works because we hold a wakeref whilst doing
> suspend/resume.
> 
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

Thanks. Pushed to dinq.

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

      reply	other threads:[~2017-09-04 17:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-01 19:54 [PATCH] drm/i915: Wake up the device for the fbdev setup ville.syrjala
2017-09-01 20:15 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-09-02  2:32 ` ✓ Fi.CI.IGT: " Patchwork
2017-09-03 12:18 ` [PATCH] " Chris Wilson
2017-09-04 17:01   ` Ville Syrjälä [this message]

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=20170904170109.GI4914@intel.com \
    --to=ville.syrjala@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.