forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 137
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lkl: add support for multiple system call threads
One of the current limitation of LKL is that all system calls are serialized which limits the usability of LKL with threading applications. As an example, lets take an application that waits for data on a network socket using a blocking call to read() and occasionally write()s data from another application thread. Once the read() syscall has been issued, no write()s can be performed until the socket receives some data and returns from the read(). This patch adds support for multiple system call threads so that the application can issue multiple system calls. Note that only one system call will be executed (i.e. LKL is still non SMP) at a time, but if one system call blocks, another one can be executed. In order to do so, the application must issue lkl_create_syscall_thread from the context of a host thread. A new kernel thread will be created and all subsequent system calls from the host thread will be queued to the newly created kernel thread. All the host threads that call lkl_create_syscall_thread must call lkl_stop_syscall_thread and this must happen before lkl_halt is called. Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
- Loading branch information
Octavian Purdila
committed
Feb 23, 2016
1 parent
84ec4e0
commit 2fa4b13
Showing
9 changed files
with
321 additions
and
46 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
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
Oops, something went wrong.