All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Souza, Jose" <jose.souza@intel.com>
To: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH v3 1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter
Date: Fri, 6 Mar 2020 00:22:09 +0000	[thread overview]
Message-ID: <b56518c3ca01b6bd07ee8a9c8a64e6ec924e3b1c.camel@intel.com> (raw)
In-Reply-To: <20200219185209.GV13686@intel.com>

On Wed, 2020-02-19 at 20:52 +0200, Ville Syrjälä wrote:
> On Wed, Feb 19, 2020 at 06:37:27PM +0000, Souza, Jose wrote:
> > On Wed, 2020-02-19 at 15:37 +0200, Ville Syrjälä wrote:
> > > On Tue, Feb 18, 2020 at 05:42:28PM -0800, José Roberto de Souza
> > > wrote:
> > > > Most of the kms_frontbuffer_tracking tests disables the feature
> > > > being
> > > > tested, draw, get the CRC then enable the feature, draw again,
> > > > get
> > > > the
> > > > CRC and check if it matches.
> > > > Some times it is able to do that with a fastset, so
> > > > intel_pre_plane_update() is executed but
> > > > intel_fbc_can_flip_nuke()
> > > > was
> > > > not checking if FBC is now enabled in this CRTC leaving FBC
> > > > active
> > > > and
> > > > causing the warning bellow in __intel_fbc_disable()
> > > > 
> > > > [IGT] kms_frontbuffer_tracking: starting subtest fbc-1p-pri-
> > > > indfb-
> > > > multidraw
> > > > Setting dangerous option enable_fbc - tainting kernel
> > > > i915 0000:00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting
> > > > PSR
> > > > debug to f
> > > > i915 0000:00:02.0: [drm:intel_psr_debug_set [i915]] Invalid
> > > > debug
> > > > mask f
> > > > i915 0000:00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting
> > > > PSR
> > > > debug to 1
> > > > i915 0000:00:02.0: [drm:intel_atomic_check [i915]]
> > > > [CONNECTOR:215:eDP-1] Limiting display bpp to 24 instead of
> > > > EDID
> > > > bpp 24, requested bpp 36, max platform bpp 36
> > > > [drm:intel_dp_compute_config [i915]] DP link computation with
> > > > max
> > > > lane count 2 max rate 270000 max bpp 24 pixel clock 138120KHz
> > > > [drm:intel_dp_compute_config [i915]] Force DSC en = 0
> > > > [drm:intel_dp_compute_config [i915]] DP lane count 2 clock
> > > > 270000
> > > > bpp 24
> > > > [drm:intel_dp_compute_config [i915]] DP link rate required
> > > > 414360
> > > > available 540000
> > > > i915 0000:00:02.0: [drm:intel_atomic_check [i915]] hw max bpp:
> > > > 24,
> > > > pipe bpp: 24, dithering: 0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > [CRTC:91:pipe A] enable: yes [fastset]
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] active:
> > > > yes,
> > > > output_types: EDP (0x100), output format: RGB
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > cpu_transcoder: EDP, pipe bpp: 24, dithering: 0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] dp m_n:
> > > > lanes: 2; gmch_m: 6436858, gmch_n: 8388608, link_m: 268202,
> > > > link_n:
> > > > 524288, tu: 64
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] audio:
> > > > 0,
> > > > infoframes: 0, infoframes enabled: 0x0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > requested
> > > > mode:
> > > > [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60
> > > > 138120
> > > > 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] adjusted
> > > > mode:
> > > > [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60
> > > > 138120
> > > > 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
> > > > [drm:intel_dump_pipe_config [i915]] crtc timings: 138120 1920
> > > > 1968
> > > > 2018 2052 1080 1084 1086 1122, type: 0x48 flags: 0xa
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] port
> > > > clock:
> > > > 270000, pipe src size: 1920x1080, pixel rate 138120
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > linetime:
> > > > 119, ips linetime: 0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > num_scalers:
> > > > 2, scaler_users: 0x0, scaler_id: -1
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] pch
> > > > pfit:
> > > > pos: 0x00000000, size: 0x00000000, disabled, force thru: no
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] ips: 0,
> > > > double wide: 0
> > > > [drm:icl_dump_hw_state [i915]] dpll_hw_state: cfgcr0:
> > > > 0x1c001a5,
> > > > cfgcr1: 0x8b, mg_refclkin_ctl: 0x0, hg_clktop2_coreclkctl1:
> > > > 0x0,
> > > > mg_clktop2_hsclkctl: 0x0, mg_pll_div0: 0x0, mg_pll_div2: 0x0,
> > > > mg_pll_lf: 0x0, mg_pll_frac_lock: 0x0, mg_pll_ssc: 0x0,
> > > > mg_pll_bias: 0x0, mg_pll_tdc_coldst_bias: 0x0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > csc_mode:
> > > > 0x0 gamma_mode: 0x0 gamma_enable: 0 csc_enable: 0
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] MST
> > > > master
> > > > transcoder: <invalid>
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > [PLANE:31:plane 1A] fb: [FB:262] 1920x1080 format = XR24
> > > > little-
> > > > endian (0x34325258), visible: yes
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] 	rotatio
> > > > n: 0x1, scaler: -1
> > > > i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] 	src:
> > > > 1920.000000x1080.000000+0.000000+0.000000 dst: 1920x1080+0+0
> > > > i915 0000:00:02.0: [drm:intel_psr_disable_locked [i915]]
> > > > Disabling
> > > > PSR1
> > > > i915 0000:00:02.0: [drm:intel_ddi_update_pipe [i915]] Panel
> > > > doesn't
> > > > support DRRS
> > > > ------------[ cut here ]------------
> > > > i915 0000:00:02.0: drm_WARN_ON(fbc->active)
> > > > WARNING: CPU: 4 PID: 1175 at
> > > > drivers/gpu/drm/i915/display/intel_fbc.c:973
> > > > __intel_fbc_disable+0xa5/0x130 [i915]
> > > > Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek
> > > > snd_hda_codec_generic i915 mei_hdcp x86_pkg_temp_thermal
> > > > coretemp
> > > > crct10dif_pclmul snd_hda_intel crc32_pclmul snd_intel_dspcfg
> > > > snd_hda_codec ghash_clmulni_intel snd_hwdep snd_hda_core
> > > > cdc_ether
> > > > e1000e usbnet mii snd_pcm ptp mei_me pps_core mei thunderbolt
> > > > intel_lpss_pci prime_numbers
> > > > CPU: 4 PID: 1175 Comm: kms_frontbuffer Tainted:
> > > > G     U            5.5.0-CI-Trybot_5651+ #1
> > > > Hardware name: Intel Corporation Ice Lake Client
> > > > Platform/IceLake U
> > > > DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.3234.A01.1906141750
> > > > 06/14/2019
> > > > RIP: 0010:__intel_fbc_disable+0xa5/0x130 [i915]
> > > > Code: 8b 67 50 4d 85 e4 0f 84 8f 00 00 00 e8 44 33 30 e1 48 c7
> > > > c1
> > > > 72 f6 4c a0 4c 89 e2 48 89 c6 48 c7 c7 42 f6 4c a0 e8 0b 9d ce
> > > > e0
> > > > <0f> 0b eb 90 48 8b 7b 18 4c 8b 67 50 4d 85 e4 74 6d e8 15 33
> > > > 30 e1
> > > > RSP: 0018:ffffc90000613b68 EFLAGS: 00010282
> > > > RAX: 0000000000000000 RBX: ffff8884799d0000 RCX:
> > > > 0000000000000006
> > > > RDX: 0000000000001905 RSI: ffff888495dac970 RDI:
> > > > ffffffff823731a1
> > > > RBP: ffff88847c05d000 R08: ffff888495dac970 R09:
> > > > 0000000000000000
> > > > R10: ffffc90000613b88 R11: 0000000000000000 R12:
> > > > ffff88849bba7e40
> > > > R13: ffff8884799d0000 R14: ffff888498564000 R15:
> > > > 0000000000000000
> > > > FS:  00007f8157f08300(0000) GS:ffff8884a0000000(0000)
> > > > knlGS:0000000000000000
> > > > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > > CR2: 00007ffdbfea2eb8 CR3: 000000049d1cc001 CR4:
> > > > 0000000000760ee0
> > > > PKRU: 55555554
> > > > Call Trace:
> > > >  intel_fbc_disable+0x4a/0x50 [i915]
> > > >  intel_update_crtc+0x12c/0x1d0 [i915]
> > > >  skl_commit_modeset_enables+0x14d/0x600 [i915]
> > > >  intel_atomic_commit_tail+0x30d/0x1480 [i915]
> > > >  ? queue_work_on+0x31/0x70
> > > >  ? intel_atomic_commit_ready+0x3f/0x48 [i915]
> > > >  ? __i915_sw_fence_complete+0x1a0/0x250 [i915]
> > > >  intel_atomic_commit+0x312/0x390 [i915]
> > > >  intel_psr_fastset_force+0x119/0x150 [i915]
> > > >  i915_edp_psr_debug_set+0x53/0x70 [i915]
> > > >  simple_attr_write+0xb0/0xd0
> > > >  full_proxy_write+0x51/0x80
> > > >  vfs_write+0xb9/0x1d0
> > > >  ksys_write+0x9f/0xe0
> > > >  do_syscall_64+0x4f/0x220
> > > >  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> > > > RIP: 0033:0x7f8157240281
> > > > Code: c3 0f 1f 84 00 00 00 00 00 48 8b 05 59 8d 20 00 c3 0f 1f
> > > > 84
> > > > 00 00 00 00 00 8b 05 8a d1 20 00 85 c0 75 16 b8 01 00 00 00 0f
> > > > 05
> > > > <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89
> > > > d4 53
> > > > RSP: 002b:00007ffdbfea59d8 EFLAGS: 00000246 ORIG_RAX:
> > > > 0000000000000001
> > > > RAX: ffffffffffffffda RBX: 0000000000000000 RCX:
> > > > 00007f8157240281
> > > > RDX: 0000000000000003 RSI: 00007f8157901152 RDI:
> > > > 0000000000000008
> > > > RBP: 0000000000000003 R08: 0000000000000000 R09:
> > > > 0000000000000000
> > > > R10: 0000000000000000 R11: 0000000000000246 R12:
> > > > 00007f8157901152
> > > > R13: 0000000000000008 R14: 00005589d298dce0 R15:
> > > > 0000000000000000
> > > > irq event stamp: 55208
> > > > hardirqs last  enabled at (55207): [<ffffffff8112f3fc>]
> > > > vprintk_emit+0xcc/0x330
> > > > hardirqs last disabled at (55208): [<ffffffff81001ca0>]
> > > > trace_hardirqs_off_thunk+0x1a/0x1c
> > > > softirqs last  enabled at (54926): [<ffffffff81e00385>]
> > > > __do_softirq+0x385/0x47f
> > > > softirqs last disabled at (54915): [<ffffffff810ba15a>]
> > > > irq_exit+0xba/0xc0
> > > > ---[ end trace afa50c52e5a512bb ]---
> > > > [drm:__intel_fbc_disable [i915]] Disabling FBC on pipe A
> > > > i915 0000:00:02.0: [drm:verify_connector_state [i915]]
> > > > [CONNECTOR:215:eDP-1]
> > > > i915 0000:00:02.0: [drm:intel_atomic_commit_tail [i915]]
> > > > [CRTC:91:pipe A]
> > > > [drm:intel_ddi_get_config [i915]] [ENCODER:214:DDI A] Fec
> > > > status: 0
> > > > i915 0000:00:02.0: [drm:verify_single_dpll_state.isra.150
> > > > [i915]]
> > > > DPLL 0
> > > > 
> > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/display/intel_fbc.c | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > > 
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > index ddf8d3bb7a7d..a6038fe74f63 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > @@ -856,6 +856,9 @@ static bool intel_fbc_can_flip_nuke(const
> > > > struct intel_crtc_state *crtc_state)
> > > >  	if (drm_atomic_crtc_needs_modeset(&crtc_state->uapi))
> > > >  		return false;
> > > >  
> > > > +	if (!crtc_state->enable_fbc)
> > > > +		return false;
> > > 
> > > The code is still quite the horror show, but from the looks of
> > > things
> > > we'd want this check in intel_fbc_can_activate() instead.
> > 
> > From intel_fbc_flush() we don't have the intel_crtc_state, so move
> > it
> > to intel_fbc_can_activate() and cache the enable_fbc in
> > intel_fbc_update_state_cache() too?
> 
> Oh, I failed to notice you're looking at the crtc state here. Thought
> you just check the modparam directly. I'd just call
> intel_fbc_can_enable()
> in intel_fbc_can_activate() directly. That crtc_state->enable_fbc
> thing
> is just hopelessly broken atm.

