do_syscall: Delegate system calls to the mcexec with the same pid

This includes the following fix:
send_syscall, do_syscall: remove argument pid

Fujitsu: POSTK_TEMP_FIX_26
Refs: #1165
Change-Id: I702362c07a28f507a5e43dd751949aefa24bc8c0
This commit is contained in:
Tomoki Shirasawa
2018-09-07 14:28:23 +09:00
committed by Masamichi Takagi
parent c23bc8d401
commit 7e342751a2
15 changed files with 445 additions and 170 deletions

View File

@@ -1755,7 +1755,7 @@ mcexec_getcredv(int __user *virt)
return 0;
}
int mcexec_create_per_process_data(ihk_os_t os)
int mcexec_create_per_process_data(ihk_os_t os, struct rpgtable_desc *rpt)
{
struct mcctrl_usrdata *usrdata = ihk_host_os_get_usrdata(os);
struct mcctrl_per_proc_data *ppd = NULL;
@@ -1812,6 +1812,11 @@ int mcexec_create_per_process_data(ihk_os_t os)
dprintk("%s: PID: %d, counter: %d\n",
__FUNCTION__, ppd->pid, atomic_read(&ppd->refcount));
if (rpt) {
ppd->rpgtable = rpt->rpgtable;
return mcctrl_clear_pte_range(rpt->start, rpt->len);
}
return 0;
}
@@ -2638,7 +2643,8 @@ static long mcexec_release_user_space(struct release_user_space_desc *__user arg
}
#if 1
return clear_pte_range(desc.user_start, desc.user_end - desc.user_start);
return mcctrl_clear_pte_range(desc.user_start,
desc.user_end - desc.user_start);
#else
return release_user_space(desc.user_start, desc.user_end - desc.user_start);
#endif
@@ -3157,7 +3163,8 @@ long __mcctrl_control(ihk_os_t os, unsigned int req, unsigned long arg,
return mcexec_get_cpu(os);
case MCEXEC_UP_CREATE_PPD:
return mcexec_create_per_process_data(os);
return mcexec_create_per_process_data(os,
(struct rpgtable_desc *)arg);
case MCEXEC_UP_GET_NODES:
return mcexec_get_nodes(os);