-
Notifications
You must be signed in to change notification settings - Fork 691
IRQ Fastpath #1227
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
base: master
Are you sure you want to change the base?
IRQ Fastpath #1227
Conversation
First impression: There is something funny going on with imx8mq and the speedup isn't big enough to justify a fast path. I would try optimising the normal IRQ path first. Have you tested with SMP too? |
I agree that something is wrong with the slowpath for the imx8mq - most of the speedup in that case is from using the fastpath version of I have done some SMP testing. seL4Test passes with the SMP tests enabled. |
Do we know how much slower the slow path becomes with this patch? The additional checks are probably not much, but it would be nice to quantify. If there is a chance to improve the slow path speed to get to similar results, that would be great of course. @danshea00 can you comment on which bits in here you think brought the highest payoff in performance improvement? |
Nice graph, how did you collect those numbers? In your new test, the while loop in |
I used tracepoints to record each section of the slowpath and fastpath. I just ran this with the two benchmarks, so each 'split' is the mean of 110 runs. Thanks for the feedback on the new benchmark. At the moment the test ends with |
Add an IRQ fastpath for aarch64 MCS. This fastpath is similar to the signal fastpath, but also handles the case when the destination thread is of higher priority than the interrupted thread, in which case a direct context switch occurs. Signed-off-by: Dan Shea <[email protected]>
712b901
to
2b30202
Compare
Add an IRQ fastpath for aarch64 MCS. This fastpath is similar to the signal fastpath but also handles the case when the destination thread is of higher priority than the interrupted thread, in which case a direct context switch occurs.
seL4Bench IRQUser benchmarks (non context switching benchmark is here):