-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
schedule: config to build LL without task rescheduling #9816
Conversation
adds a config to instantiate the low-latency scheduler without task rescheduling, given that the operation is optional. Signed-off-by: Johny Lin <[email protected]>
to skip reschedule task for LL scheduler on mt8196 platform. Signed-off-by: Johny Lin <[email protected]>
@@ -684,6 +684,11 @@ static int schedule_ll_task_cancel(void *data, struct task *task) | |||
return 0; | |||
} | |||
|
|||
#if CONFIG_SCHEDULE_LL_NO_RESCHEDULE_TASK | |||
/* As a null function pointer */ | |||
#define reschedule_ll_task ((void*)0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just NULL
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both ways are probably fine. The reason I chose ((void*)0)
is because NULL
in c is also a macro, and I'm not sure if there is any risk when a macro represents as another macro.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be very surprised if this didn't work. We certainly have macros using macros like across a dozen or more layers. And this is in a C file, so it won't be included in other files to potentially be used in further macro definitions.
rescheduling, given that the operation is optional. Under such cases, | ||
scheduler_ops::reschedule_task will set to NULL instead, tasks with | ||
the attempt to reschedule (e.g. DMA trace works) will be relinguished | ||
directly and return no error. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is ok. One option would be to track the dependency to features (like DMA trace) also in Kconfig, but given this is opt-out, this might be too klungy.
adds a kconfig flag to instantiate the low-latency scheduler without task rescheduling, given that the operation is optional.