<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
font-size:11.0pt;
font-family:"Arial",sans-serif;
mso-ligatures:standardcontextual;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Arial",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 99.75pt 72.0pt 99.75pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<p style="font-family:Calibri;font-size:10pt;color:#0000FF;margin:5pt;font-style:normal;font-weight:normal;text-decoration:none;" align="Left">
[AMD Official Use Only - AMD Internal Distribution Only]<br>
</p>
<br>
<div>
<div class="WordSection1">
<p class="MsoPlainText"><a id="OWAAM93342BC5185947079C46533D3A83FAD6" href="mailto:Christian.Koenig@amd.com"><span style="font-family:"Arial",sans-serif;text-decoration:none">@Koenig, Christian</span></a> and
<a id="OWAAMF29C1B0CDD8544DA820ECD26D0382CA2" href="mailto:Lijo.Lazar@amd.com"><span style="font-family:"Arial",sans-serif;text-decoration:none">@Lazar, Lijo</span></a><o:p></o:p></p>
<p class="MsoPlainText">Could you help review these changes again?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Best whishes<o:p></o:p></p>
<p class="MsoPlainText">Emily Deng<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">>-----Original Message-----</p>
<p class="MsoPlainText">>From: Samuel Zhang <guoqing.zhang@amd.com></p>
<p class="MsoPlainText">>Sent: Thursday, May 22, 2025 6:41 PM</p>
<p class="MsoPlainText">>To: amd-gfx@lists.freedesktop.org</p>
<p class="MsoPlainText">>Cc: Zhao, Victor <Victor.Zhao@amd.com>; Chang, HaiJun</p>
<p class="MsoPlainText">><HaiJun.Chang@amd.com>; Zhang, GuoQing (Sam) <GuoQing.Zhang@amd.com>;</p>
<p class="MsoPlainText">>Koenig, Christian <Christian.Koenig@amd.com>; Deucher, Alexander</p>
<p class="MsoPlainText">><Alexander.Deucher@amd.com>; Zhang, Owen(SRDC) <Owen.Zhang2@amd.com>;</p>
<p class="MsoPlainText">>Ma, Qing (Mark) <Qing.Ma@amd.com>; Lazar, Lijo <Lijo.Lazar@amd.com>; Deng,</p>
<p class="MsoPlainText">>Emily <Emily.Deng@amd.com></p>
<p class="MsoPlainText">>Subject: [PATCH v8 0/4] enable xgmi node migration support for hibernate on SRIOV</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>On SRIOV and VM environment, customer may need to switch to new vGPU indexes</p>
<p class="MsoPlainText">>after hibernate and then resume the VM. For GPUs with XGMI, `vram_start` will</p>
<p class="MsoPlainText">>change in this case, the FB aperture gpu address of VRAM BOs will also change.</p>
<p class="MsoPlainText">>These gpu addresses need to be updated when resume. But these addresses are all</p>
<p class="MsoPlainText">>over the KMD codebase, updating each of them is error-prone and not acceptable.</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>The solution is to use pdb0 page table to cover both vram and gart memory and use</p>
<p class="MsoPlainText">>pdb0 virtual gpu address instead. When gpu indexes change, the virtual gpu address</p>
<p class="MsoPlainText">>won't change.</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>For psp and smu, pdb0's gpu address does not work, so the original FB aperture gpu</p>
<p class="MsoPlainText">>address is used instead. They need to be updated when resume with changed</p>
<p class="MsoPlainText">>vGPUs.</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>v2:</p>
<p class="MsoPlainText">>- remove physical_node_id_changed</p>
<p class="MsoPlainText">>- set vram_start to 0 to switch cached gpu addr to gart aperture</p>
<p class="MsoPlainText">>- cleanup pdb0 patch</p>
<p class="MsoPlainText">>v3:</p>
<p class="MsoPlainText">>- remove gmc_v9_0_init_sw_mem_ranges() call</p>
<p class="MsoPlainText">>- remove vram_offset memeber</p>
<p class="MsoPlainText">>- add 4 refactoring patch to remove cached gpu addr</p>
<p class="MsoPlainText">>- cleanup pdb0 patch</p>
<p class="MsoPlainText">>v4:</p>
<p class="MsoPlainText">>- remove gmc_v9_0_mc_init() call and `refresh` update.</p>
<p class="MsoPlainText">>- do not set `fb_start` in mmhub_v1_8_get_fb_location() when pdb0 enabled.</p>
<p class="MsoPlainText">>v5:</p>
<p class="MsoPlainText">>- add amdgpu_virt_xgmi_migrate_enabled() check</p>
<p class="MsoPlainText">>- move vram_base_offset update to pdb0 patch</p>
<p class="MsoPlainText">>- remove 4 refactoring patches to remove cached gpu addr</p>
<p class="MsoPlainText">>- add patch to fix IH not working issue when resume with new VF</p>
<p class="MsoPlainText">>v6: per Lijo feedback</p>
<p class="MsoPlainText">>- rename amdgpu_device_update_xgmi_info() to amdgpu_virt_resume()</p>
<p class="MsoPlainText">>- merge xgmi node and vram_base_offset update, IH fix into amdgpu_virt_resume()</p>
<p class="MsoPlainText">>- remove 2 unnecessary gpu addr update changes</p>
<p class="MsoPlainText">>v7: per Christian feedback</p>
<p class="MsoPlainText">>- remove pdb0_enabled and add gmc_v9_0_is_pdb0_enabled()</p>
<p class="MsoPlainText">>- remove amdgpu_gmc_vram_location() call in amdgpu_gmc_sysvm_location()</p>
<p class="MsoPlainText">>- remove check in mmhub_v1_8_get_fb_location() and update fb_start/fb_end on</p>
<p class="MsoPlainText">>resume</p>
<p class="MsoPlainText">>v8:</p>
<p class="MsoPlainText">>- use cached fb_start in amdgpu_bo_fb_aper_addr()</p>
<p class="MsoPlainText">>- remove fb_start/fb_end update in amdgpu_virt_resume() and</p>
<p class="MsoPlainText">>amdgpu_gmc_sysvm_location()</p>
<p class="MsoPlainText">>- use vram_start to set regVM_CONTEXT0_PAGE_TABLE_START_ADDR_*</p>
<p class="MsoPlainText">>- move check to the callsite of amdgpu_virt_resume()</p>
<p class="MsoPlainText">>- add gmc.xgmi.node_segment_size check in amdgpu_virt_xgmi_migrate_enabled()</p>
<p class="MsoPlainText">>- rename gmc_v9_0_is_pdb0_enabled() to amdgpu_gmc_is_pdb0_enabled()</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>Samuel Zhang (4):</p>
<p class="MsoPlainText">> drm/amdgpu: update xgmi info and vram_base_offset on resume</p>
<p class="MsoPlainText">> drm/amdgpu: update GPU addresses for SMU and PSP</p>
<p class="MsoPlainText">> drm/amdgpu: enable pdb0 for hibernation on SRIOV</p>
<p class="MsoPlainText">> drm/amdgpu: fix fence fallback timer expired error</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 38 ++++++++++++++++++++++</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 28 ++++++++++++----</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 2 +-</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 +</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 20 ++++++++++++</p>
<p class="MsoPlainText">>drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 1 +</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 23 +++++++++++++</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 3 ++</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 7 ++++</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c | 8 +++--</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 13 +++++---</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c | 6 ++--</p>
<p class="MsoPlainText">> drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 18 ++++++++++</p>
<p class="MsoPlainText">> 13 files changed, 151 insertions(+), 17 deletions(-)</p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">>--</p>
<p class="MsoPlainText">>2.43.5</p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</div>
</body>
</html>