uti: futex: McKernel waker sends IPI to Linux waiter CPU

Change-Id: I6f725b3a6b1b26b9f553d8c58132c0c0a4416683
This commit is contained in:
Masamichi Takagi
2021-02-05 09:39:07 +09:00
parent adc5b7102f
commit e3927a0b95
5 changed files with 23 additions and 5 deletions

View File

@ -813,6 +813,7 @@ static int futex_wait(uint32_t __user *uaddr, int fshared,
q->bitset = bitset;
q->requeue_pi_key = NULL;
q->uti_futex_resp = uti_info->uti_futex_resp;
q->linux_cpu = ihk_ikc_get_processor_id();
retry:
/* Prepare to wait on uaddr. */

View File

@ -140,6 +140,9 @@ struct futex_q {
/* Used to wake-up a thread running on a Linux CPU */
void *uti_futex_resp;
/* Used to send IPI directly to the waiter CPU */
int linux_cpu;
/* Used to wake-up a thread running on a McKernel from Linux */
void *th_spin_sleep;
void *th_status;