mbox series

[00/12] v3d: Perfmon cleanup

Message ID 20240709163425.58276-1-tursulin@igalia.com (mailing list archive)
Headers show
Series v3d: Perfmon cleanup | expand

Message

Tvrtko Ursulin July 9, 2024, 4:34 p.m. UTC
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

When we had to quickly deal with a tree build issue via merging
792d16b5375d ("drm/v3d: Move perfmon init completely into own unit"), we
promised to follow up with a nicer solution.

As in the process of eliminating the hardcoded defines we have discovered a few
issues in handling of corner cases and userspace input validation, the fix has
turned into a larger series, but hopefully the end result is a justifiable
cleanup.

Tvrtko Ursulin (12):
  drm/v3d: Prevent out of bounds access in performance query extensions
  drm/v3d: Prefer get_user for scalar types
  drm/v3d: Add some local variables in queries/extensions
  drm/v3d: Align data types of internal and uapi counts
  drm/v3d: Fix potential memory leak in the timestamp extension
  drm/v3d: Fix potential memory leak in the performance extension
  drm/v3d: Validate passed in drm syncobj handles in the timestamp
    extension
  drm/v3d: Validate passed in drm syncobj handles in the performance
    extension
  drm/v3d: Move part of copying of reset/copy performance extension to a
    helper
  drm/v3d: Size the kperfmon_ids array at runtime
  drm/v3d: Do not use intermediate storage when copying performance
    query results
  drm/v3d: Move perfmon init completely into own unit

 drivers/gpu/drm/v3d/v3d_drv.c                 |   9 +-
 drivers/gpu/drm/v3d/v3d_drv.h                 |  16 +-
 drivers/gpu/drm/v3d/v3d_perfmon.c             |  44 +--
 .../gpu/drm/v3d/v3d_performance_counters.h    |  16 +-
 drivers/gpu/drm/v3d/v3d_sched.c               | 106 ++++---
 drivers/gpu/drm/v3d/v3d_submit.c              | 285 ++++++++++--------
 6 files changed, 281 insertions(+), 195 deletions(-)

Comments

Iago Toral July 10, 2024, 6:06 a.m. UTC | #1
El mar, 09-07-2024 a las 17:34 +0100, Tvrtko Ursulin escribió:
> From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> 
> When we had to quickly deal with a tree build issue via merging
> 792d16b5375d ("drm/v3d: Move perfmon init completely into own unit"),
> we
> promised to follow up with a nicer solution.
> 
> As in the process of eliminating the hardcoded defines we have
> discovered a few
> issues in handling of corner cases and userspace input validation,
> the fix has
> turned into a larger series, but hopefully the end result is a
> justifiable
> cleanup.
> 

Thanks for going the extra mile with this :)

Patches 1 and 5-8 are:
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>

Iago

> Tvrtko Ursulin (12):
>   drm/v3d: Prevent out of bounds access in performance query
> extensions
>   drm/v3d: Prefer get_user for scalar types
>   drm/v3d: Add some local variables in queries/extensions
>   drm/v3d: Align data types of internal and uapi counts
>   drm/v3d: Fix potential memory leak in the timestamp extension
>   drm/v3d: Fix potential memory leak in the performance extension
>   drm/v3d: Validate passed in drm syncobj handles in the timestamp
>     extension
>   drm/v3d: Validate passed in drm syncobj handles in the performance
>     extension
>   drm/v3d: Move part of copying of reset/copy performance extension
> to a
>     helper
>   drm/v3d: Size the kperfmon_ids array at runtime
>   drm/v3d: Do not use intermediate storage when copying performance
>     query results
>   drm/v3d: Move perfmon init completely into own unit
> 
>  drivers/gpu/drm/v3d/v3d_drv.c                 |   9 +-
>  drivers/gpu/drm/v3d/v3d_drv.h                 |  16 +-
>  drivers/gpu/drm/v3d/v3d_perfmon.c             |  44 +--
>  .../gpu/drm/v3d/v3d_performance_counters.h    |  16 +-
>  drivers/gpu/drm/v3d/v3d_sched.c               | 106 ++++---
>  drivers/gpu/drm/v3d/v3d_submit.c              | 285 ++++++++++------
> --
>  6 files changed, 281 insertions(+), 195 deletions(-)
>
Tvrtko Ursulin July 10, 2024, 1:45 p.m. UTC | #2
Hi Iago,

On 10/07/2024 07:06, Iago Toral wrote:
> El mar, 09-07-2024 a las 17:34 +0100, Tvrtko Ursulin escribió:
>> From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>
>> When we had to quickly deal with a tree build issue via merging
>> 792d16b5375d ("drm/v3d: Move perfmon init completely into own unit"),
>> we
>> promised to follow up with a nicer solution.
>>
>> As in the process of eliminating the hardcoded defines we have
>> discovered a few
>> issues in handling of corner cases and userspace input validation,
>> the fix has
>> turned into a larger series, but hopefully the end result is a
>> justifiable
>> cleanup.
>>
> 
> Thanks for going the extra mile with this :)
> 
> Patches 1 and 5-8 are:
> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>

Thank you!

Unfortunately I had to re-order the patches in the series so fixes come 
first, and as that caused a lot of churn in each patch I did not apply 
your r-b's when re-sending.

Hmmm actually I should have for the first patch, that one is unchanged. 
I will fix that one.

Regards,

Tvrtko

>> Tvrtko Ursulin (12):
>>    drm/v3d: Prevent out of bounds access in performance query
>> extensions
>>    drm/v3d: Prefer get_user for scalar types
>>    drm/v3d: Add some local variables in queries/extensions
>>    drm/v3d: Align data types of internal and uapi counts
>>    drm/v3d: Fix potential memory leak in the timestamp extension
>>    drm/v3d: Fix potential memory leak in the performance extension
>>    drm/v3d: Validate passed in drm syncobj handles in the timestamp
>>      extension
>>    drm/v3d: Validate passed in drm syncobj handles in the performance
>>      extension
>>    drm/v3d: Move part of copying of reset/copy performance extension
>> to a
>>      helper
>>    drm/v3d: Size the kperfmon_ids array at runtime
>>    drm/v3d: Do not use intermediate storage when copying performance
>>      query results
>>    drm/v3d: Move perfmon init completely into own unit
>>
>>   drivers/gpu/drm/v3d/v3d_drv.c                 |   9 +-
>>   drivers/gpu/drm/v3d/v3d_drv.h                 |  16 +-
>>   drivers/gpu/drm/v3d/v3d_perfmon.c             |  44 +--
>>   .../gpu/drm/v3d/v3d_performance_counters.h    |  16 +-
>>   drivers/gpu/drm/v3d/v3d_sched.c               | 106 ++++---
>>   drivers/gpu/drm/v3d/v3d_submit.c              | 285 ++++++++++------
>> --
>>   6 files changed, 281 insertions(+), 195 deletions(-)
>>
>