Re: [PATCH] drm/ttm: Support 52-bit PAs in ttm_place
On 5/13/26 16:15, Kuehling, Felix wrote:
> On 2026-05-13 03:08, Christian König wrote:
>>
>> On 5/13/26 00:31, Felix Kuehling wrote:
>>> fpfn and lpfn in struct ttm_place are 32-bit page numbers. With 4KB page
>>> size this can support up to 44-bit physical addressing. Grow these to
>>> unsigned long to support larger physical addresses.
>>>
>>> Signed-off-by: Felix Kuehling
>>> ---
>>> include/drm/ttm/ttm_placement.h | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/include/drm/ttm/ttm_placement.h
>>> b/include/drm/ttm/ttm_placement.h
>>> index b510a4812609..3e88869c0f58 100644
>>> --- a/include/drm/ttm/ttm_placement.h
>>> +++ b/include/drm/ttm/ttm_placement.h
>>> @@ -81,8 +81,8 @@
>>> * Structure indicating a possible place to put an object.
>>> */
>>> struct ttm_place {
>>> - unsigned fpfn;
>>> - unsigned lpfn;
>>> + unsigned long fpfn;
>>> + unsigned long lpfn;
>> That should be uint64_t instead, long is CPU architecture dependent and we
>> clearly don't want that in TTM.
>>
>> But apart from that looks reasonable to me.
>
> Thanks. I sent out v2. What's the best branch for getting this change
> upstream? We'll need it on our NPI branch in the interim.
Arun will push it to drm-misc-next, if you also need it in amd-staging-drm-next
you need to sync up with Alex. But that shouldn't be much of a problem.
Regards,
Christian
>
> Regards,
> Felix
>
>
>>
>> Regards,
>> Christian.
>>
>>> uint32_t mem_type;
>>> uint32_t flags;
>>> };
Re: [PATCH] drm/ttm: Support 52-bit PAs in ttm_place
On 2026-05-13 03:08, Christian König wrote:
On 5/13/26 00:31, Felix Kuehling wrote:
fpfn and lpfn in struct ttm_place are 32-bit page numbers. With 4KB page
size this can support up to 44-bit physical addressing. Grow these to
unsigned long to support larger physical addresses.
Signed-off-by: Felix Kuehling
---
include/drm/ttm/ttm_placement.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
index b510a4812609..3e88869c0f58 100644
--- a/include/drm/ttm/ttm_placement.h
+++ b/include/drm/ttm/ttm_placement.h
@@ -81,8 +81,8 @@
* Structure indicating a possible place to put an object.
*/
struct ttm_place {
- unsignedfpfn;
- unsignedlpfn;
+ unsigned long fpfn;
+ unsigned long lpfn;
That should be uint64_t instead, long is CPU architecture dependent and we
clearly don't want that in TTM.
But apart from that looks reasonable to me.
Thanks. I sent out v2. What's the best branch for getting this change
upstream? We'll need it on our NPI branch in the interim.
Regards,
Felix
Regards,
Christian.
uint32_tmem_type;
uint32_tflags;
};
Re: [PATCH] drm/ttm: Support 52-bit PAs in ttm_place
On 5/13/26 00:31, Felix Kuehling wrote:
> fpfn and lpfn in struct ttm_place are 32-bit page numbers. With 4KB page
> size this can support up to 44-bit physical addressing. Grow these to
> unsigned long to support larger physical addresses.
>
> Signed-off-by: Felix Kuehling
> ---
> include/drm/ttm/ttm_placement.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
> index b510a4812609..3e88869c0f58 100644
> --- a/include/drm/ttm/ttm_placement.h
> +++ b/include/drm/ttm/ttm_placement.h
> @@ -81,8 +81,8 @@
> * Structure indicating a possible place to put an object.
> */
> struct ttm_place {
> - unsignedfpfn;
> - unsignedlpfn;
> + unsigned long fpfn;
> + unsigned long lpfn;
That should be uint64_t instead, long is CPU architecture dependent and we
clearly don't want that in TTM.
But apart from that looks reasonable to me.
Regards,
Christian.
> uint32_tmem_type;
> uint32_tflags;
> };
[PATCH] drm/ttm: Support 52-bit PAs in ttm_place
fpfn and lpfn in struct ttm_place are 32-bit page numbers. With 4KB page
size this can support up to 44-bit physical addressing. Grow these to
unsigned long to support larger physical addresses.
Signed-off-by: Felix Kuehling
---
include/drm/ttm/ttm_placement.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
index b510a4812609..3e88869c0f58 100644
--- a/include/drm/ttm/ttm_placement.h
+++ b/include/drm/ttm/ttm_placement.h
@@ -81,8 +81,8 @@
* Structure indicating a possible place to put an object.
*/
struct ttm_place {
- unsignedfpfn;
- unsignedlpfn;
+ unsigned long fpfn;
+ unsigned long lpfn;
uint32_tmem_type;
uint32_tflags;
};
--
2.43.0