crtc_state->enable_fbc=true is backed by intel_fbc_can_enable() and
later we have:
intel_update_crtc()
	...
	if (new_crtc_state->update_pipe && !new_crtc_state->enable_fbc)
		intel_fbc_disable(crtc);

My felling it that would be more consistent keep using it but let me
know what you think is best.

> 
> > > With the check relocated this is
> > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > PS. Oh dear, we still have that crtc_state->enable_fbc mess in
> > > there.
> > > I should have patches to eliminate that tucked away in a branch
> > > somewhere...
> > > 
> > > > +
> > > >  	if (!params->plane_visible)
> > > >  		return false;
> > > >  
> > > > -- 
> > > > 2.25.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-03-06  0:22 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19  1:42 [Intel-gfx] [PATCH v3 1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter José Roberto de Souza
2020-02-19  1:42 ` [Intel-gfx] [PATCH v3 2/3] drm/i915/display: Do not write in removed FBC fence registers José Roberto de Souza
2020-02-19  1:42 ` [Intel-gfx] [PATCH v3 3/3] drm/i915/display/fbc: Make fences a nice-to-have for GEN9+ José Roberto de Souza
2020-02-20 17:26   ` Ville Syrjälä
2020-03-06  1:32     ` Souza, Jose
2020-03-12  0:35       ` Souza, Jose
2020-03-18 12:44         ` Ville Syrjälä
2020-03-19 21:12           ` Souza, Jose
2020-03-18 13:30       ` Ville Syrjälä
2020-03-19 21:12         ` Souza, Jose
2020-02-19  5:38 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter Patchwork
2020-02-19  6:02 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-02-19 13:37 ` [Intel-gfx] [PATCH v3 1/3] " Ville Syrjälä
2020-02-19 18:37   ` Souza, Jose
2020-02-19 18:52     ` Ville Syrjälä
2020-03-06  0:22       ` Souza, Jose [this message]
2020-03-06 14:22         ` Ville Syrjälä
2020-03-06  8:15 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [v3,1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter (rev2) Patchwork

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=b56518c3ca01b6bd07ee8a9c8a64e6ec924e3b1c.camel@intel.com \
    --to=jose.souza@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /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.