forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lkl: Direct irq and fix direct syscall degration
There are two major issues in current direct syscall implementation: 1. When there is already a thread pending in syscall, direct syscall degrages to wakeup idle and the performance is bad in that case. This is actually common in applications that have a trafficless control connection. 2. IRQ is not direct if LKL is in idle. Both issuses are actually because of the same thing: LKL can't reschedule when LKL is in idle. The patch adds such support. There are two downside of this patch: 1. need to change kernel/sched/idle.c to expose cpu_idle_loop. 2. lkl_idle_tail_schedule must be in sync with idle.c Those downsides seem OK given the performance we achieve from this patch. For common case, it saves one context switch (direct irq) and I can observe 10% TCP_RR improvement on my desktop. Signed-off-by: Yuan Liu <[email protected]>
- Loading branch information
Showing
5 changed files
with
104 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters