-
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
Fix for scheduler bugs #360
Conversation
src/lib/schedule.c
Outdated
@@ -187,14 +187,14 @@ static struct task *schedule_edf(void) | |||
|
|||
tracev_pipe("edf"); | |||
|
|||
interrupt_clear(PLATFORM_SCHEDULE_IRQ); |
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.
Can you check master for a similar patch by @tlauda and backport.
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 did not see any similar patch.
@tlauda
Do you make some change like this in master?
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.
Can you change the commit message, the real fix here is to move irq_clear before edf_get_next as there is a race when adding a new task.
@lgirdwood |
Lower IPC process task priority to run the process with lower level interrupt. Signed-off-by: Pan Xiuli <[email protected]>
@lgirdwood
|
src/lib/schedule.c
Outdated
@@ -187,14 +187,14 @@ static struct task *schedule_edf(void) | |||
|
|||
tracev_pipe("edf"); | |||
|
|||
interrupt_clear(PLATFORM_SCHEDULE_IRQ); |
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.
Can you change the commit message, the real fix here is to move irq_clear before edf_get_next as there is a race when adding a new task.
@lgirdwood I am now try to refine the |
list_item_for_safe is safe for item deletion, but when a new item is appended to the list. It seems the item could not be go through. To fix this limitation, move interrupt clear to make sure every IRQ is handled. Do not try to handle two task with one IRQ handler. Signed-off-by: Pan Xiuli <[email protected]>
@lgirdwood |
There will be new task added in schedule_edf function, refine the function to handle multiple task. Signed-off-by: Pan Xiuli <[email protected]>
Now both ipc process task and pipeline copy task are using scheduler. Need to care about the run order of the task. Fix some bugs in scheduler that will cause the wrong order of task.