<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#0000FF;margin:5pt;" align="Left">
[AMD Official Use Only - General]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
Hi Michel,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
Could you please try with the attached firmware package if you see the hang without any reverts?  If you do see hangs, please send dmesg with "drm.debug=0x156 log_buf_len=30M" in the kernel cmdline.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted1">
The attached fw is not released to the public yet, but we will be updating them in linux-firmware tree next week. Please do backup your existing firmware, and put the attached files into /usr/lib/firmware/updates/amgpu and regenerate your ramdisk. On ubuntu
 the following should do:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted1">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted1">
sudo update-initramfs -u -k `uname -r`<br>
</div>
<div class="elementToProof">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div>
<div></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
--</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Regards,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Jay<br>
</div>
</div>
</div>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Michel Dänzer <michel@daenzer.net><br>
<b>Sent:</b> Tuesday, May 9, 2023 6:59 AM<br>
<b>To:</b> Zhuo, Qingqing (Lillian) <Qingqing.Zhuo@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>; Chalmers, Wesley <Wesley.Chalmers@amd.com><br>
<b>Cc:</b> Wang, Chao-kai (Stylon) <Stylon.Wang@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com>; Wentland, Harry <Harry.Wentland@amd.com>; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Li, Roman <Roman.Li@amd.com>; Chiu, Solomon <Solomon.Chiu@amd.com>; Pillai,
 Aurabindo <Aurabindo.Pillai@amd.com>; Lin, Wayne <Wayne.Lin@amd.com>; Lakha, Bhawanpreet <Bhawanpreet.Lakha@amd.com>; Gutierrez, Agustin <Agustin.Gutierrez@amd.com>; Kotarac, Pavle <Pavle.Kotarac@amd.com><br>
<b>Subject:</b> Re: [PATCH 10/66] drm/amd/display: Do not set drr on pipe commit</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On 4/14/23 17:52, Qingqing Zhuo wrote:<br>
> From: Wesley Chalmers <Wesley.Chalmers@amd.com><br>
> <br>
> [WHY]<br>
> Writing to DRR registers such as OTG_V_TOTAL_MIN on the same frame as a<br>
> pipe commit can cause underflow.<br>
> <br>
> [HOW]<br>
> Move DMUB p-state delegate into optimze_bandwidth; enabling FAMS sets<br>
> optimized_required.<br>
> <br>
> This change expects that Freesync requests are blocked when<br>
> optimized_required is true.<br>
> <br>
> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com><br>
> Signed-off-by: Wesley Chalmers <Wesley.Chalmers@amd.com><br>
I bisected a regression to this change, see below for the symptoms. Reverting this patch (and the following patch "drm/amd/display: Block optimize on consecutive FAMS enables", which depends on it) on top of the DRM changes merged for 6.4-rc1 avoids the regression.<br>
<br>
Maybe "Freesync requests are blocked when optimized_required is true" isn't ensured as needed?<br>
<br>
<br>
The symptoms are that the monitor (Samsung Odyssey Neo G9, 5120x1440@240/VRR, connected to Navi 21 via DisplayPort) blanks and the GPU hangs while starting the Steam game Assetto Corsa Competizione (via Proton 7.0).<br>
<br>
Example dmesg excerpt:<br>
<br>
 amdgpu 0000:0c:00.0: [drm] *ERROR* [CRTC:82:crtc-0] flip_done timed out<br>
 NMI watchdog: Watchdog detected hard LOCKUP on cpu 6<br>
 [...]<br>
 RIP: 0010:amdgpu_device_rreg.part.0+0x2f/0xf0 [amdgpu]<br>
 Code: 41 54 44 8d 24 b5 00 00 00 00 55 89 f5 53 48 89 fb 4c 3b a7 60 0b 00 00 73 6a 83 e2 02 74 29 4c 03 a3 68 0b 00 00 45 8b 24 24 <48> 8b 43 08 0f b7 70 3e 66 90 44 89 e0 5b 5d 41 5c 31 d2 31 c9 31<br>
 RSP: 0000:ffffb39a119dfb88 EFLAGS: 00000086<br>
 RAX: ffffffffc0eb96a0 RBX: ffff9e7963dc0000 RCX: 0000000000007fff<br>
 RDX: 0000000000000000 RSI: 0000000000004ff6 RDI: ffff9e7963dc0000<br>
 RBP: 0000000000004ff6 R08: ffffb39a119dfc40 R09: 0000000000000010<br>
 R10: ffffb39a119dfc40 R11: ffffb39a119dfc44 R12: 00000000000e05ae<br>
 R13: 0000000000000000 R14: ffff9e7963dc0010 R15: 0000000000000000<br>
 FS:  000000001012f6c0(0000) GS:ffff9e805eb80000(0000) knlGS:000000007fd40000<br>
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br>
 CR2: 00000000461ca000 CR3: 00000002a8a20000 CR4: 0000000000350ee0<br>
 Call Trace:<br>
  <TASK><br>
  dm_read_reg_func+0x37/0xc0 [amdgpu]<br>
  generic_reg_get2+0x22/0x60 [amdgpu]<br>
  optc1_get_crtc_scanoutpos+0x6a/0xc0 [amdgpu]<br>
  dc_stream_get_scanoutpos+0x74/0x90 [amdgpu]<br>
  dm_crtc_get_scanoutpos+0x82/0xf0 [amdgpu]<br>
  amdgpu_display_get_crtc_scanoutpos+0x91/0x190 [amdgpu]<br>
  ? dm_read_reg_func+0x37/0xc0 [amdgpu]<br>
  amdgpu_get_vblank_counter_kms+0xb4/0x1a0 [amdgpu]<br>
  dm_pflip_high_irq+0x213/0x2f0 [amdgpu]<br>
  amdgpu_dm_irq_handler+0x8a/0x200 [amdgpu]<br>
  amdgpu_irq_dispatch+0xd4/0x220 [amdgpu]<br>
  amdgpu_ih_process+0x7f/0x110 [amdgpu]<br>
  amdgpu_irq_handler+0x1f/0x70 [amdgpu]<br>
  __handle_irq_event_percpu+0x46/0x1b0<br>
  handle_irq_event+0x34/0x80<br>
  handle_edge_irq+0x9f/0x240<br>
  __common_interrupt+0x66/0x110<br>
  common_interrupt+0x5c/0xd0<br>
  asm_common_interrupt+0x22/0x40<br>
<br>
<br>
-- <br>
Earthling Michel Dänzer            |                  <a href="https://redhat.com">
https://redhat.com</a><br>
Libre software enthusiast          |         Mesa and Xwayland developer<br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>