diff mbox series

drm/ttm: increase ttm pre-fault value to PMD size

Message ID 20240530034104.338561-1-lingshan.zhu@amd.com (mailing list archive)
State New, archived
Headers show
Series drm/ttm: increase ttm pre-fault value to PMD size | expand

Commit Message

Zhu Lingshan May 30, 2024, 3:41 a.m. UTC
ttm page fault handler ttm_bo_vm_fault_reserved() maps
TTM_BO_VM_NUM_PREFAULT more pages beforehand
due to the principle of locality.

However, on some platform the page faults are more costly, this
patch intends to increase the number of ttm pre-fault to relieve
the number of page faults.

When multiple levels of page table is supported, the new default
value would be the PMD size, similar to huge page.

Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
---
 include/drm/ttm/ttm_bo.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Huang Rui May 30, 2024, 4:02 a.m. UTC | #1
On Thu, May 30, 2024 at 11:41:04AM +0800, Zhu, Lingshan wrote:
> ttm page fault handler ttm_bo_vm_fault_reserved() maps
> TTM_BO_VM_NUM_PREFAULT more pages beforehand
> due to the principle of locality.
> 
> However, on some platform the page faults are more costly, this
> patch intends to increase the number of ttm pre-fault to relieve
> the number of page faults.
> 
> When multiple levels of page table is supported, the new default
> value would be the PMD size, similar to huge page.
> 
> Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>

Thanks Lingshan.

I suggested to add reported-by from Jiangxiang like that:

Reported-by: Jingxiang Li <jingxiang.li@ecarxgroup.com>

Jingxiang, could you please test this patch? We expect to have a Tested-by. :-)

Thanks,
Ray

> ---
>  include/drm/ttm/ttm_bo.h | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
> index 6ccf96c91f3a..c20ef44002da 100644
> --- a/include/drm/ttm/ttm_bo.h
> +++ b/include/drm/ttm/ttm_bo.h
> @@ -39,7 +39,11 @@
>  #include "ttm_device.h"
>  
>  /* Default number of pre-faulted pages in the TTM fault handler */
> -#define TTM_BO_VM_NUM_PREFAULT 16
> +#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
> +#define TTM_BO_VM_NUM_PREFAULT (1 << (PMD_SHIFT - PAGE_SHIFT))
> +#else
> + #define TTM_BO_VM_NUM_PREFAULT 16
> +#endif
>  
>  struct iosys_map;
>  
> -- 
> 2.45.1
>
Zhu Lingshan May 30, 2024, 7:51 a.m. UTC | #2
Please ignore this patch, V2 will be send out soon

Thanks
Zhu Lingshan

On 5/30/2024 12:02 PM, Huang Rui wrote:
> On Thu, May 30, 2024 at 11:41:04AM +0800, Zhu, Lingshan wrote:
>> ttm page fault handler ttm_bo_vm_fault_reserved() maps
>> TTM_BO_VM_NUM_PREFAULT more pages beforehand
>> due to the principle of locality.
>>
>> However, on some platform the page faults are more costly, this
>> patch intends to increase the number of ttm pre-fault to relieve
>> the number of page faults.
>>
>> When multiple levels of page table is supported, the new default
>> value would be the PMD size, similar to huge page.
>>
>> Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
> Thanks Lingshan.
>
> I suggested to add reported-by from Jiangxiang like that:
>
> Reported-by: Jingxiang Li <jingxiang.li@ecarxgroup.com>
>
> Jingxiang, could you please test this patch? We expect to have a Tested-by. :-)
>
> Thanks,
> Ray
>
>> ---
>>  include/drm/ttm/ttm_bo.h | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
>> index 6ccf96c91f3a..c20ef44002da 100644
>> --- a/include/drm/ttm/ttm_bo.h
>> +++ b/include/drm/ttm/ttm_bo.h
>> @@ -39,7 +39,11 @@
>>  #include "ttm_device.h"
>>  
>>  /* Default number of pre-faulted pages in the TTM fault handler */
>> -#define TTM_BO_VM_NUM_PREFAULT 16
>> +#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
>> +#define TTM_BO_VM_NUM_PREFAULT (1 << (PMD_SHIFT - PAGE_SHIFT))
>> +#else
>> + #define TTM_BO_VM_NUM_PREFAULT 16
>> +#endif
>>  
>>  struct iosys_map;
>>  
>> -- 
>> 2.45.1
>>
diff mbox series

Patch

diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
index 6ccf96c91f3a..c20ef44002da 100644
--- a/include/drm/ttm/ttm_bo.h
+++ b/include/drm/ttm/ttm_bo.h
@@ -39,7 +39,11 @@ 
 #include "ttm_device.h"
 
 /* Default number of pre-faulted pages in the TTM fault handler */
-#define TTM_BO_VM_NUM_PREFAULT 16
+#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
+#define TTM_BO_VM_NUM_PREFAULT (1 << (PMD_SHIFT - PAGE_SHIFT))
+#else
+ #define TTM_BO_VM_NUM_PREFAULT 16
+#endif
 
 struct iosys_map;