mcctrl: thread pool based system call offload handling

This commit is contained in:
Balazs Gerofi
2016-08-08 19:43:05 +09:00
parent 5fbeee953a
commit fb84d4ef11
8 changed files with 395 additions and 222 deletions

View File

@@ -227,6 +227,10 @@ long do_syscall(struct syscall_request *req, int cpu, int pid)
scp = &get_cpu_local_var(cpu)->scp;
}
res = scp->response_va;
/* The current thread is the requester and any thread from
* the pool may serve the request */
req->rtid = cpu_local_var(current)->tid;
req->ttid = 0;
send_syscall(req, cpu, pid);
@@ -281,6 +285,10 @@ long do_syscall(struct syscall_request *req, int cpu, int pid)
#define PAGER_RESUME_PAGE_FAULT 0x0101
req2.args[0] = PAGER_RESUME_PAGE_FAULT;
req2.args[1] = error;
/* The current thread is the requester and only the waiting thread
* may serve the request */
req2.rtid = cpu_local_var(current)->tid;
req2.ttid = res->stid;
send_syscall(&req2, cpu, pid);
}