use per-process wait queues for system call request processing in mcexec so that multiple processes can share the per-core system call channels

This commit is contained in:
Balazs Gerofi bgerofi@riken.jp
2014-03-27 19:31:42 +09:00
parent 11ddbcf3c8
commit ccd770ba24
8 changed files with 138 additions and 16 deletions

View File

@@ -56,6 +56,7 @@
struct ikc_scd_packet {
int msg;
int ref;
int pid;
int err;
unsigned long arg;
};
@@ -88,6 +89,12 @@ struct syscall_params {
unsigned long *doorbell_va;
};
struct wait_queue_head_list_node {
struct list_head list;
wait_queue_head_t wq_syscall;
int pid;
};
struct mcctrl_channel {
struct ihk_ikc_channel_desc *c;
struct syscall_params param;
@@ -95,7 +102,8 @@ struct mcctrl_channel {
void *dma_buf;
int req;
wait_queue_head_t wq_syscall;
struct list_head wq_list;
ihk_spinlock_t wq_list_lock;
};
struct mcctrl_usrdata {