On 2/28/20 8:47 AM, Christian König wrote:
Am 28.02.20 um 06:08 schrieb Luben Tuikov:
On 2020-02-27 4:40 p.m., Nirmoy Das wrote:
implement drm_sched_entity_modify_sched() which can modify existing
sched_list with a different one. This is going to be helpful when
userspace changes priority of a ctx/entity then driver can switch to
corresponding hw shced list for that priority
Signed-off-by: Nirmoy Das <nirmoy.das@xxxxxxx>
---
drivers/gpu/drm/scheduler/sched_entity.c | 24
++++++++++++++++++++++++
include/drm/gpu_scheduler.h | 4 ++++
2 files changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c
b/drivers/gpu/drm/scheduler/sched_entity.c
index 63bccd201b97..711e9d504bcb 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -83,6 +83,30 @@ int drm_sched_entity_init(struct drm_sched_entity
*entity,
}
EXPORT_SYMBOL(drm_sched_entity_init);
+/**
+ * drm_sched_entity_modify_sched - Modify sched of an entity
+ *
+ * @entity: scheduler entity to init
+ * @sched_list: the list of new drm scheds which will replace
+ * existing entity->sched_list
+ * @num_sched_list: number of drm sched in sched_list
+ *
+ * Returns 0 on success or a negative error code on failure.
+ */
+int drm_sched_entity_modify_sched(struct drm_sched_entity *entity,
+ struct drm_gpu_scheduler **sched_list,
+ unsigned int num_sched_list)
+{
+ if (!(entity && sched_list && (num_sched_list == 0 ||
sched_list[0])))
+ return -EINVAL;
This seems unmaintainable. I'd write it in its natural form:
This is probably just copy & pasted from the init function and
complete overkill here.
Was indeed lame copy paste from my side.
So if num_sched_list is 0 or 1 we return NULL?
And if num_sched_list is 2 or greater we return sched_list
of which sched_list[0] could be NULL?
This is also copy&pasted from the init code and completely wrong here.
What we should do instead is just: WARN_ON(!num_sched_list ||
!sched_list);
Thanks, this will make it much simple. I will have this in next version.
Nirmoy
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx