* [PATCH] drm/amd/amdgpu: remove vram_page_split kernel option (v3)
@ 2019-06-06 10:50 StDenis, Tom
[not found] ` <20190606105023.13750-1-tom.stdenis-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: StDenis, Tom @ 2019-06-06 10:50 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org; +Cc: StDenis, Tom
This option is no longer needed. The default code paths
are now the only option.
v2: Add HPAGE support and a default for non contiguous maps
v3: Misread 512 pages as MiB ...
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 -------
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 --------
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 14 +++++++++-----
4 files changed, 9 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 19a00282e34c..e54f31865f60 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -142,7 +142,6 @@ extern uint amdgpu_sdma_phase_quantum;
extern char *amdgpu_disable_cu;
extern char *amdgpu_virtual_display;
extern uint amdgpu_pp_feature_mask;
-extern int amdgpu_vram_page_split;
extern int amdgpu_ngg;
extern int amdgpu_prim_buf_per_se;
extern int amdgpu_pos_buf_per_se;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 0212c9ee317c..2e13b8ef6681 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -973,13 +973,6 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev)
amdgpu_device_check_block_size(adev);
- if (amdgpu_vram_page_split != -1 && (amdgpu_vram_page_split < 16 ||
- !is_power_of_2(amdgpu_vram_page_split))) {
- dev_warn(adev->dev, "invalid VRAM page split (%d)\n",
- amdgpu_vram_page_split);
- amdgpu_vram_page_split = 1024;
- }
-
ret = amdgpu_device_get_job_timeout_settings(adev);
if (ret) {
dev_err(adev->dev, "invalid lockup_timeout parameter syntax\n");
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 1f38d6fc1fe3..ef22a2a25448 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -108,7 +108,6 @@ int amdgpu_vm_fragment_size = -1;
int amdgpu_vm_block_size = -1;
int amdgpu_vm_fault_stop = 0;
int amdgpu_vm_debug = 0;
-int amdgpu_vram_page_split = 512;
int amdgpu_vm_update_mode = -1;
int amdgpu_exp_hw_support = 0;
int amdgpu_dc = -1;
@@ -342,13 +341,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, int, 0644);
MODULE_PARM_DESC(vm_update_mode, "VM update using CPU (0 = never (default except for large BAR(LB)), 1 = Graphics only, 2 = Compute only (default for LB), 3 = Both");
module_param_named(vm_update_mode, amdgpu_vm_update_mode, int, 0444);
-/**
- * DOC: vram_page_split (int)
- * Override the number of pages after we split VRAM allocations (default 512, -1 = disable). The default is 512.
- */
-MODULE_PARM_DESC(vram_page_split, "Number of pages after we split VRAM allocations (default 512, -1 = disable)");
-module_param_named(vram_page_split, amdgpu_vram_page_split, int, 0444);
-
/**
* DOC: exp_hw_support (int)
* Enable experimental hw support (1 = enable). The default is 0 (disabled).
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
index ec9ea3fdbb4a..8aea2f21b202 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
@@ -284,17 +284,21 @@ static int amdgpu_vram_mgr_new(struct ttm_mem_type_manager *man,
if (!lpfn)
lpfn = man->size;
- if (place->flags & TTM_PL_FLAG_CONTIGUOUS ||
- amdgpu_vram_page_split == -1) {
+ if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
pages_per_node = ~0ul;
num_nodes = 1;
} else {
- pages_per_node = max((uint32_t)amdgpu_vram_page_split,
- mem->page_alignment);
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+ pages_per_node = HPAGE_PMD_NR;
+#else
+ /* default to 2MB */
+ pages_per_node = (2UL << (20UL - PAGE_SHIFT));
+#endif
+ pages_per_node = max((uint32_t)pages_per_node, mem->page_alignment);
num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node);
}
- nodes = kvmalloc_array(num_nodes, sizeof(*nodes),
+ nodes = kvmalloc_array((uint32_t)num_nodes, sizeof(*nodes),
GFP_KERNEL | __GFP_ZERO);
if (!nodes)
return -ENOMEM;
--
2.21.0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 4+ messages in thread[parent not found: <20190606105023.13750-1-tom.stdenis-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] drm/amd/amdgpu: remove vram_page_split kernel option (v3) [not found] ` <20190606105023.13750-1-tom.stdenis-5C7GfCeVMHo@public.gmane.org> @ 2019-06-06 11:49 ` Christian König [not found] ` <3fd2e057-0284-2bc7-7b76-8280646aad52-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Christian König @ 2019-06-06 11:49 UTC (permalink / raw) To: StDenis, Tom, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Am 06.06.19 um 12:50 schrieb StDenis, Tom: > This option is no longer needed. The default code paths > are now the only option. > > v2: Add HPAGE support and a default for non contiguous maps > v3: Misread 512 pages as MiB ... > > Signed-off-by: Tom St Denis <tom.stdenis@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 ------- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 -------- > drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 14 +++++++++----- > 4 files changed, 9 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index 19a00282e34c..e54f31865f60 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -142,7 +142,6 @@ extern uint amdgpu_sdma_phase_quantum; > extern char *amdgpu_disable_cu; > extern char *amdgpu_virtual_display; > extern uint amdgpu_pp_feature_mask; > -extern int amdgpu_vram_page_split; > extern int amdgpu_ngg; > extern int amdgpu_prim_buf_per_se; > extern int amdgpu_pos_buf_per_se; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 0212c9ee317c..2e13b8ef6681 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -973,13 +973,6 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev) > > amdgpu_device_check_block_size(adev); > > - if (amdgpu_vram_page_split != -1 && (amdgpu_vram_page_split < 16 || > - !is_power_of_2(amdgpu_vram_page_split))) { > - dev_warn(adev->dev, "invalid VRAM page split (%d)\n", > - amdgpu_vram_page_split); > - amdgpu_vram_page_split = 1024; > - } > - > ret = amdgpu_device_get_job_timeout_settings(adev); > if (ret) { > dev_err(adev->dev, "invalid lockup_timeout parameter syntax\n"); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 1f38d6fc1fe3..ef22a2a25448 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -108,7 +108,6 @@ int amdgpu_vm_fragment_size = -1; > int amdgpu_vm_block_size = -1; > int amdgpu_vm_fault_stop = 0; > int amdgpu_vm_debug = 0; > -int amdgpu_vram_page_split = 512; > int amdgpu_vm_update_mode = -1; > int amdgpu_exp_hw_support = 0; > int amdgpu_dc = -1; > @@ -342,13 +341,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, int, 0644); > MODULE_PARM_DESC(vm_update_mode, "VM update using CPU (0 = never (default except for large BAR(LB)), 1 = Graphics only, 2 = Compute only (default for LB), 3 = Both"); > module_param_named(vm_update_mode, amdgpu_vm_update_mode, int, 0444); > > -/** > - * DOC: vram_page_split (int) > - * Override the number of pages after we split VRAM allocations (default 512, -1 = disable). The default is 512. > - */ > -MODULE_PARM_DESC(vram_page_split, "Number of pages after we split VRAM allocations (default 512, -1 = disable)"); > -module_param_named(vram_page_split, amdgpu_vram_page_split, int, 0444); > - > /** > * DOC: exp_hw_support (int) > * Enable experimental hw support (1 = enable). The default is 0 (disabled). > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c > index ec9ea3fdbb4a..8aea2f21b202 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c > @@ -284,17 +284,21 @@ static int amdgpu_vram_mgr_new(struct ttm_mem_type_manager *man, > if (!lpfn) > lpfn = man->size; > > - if (place->flags & TTM_PL_FLAG_CONTIGUOUS || > - amdgpu_vram_page_split == -1) { > + if (place->flags & TTM_PL_FLAG_CONTIGUOUS) { > pages_per_node = ~0ul; > num_nodes = 1; > } else { > - pages_per_node = max((uint32_t)amdgpu_vram_page_split, > - mem->page_alignment); > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + pages_per_node = HPAGE_PMD_NR; > +#else > + /* default to 2MB */ > + pages_per_node = (2UL << (20UL - PAGE_SHIFT)); > +#endif > + pages_per_node = max((uint32_t)pages_per_node, mem->page_alignment); > num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node); > } > > - nodes = kvmalloc_array(num_nodes, sizeof(*nodes), > + nodes = kvmalloc_array((uint32_t)num_nodes, sizeof(*nodes), You can probably drop that cast here, apart from that the patch is Reviewed-by: Christian König <christian.koenig@amd.com>. Do you want to look into test/benchmark as well? Thanks, Christian. > GFP_KERNEL | __GFP_ZERO); > if (!nodes) > return -ENOMEM; _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <3fd2e057-0284-2bc7-7b76-8280646aad52-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] drm/amd/amdgpu: remove vram_page_split kernel option (v3) [not found] ` <3fd2e057-0284-2bc7-7b76-8280646aad52-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2019-06-06 11:51 ` StDenis, Tom [not found] ` <bec35b63-8c57-5b3b-f37c-e73b740906c5-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: StDenis, Tom @ 2019-06-06 11:51 UTC (permalink / raw) To: Koenig, Christian, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org On 2019-06-06 7:49 a.m., Christian König wrote: > Am 06.06.19 um 12:50 schrieb StDenis, Tom: >> This option is no longer needed. The default code paths >> are now the only option. >> >> v2: Add HPAGE support and a default for non contiguous maps >> v3: Misread 512 pages as MiB ... >> >> Signed-off-by: Tom St Denis <tom.stdenis@amd.com> >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - >> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 ------- >> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 -------- >> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 14 +++++++++----- >> 4 files changed, 9 insertions(+), 21 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> index 19a00282e34c..e54f31865f60 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> @@ -142,7 +142,6 @@ extern uint amdgpu_sdma_phase_quantum; >> extern char *amdgpu_disable_cu; >> extern char *amdgpu_virtual_display; >> extern uint amdgpu_pp_feature_mask; >> -extern int amdgpu_vram_page_split; >> extern int amdgpu_ngg; >> extern int amdgpu_prim_buf_per_se; >> extern int amdgpu_pos_buf_per_se; >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> index 0212c9ee317c..2e13b8ef6681 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> @@ -973,13 +973,6 @@ static int amdgpu_device_check_arguments(struct >> amdgpu_device *adev) >> amdgpu_device_check_block_size(adev); >> - if (amdgpu_vram_page_split != -1 && (amdgpu_vram_page_split < >> 16 || >> - !is_power_of_2(amdgpu_vram_page_split))) { >> - dev_warn(adev->dev, "invalid VRAM page split (%d)\n", >> - amdgpu_vram_page_split); >> - amdgpu_vram_page_split = 1024; >> - } >> - >> ret = amdgpu_device_get_job_timeout_settings(adev); >> if (ret) { >> dev_err(adev->dev, "invalid lockup_timeout parameter >> syntax\n"); >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> index 1f38d6fc1fe3..ef22a2a25448 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> @@ -108,7 +108,6 @@ int amdgpu_vm_fragment_size = -1; >> int amdgpu_vm_block_size = -1; >> int amdgpu_vm_fault_stop = 0; >> int amdgpu_vm_debug = 0; >> -int amdgpu_vram_page_split = 512; >> int amdgpu_vm_update_mode = -1; >> int amdgpu_exp_hw_support = 0; >> int amdgpu_dc = -1; >> @@ -342,13 +341,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, >> int, 0644); >> MODULE_PARM_DESC(vm_update_mode, "VM update using CPU (0 = never >> (default except for large BAR(LB)), 1 = Graphics only, 2 = Compute >> only (default for LB), 3 = Both"); >> module_param_named(vm_update_mode, amdgpu_vm_update_mode, int, 0444); >> -/** >> - * DOC: vram_page_split (int) >> - * Override the number of pages after we split VRAM allocations >> (default 512, -1 = disable). The default is 512. >> - */ >> -MODULE_PARM_DESC(vram_page_split, "Number of pages after we split >> VRAM allocations (default 512, -1 = disable)"); >> -module_param_named(vram_page_split, amdgpu_vram_page_split, int, 0444); >> - >> /** >> * DOC: exp_hw_support (int) >> * Enable experimental hw support (1 = enable). The default is 0 >> (disabled). >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >> index ec9ea3fdbb4a..8aea2f21b202 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >> @@ -284,17 +284,21 @@ static int amdgpu_vram_mgr_new(struct >> ttm_mem_type_manager *man, >> if (!lpfn) >> lpfn = man->size; >> - if (place->flags & TTM_PL_FLAG_CONTIGUOUS || >> - amdgpu_vram_page_split == -1) { >> + if (place->flags & TTM_PL_FLAG_CONTIGUOUS) { >> pages_per_node = ~0ul; >> num_nodes = 1; >> } else { >> - pages_per_node = max((uint32_t)amdgpu_vram_page_split, >> - mem->page_alignment); >> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE >> + pages_per_node = HPAGE_PMD_NR; >> +#else >> + /* default to 2MB */ >> + pages_per_node = (2UL << (20UL - PAGE_SHIFT)); >> +#endif >> + pages_per_node = max((uint32_t)pages_per_node, >> mem->page_alignment); >> num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node); >> } >> - nodes = kvmalloc_array(num_nodes, sizeof(*nodes), >> + nodes = kvmalloc_array((uint32_t)num_nodes, sizeof(*nodes), > > You can probably drop that cast here, apart from that the patch is > Reviewed-by: Christian König <christian.koenig@amd.com>. Without the cast it produces a somewhat lengthy warning diagnostic. The original code had the cast as well. > > Do you want to look into test/benchmark as well? Sure, is the plan to cleave all that out too? Thanks, Tom _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <bec35b63-8c57-5b3b-f37c-e73b740906c5-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] drm/amd/amdgpu: remove vram_page_split kernel option (v3) [not found] ` <bec35b63-8c57-5b3b-f37c-e73b740906c5-5C7GfCeVMHo@public.gmane.org> @ 2019-06-06 12:12 ` Christian König 0 siblings, 0 replies; 4+ messages in thread From: Christian König @ 2019-06-06 12:12 UTC (permalink / raw) To: StDenis, Tom, Koenig, Christian, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Am 06.06.19 um 13:51 schrieb StDenis, Tom: > On 2019-06-06 7:49 a.m., Christian König wrote: >> Am 06.06.19 um 12:50 schrieb StDenis, Tom: >>> This option is no longer needed. The default code paths >>> are now the only option. >>> >>> v2: Add HPAGE support and a default for non contiguous maps >>> v3: Misread 512 pages as MiB ... >>> >>> Signed-off-by: Tom St Denis <tom.stdenis@amd.com> >>> --- >>> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - >>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 ------- >>> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 -------- >>> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 14 +++++++++----- >>> 4 files changed, 9 insertions(+), 21 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >>> index 19a00282e34c..e54f31865f60 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >>> @@ -142,7 +142,6 @@ extern uint amdgpu_sdma_phase_quantum; >>> extern char *amdgpu_disable_cu; >>> extern char *amdgpu_virtual_display; >>> extern uint amdgpu_pp_feature_mask; >>> -extern int amdgpu_vram_page_split; >>> extern int amdgpu_ngg; >>> extern int amdgpu_prim_buf_per_se; >>> extern int amdgpu_pos_buf_per_se; >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >>> index 0212c9ee317c..2e13b8ef6681 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >>> @@ -973,13 +973,6 @@ static int amdgpu_device_check_arguments(struct >>> amdgpu_device *adev) >>> amdgpu_device_check_block_size(adev); >>> - if (amdgpu_vram_page_split != -1 && (amdgpu_vram_page_split < >>> 16 || >>> - !is_power_of_2(amdgpu_vram_page_split))) { >>> - dev_warn(adev->dev, "invalid VRAM page split (%d)\n", >>> - amdgpu_vram_page_split); >>> - amdgpu_vram_page_split = 1024; >>> - } >>> - >>> ret = amdgpu_device_get_job_timeout_settings(adev); >>> if (ret) { >>> dev_err(adev->dev, "invalid lockup_timeout parameter >>> syntax\n"); >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> index 1f38d6fc1fe3..ef22a2a25448 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> @@ -108,7 +108,6 @@ int amdgpu_vm_fragment_size = -1; >>> int amdgpu_vm_block_size = -1; >>> int amdgpu_vm_fault_stop = 0; >>> int amdgpu_vm_debug = 0; >>> -int amdgpu_vram_page_split = 512; >>> int amdgpu_vm_update_mode = -1; >>> int amdgpu_exp_hw_support = 0; >>> int amdgpu_dc = -1; >>> @@ -342,13 +341,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, >>> int, 0644); >>> MODULE_PARM_DESC(vm_update_mode, "VM update using CPU (0 = never >>> (default except for large BAR(LB)), 1 = Graphics only, 2 = Compute >>> only (default for LB), 3 = Both"); >>> module_param_named(vm_update_mode, amdgpu_vm_update_mode, int, 0444); >>> -/** >>> - * DOC: vram_page_split (int) >>> - * Override the number of pages after we split VRAM allocations >>> (default 512, -1 = disable). The default is 512. >>> - */ >>> -MODULE_PARM_DESC(vram_page_split, "Number of pages after we split >>> VRAM allocations (default 512, -1 = disable)"); >>> -module_param_named(vram_page_split, amdgpu_vram_page_split, int, 0444); >>> - >>> /** >>> * DOC: exp_hw_support (int) >>> * Enable experimental hw support (1 = enable). The default is 0 >>> (disabled). >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >>> index ec9ea3fdbb4a..8aea2f21b202 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c >>> @@ -284,17 +284,21 @@ static int amdgpu_vram_mgr_new(struct >>> ttm_mem_type_manager *man, >>> if (!lpfn) >>> lpfn = man->size; >>> - if (place->flags & TTM_PL_FLAG_CONTIGUOUS || >>> - amdgpu_vram_page_split == -1) { >>> + if (place->flags & TTM_PL_FLAG_CONTIGUOUS) { >>> pages_per_node = ~0ul; >>> num_nodes = 1; >>> } else { >>> - pages_per_node = max((uint32_t)amdgpu_vram_page_split, >>> - mem->page_alignment); >>> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE >>> + pages_per_node = HPAGE_PMD_NR; >>> +#else >>> + /* default to 2MB */ >>> + pages_per_node = (2UL << (20UL - PAGE_SHIFT)); >>> +#endif >>> + pages_per_node = max((uint32_t)pages_per_node, >>> mem->page_alignment); >>> num_nodes = DIV_ROUND_UP(mem->num_pages, pages_per_node); >>> } >>> - nodes = kvmalloc_array(num_nodes, sizeof(*nodes), >>> + nodes = kvmalloc_array((uint32_t)num_nodes, sizeof(*nodes), >> You can probably drop that cast here, apart from that the patch is >> Reviewed-by: Christian König <christian.koenig@amd.com>. > > Without the cast it produces a somewhat lengthy warning diagnostic. The > original code had the cast as well. Strange, the original code hat the case because amdgpu_vram_page_split was a signed int, but num_nodes should be unsigned anyway. So that shouldn't be necessary any more. Anyway keeping the cast works for me as well. >> Do you want to look into test/benchmark as well? > Sure, is the plan to cleave all that out too? Well first of all dig a bit into what those still do. If I'm not completely mistaken at least one of them is redundant now. Christian. > > > Thanks, > > Tom > > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-06-06 12:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-06 10:50 [PATCH] drm/amd/amdgpu: remove vram_page_split kernel option (v3) StDenis, Tom
[not found] ` <20190606105023.13750-1-tom.stdenis-5C7GfCeVMHo@public.gmane.org>
2019-06-06 11:49 ` Christian König
[not found] ` <3fd2e057-0284-2bc7-7b76-8280646aad52-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-06 11:51 ` StDenis, Tom
[not found] ` <bec35b63-8c57-5b3b-f37c-e73b740906c5-5C7GfCeVMHo@public.gmane.org>
2019-06-06 12:12 ` Christian König
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox