uti: futex: cache remote va to remote pa result

Change-Id: Idbbb3f2981b76a0235615fceaa6281d2c7134ca2
This commit is contained in:
Masamichi Takagi
2021-02-04 09:25:32 +09:00
parent 5d16ce9dcc
commit adc5b7102f
9 changed files with 138 additions and 23 deletions

View File

@ -239,7 +239,7 @@ static void wake_futex(struct futex_q *q)
if (q->uti_futex_resp) {
int rc;
dkprintf("%s: waking up migrated-to-Linux thread (tid %d),uti_futex_resp=%p\n",
__func__, p->tid, q->uti_futex_resp);
__func__, p->tid, q->uti_futex_resp);
struct ikc_scd_packet pckt;
struct ihk_ikc_channel_desc *resp_channel = cpu_local_var(ikc2linux);

View File

@ -3649,6 +3649,8 @@ void spin_sleep_or_schedule(void)
}
if (woken) {
dkprintf("%s: woken while spinning, cpu: %d, do_schedule: %d\n",
__func__, ihk_ikc_get_processor_id(), do_schedule);
if (do_schedule) {
irqstate = ihk_mc_spinlock_lock(&v->runq_lock);
v->flags |= CPU_FLAG_NEED_RESCHED;
@ -3667,6 +3669,8 @@ void spin_sleep_or_schedule(void)
out_schedule:
schedule();
dkprintf("%s: woken while sleeping, cpu: %d\n",
__func__, ihk_ikc_get_processor_id());
}
void schedule(void)
@ -3680,7 +3684,7 @@ void schedule(void)
if (cpu_local_var(no_preempt)) {
kprintf("%s: WARNING can't schedule() while no preemption, cnt: %d\n",
__FUNCTION__, cpu_local_var(no_preempt));
__func__, cpu_local_var(no_preempt));
irqstate = cpu_disable_interrupt_save();
ihk_mc_spinlock_lock_noirq(