<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">On 2017年04月06日 21:56, Zhang, Jerry
wrote:<br>
</div>
<blockquote cite="mid:51C2AE07-B2D3-4A81-97FE-A79BDA5DBB8D@amd.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">在 2017年4月6日,20:07,Christian König <<a
moz-do-not-send="true"
href="mailto:deathsimple@vodafone.de" class="">deathsimple@vodafone.de</a>>
写道:</div>
<br class="Apple-interchange-newline">
<div class=""><span style="font-family: Helvetica; font-size:
12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
float: none; display: inline !important;" class="">Am
06.04.2017 um 12:19 schrieb Junwei Zhang:</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<blockquote type="cite" style="font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
By default, the value is set by individual gmc.<br
class="">
if a specific value is input, it overrides the global
value for all<br class="">
<br class="">
v2: create helper funcs<br class="">
<br class="">
Signed-off-by: Junwei Zhang <<a moz-do-not-send="true"
href="mailto:Jerry.Zhang@amd.com" class="">Jerry.Zhang@amd.com</a>><br
class="">
</blockquote>
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">A few minor
issues below, but apart from that looks good to me.</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<blockquote type="cite" style="font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
---<br class="">
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 31
++++++++++--------------<br class="">
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-<br
class="">
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 38
++++++++++++++++++++++++++++++<br class="">
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 1 +<br
class="">
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 6 +----<br
class="">
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 6 +----<br
class="">
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +----<br
class="">
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 9 ++++---<br
class="">
8 files changed, 60 insertions(+), 39 deletions(-)<br
class="">
<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br class="">
index 1d0c742..8fce309 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br
class="">
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br
class="">
@@ -1039,35 +1039,31 @@ static bool
amdgpu_check_pot_argument(int arg)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>return
(arg & (arg - 1)) == 0;<br class="">
}<br class="">
-static void amdgpu_get_block_size(struct amdgpu_device
*adev)<br class="">
+static void amdgpu_check_block_size(struct amdgpu_device
*adev)<br class="">
{<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
defines number of bits in page table versus page
directory,<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* a page is 4KB so
we have 12 bits offset, minimum 9 bits in the<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* page table and
the remaining bits are in the page directory */<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(amdgpu_vm_block_size == -1) {<br class="">
-<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>/*
Total bits covered by PD + PTs */<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>unsigned
bits = ilog2(amdgpu_vm_size) + 18;<br class="">
-<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>/*
Make sure the PD is 4K in size up to 8GB address space.<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-converted-space"> </span> Above that split
equal between PD and PTs */<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>if
(amdgpu_vm_size <= 8)<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_vm_block_size
= bits - 9;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>else<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_vm_block_size
= (bits + 3) / 2;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(amdgpu_vm_block_size == -1)<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>return;<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>} else if (amdgpu_vm_block_size < 9) {<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(amdgpu_vm_block_size < 9) {<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>dev_warn(adev->dev,
"VM page table size (%d) too small\n",<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-converted-space"> </span>amdgpu_vm_block_size);<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_vm_block_size
= 9;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>goto
def_value;<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br
class="">
<span class="Apple-tab-span" style="white-space: pre;">
</span>if (amdgpu_vm_block_size > 24 ||<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span> (amdgpu_vm_size
* 1024) < (1ull << amdgpu_vm_block_size)) {<br
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>dev_warn(adev->dev,
"VM page table size (%d) too large\n",<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-converted-space"> </span>amdgpu_vm_block_size);<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_vm_block_size
= 9;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>goto
def_value;<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br
class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br
class="">
+<br class="">
+def_value:<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_block_size
= -1;<br class="">
}<br class="">
static void amdgpu_check_vm_size(struct amdgpu_device
*adev)<br class="">
@@ -1096,8 +1092,7 @@ static void
amdgpu_check_vm_size(struct amdgpu_device *adev)<br
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br
class="">
def_value:<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_size
= 8;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>dev_info(adev->dev,
"set default VM size %dGB\n", amdgpu_vm_size);<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_size
= -1;<br class="">
}<br class="">
/**<br class="">
@@ -1131,7 +1126,7 @@ static void
amdgpu_check_arguments(struct amdgpu_device *adev)<br
class="">
<span class="Apple-tab-span" style="white-space: pre;">
</span>amdgpu_check_vm_size(adev);<br class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>amdgpu_get_block_size(adev);<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_check_block_size(adev);<br
class="">
<span class="Apple-tab-span" style="white-space: pre;">
</span>if (amdgpu_vram_page_split != -1 &&
(amdgpu_vram_page_split < 16 ||<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span> !amdgpu_check_pot_argument(amdgpu_vram_page_split)))
{<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br class="">
index bfd945b..6238e2e 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br class="">
@@ -86,7 +86,7 @@<br class="">
unsigned amdgpu_ip_block_mask = 0xffffffff;<br class="">
int amdgpu_bapm = -1;<br class="">
int amdgpu_deep_color = 0;<br class="">
-int amdgpu_vm_size = 64;<br class="">
+int amdgpu_vm_size = -1;<br class="">
int amdgpu_vm_block_size = -1;<br class="">
int amdgpu_vm_fault_stop = 0;<br class="">
int amdgpu_vm_debug = 0;<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c<br class="">
index 8785420..bc2650ef 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c<br class="">
@@ -2064,6 +2064,44 @@ void amdgpu_vm_bo_invalidate(struct
amdgpu_device *adev,<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br
class="">
}<br class="">
+static uint32_t amdgpu_get_block_size(uint64_t vm_size)<br
class="">
</blockquote>
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">Please rename
that to amdgpu_vm_get_block_size().</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<blockquote type="cite" style="font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
+{<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
Total bits covered by PD + PTs */<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>unsigned
bits = ilog2(vm_size) + 18;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
Make sure the PD is 4K in size up to 8GB address space.<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span> Above that split
equal between PD and PTs */<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(vm_size <= 8)<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>return
(bits - 9);<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>return
((bits + 3) / 2);<br class="">
+}<br class="">
+<br class="">
+/**<br class="">
+ * amdgpu_vm_adjust_size - adjust vm size and block size<br
class="">
+ *<br class="">
+ * @adev: amdgpu_device pointer<br class="">
+ * @vm_size: the default vm size if it's set auto<br
class="">
+ */<br class="">
+void amdgpu_vm_adjust_size(struct amdgpu_device *adev,
uint64_t vm_size)<br class="">
+{<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
adjust vm size firstly */<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(amdgpu_vm_size == -1)<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size
= vm_size;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size
= amdgpu_vm_size;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
block size depends on vm size */<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(amdgpu_vm_block_size == -1)<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.block_size
=<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_get_block_size(adev->vm_manager.vm_size);<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.block_size
= amdgpu_vm_block_size;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>DRM_INFO("vm
size is %llu GB, block size is %u-bit\n",<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,
adev->vm_manager.block_size);<br class="">
+}<br class="">
+<br class="">
/**<br class="">
* amdgpu_vm_init - initialize a vm instance<br class="">
*<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h<br class="">
index 7d01372..6f158d6 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h<br class="">
@@ -234,5 +234,6 @@ int amdgpu_vm_bo_clear_mappings(struct
amdgpu_device *adev,<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>uint64_t
saddr, uint64_t size);<br class="">
void amdgpu_vm_bo_rmv(struct amdgpu_device *adev,<br
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-converted-space"> </span> struct
amdgpu_bo_va *bo_va);<br class="">
+void amdgpu_vm_adjust_size(struct amdgpu_device *adev,
uint64_t vm_size);<br class="">
#endif<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c<br class="">
index 30d5c42..631aef3 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c<br class="">
@@ -849,13 +849,9 @@ static int gmc_v6_0_sw_init(void
*handle)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(r)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>return
r;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>adev->vm_manager.vm_size = amdgpu_vm_size;<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.block_size
= amdgpu_vm_block_size;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_adjust_size(adev,
64);<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.max_pfn
= adev->vm_manager.vm_size << 18;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>DRM_INFO("vm size is %d GB, block size is
%d-bit\n",<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,
adev->vm_manager.block_size);<br class="">
-<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->mc.mc_mask
= 0xffffffffffULL;<br class="">
<span class="Apple-tab-span" style="white-space: pre;">
</span>adev->need_dma32 = false;<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c<br class="">
index 7113765..92abe12 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c<br class="">
@@ -1003,13 +1003,9 @@ static int gmc_v7_0_sw_init(void
*handle)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* Currently set to
4GB ((1 << 20) 4k pages).<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* Max GPUVM size
for cayman and SI is 40 bits.<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>*/<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.vm_size
= amdgpu_vm_size;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.block_size
= amdgpu_vm_block_size;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_adjust_size(adev,
64);<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.max_pfn
= adev->vm_manager.vm_size << 18;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>DRM_INFO("vm size is %d GB, block size is
%d-bit\n",<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,
adev->vm_manager.block_size);<br class="">
-<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
Set the internal MC address mask<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* This is the max
address of the GPU's<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* internal address
space.<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c<br class="">
index b3d1f1b..f2ccefc 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c<br class="">
@@ -1087,13 +1087,9 @@ static int gmc_v8_0_sw_init(void
*handle)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* Currently set to
4GB ((1 << 20) 4k pages).<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* Max GPUVM size
for cayman and SI is 40 bits.<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>*/<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.vm_size
= amdgpu_vm_size;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.block_size
= amdgpu_vm_block_size;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span>amdgpu_vm_adjust_size(adev,
64);<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>adev->vm_manager.max_pfn
= adev->vm_manager.vm_size << 18;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>DRM_INFO("vm size is %d GB, block size is
%d-bit\n",<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,
adev->vm_manager.block_size);<br class="">
-<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
Set the internal MC address mask<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* This is the max
address of the GPU's<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-converted-space"> </span>* internal address
space.<br class="">
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c<br class="">
index e1637d5..77e7784f 100644<br class="">
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c<br class="">
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c<br class="">
@@ -552,8 +552,7 @@ static int gmc_v9_0_sw_init(void
*handle)<br class="">
<span class="Apple-tab-span" style="white-space: pre;">
</span>if (adev->flags & AMD_IS_APU) {<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->mc.vram_type
= AMDGPU_VRAM_TYPE_UNKNOWN;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size
= amdgpu_vm_size;<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.block_size
= amdgpu_vm_block_size;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>amdgpu_vm_adjust_size(adev,
64);<br class="">
</blockquote>
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">Make sure we
also use 1 level page tables in the APU case as well.</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
</div>
</blockquote>
<div><br class="">
</div>
<div>I also flashed a idea about it.</div>
<div>Does APU still uses 1 level page now for gmc v9?</div>
</div>
</blockquote>
No, it's same as Vega.<br>
<br>
David<br>
<blockquote cite="mid:51C2AE07-B2D3-4A81-97FE-A79BDA5DBB8D@amd.com"
type="cite">
<div>
<div><br class="">
</div>
<div>Jerry<br class="">
</div>
<br class="">
<blockquote type="cite" class="">
<div class=""><br style="font-family: Helvetica; font-size:
12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">With that done
and the function renamed the patch is Reviewed-by:
Christian König <</span><a moz-do-not-send="true"
href="mailto:christian.koenig@amd.com" style="font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant: normal; font-weight: normal; letter-spacing:
normal; line-height: normal; orphans: auto; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">christian.koenig@amd.com</a><span
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">>.</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">Regards,</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; float:
none; display: inline !important;" class="">Christian.</span><br
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<br style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<blockquote type="cite" style="font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: start; text-indent:
0px; text-transform: none; white-space: normal; widows:
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}
else {<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>/*
XXX Don't know how to get VRAM type yet. */<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->mc.vram_type
= AMDGPU_VRAM_TYPE_HBM;<br class="">
@@ -564,11 +563,11 @@ static int gmc_v9_0_sw_init(void
*handle)<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-converted-space"> </span>*/<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size
= 1U << 18;<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.block_size
= 9;<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>DRM_INFO("vm
size is %llu GB, block size is %u-bit\n",<br class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,<br
class="">
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.block_size);<br
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br
class="">
-<span class="Apple-tab-span" style="white-space: pre;">
</span>DRM_INFO("vm size is %d GB, block size is
%d-bit\n",<br class="">
-<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span>adev->vm_manager.vm_size,
adev->vm_manager.block_size);<br class="">
-<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>/*
This interrupt is VMC page fault.*/<br class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span>r
= amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_VMC, 0,<br
class="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span><span
class="Apple-tab-span" style="white-space: pre;"></span>&adev->mc.vm_fault);</blockquote>
</div>
</blockquote>
</div>
<br class="">
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
amd-gfx mailing list
<a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a>
</pre>
</blockquote>
<br>
</body>
</html>