epoll_wait(): make sure to schedule in offload
Change-Id: I435416cb0ac005a03cd995bf1aae75c9ce7b2082
This commit is contained in:
committed by
Masamichi Takagi
parent
0f6c36870c
commit
5e44c9c9f9
@ -143,3 +143,4 @@ SYSCALL_HANDLED(1045, signalfd)
|
|||||||
SYSCALL_DELEGATED(1049, stat)
|
SYSCALL_DELEGATED(1049, stat)
|
||||||
SYSCALL_DELEGATED(1060, getpgrp)
|
SYSCALL_DELEGATED(1060, getpgrp)
|
||||||
SYSCALL_HANDLED(1062, time)
|
SYSCALL_HANDLED(1062, time)
|
||||||
|
SYSCALL_DELEGATED(1069, epoll_wait)
|
||||||
|
|||||||
@ -242,6 +242,10 @@ long do_syscall(struct syscall_request *req, int cpu)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
DECLARE_WAITQ_ENTRY(scd_wq_entry, cpu_local_var(current));
|
DECLARE_WAITQ_ENTRY(scd_wq_entry, cpu_local_var(current));
|
||||||
|
|
||||||
|
if (req->number == __NR_epoll_wait ||
|
||||||
|
req->number == __NR_epoll_pwait)
|
||||||
|
goto schedule;
|
||||||
|
|
||||||
cpu_pause();
|
cpu_pause();
|
||||||
|
|
||||||
/* Spin if not preemptable */
|
/* Spin if not preemptable */
|
||||||
@ -270,6 +274,7 @@ long do_syscall(struct syscall_request *req, int cpu)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
schedule:
|
||||||
flags = cpu_disable_interrupt_save();
|
flags = cpu_disable_interrupt_save();
|
||||||
|
|
||||||
/* Try to sleep until notified */
|
/* Try to sleep until notified */
|
||||||
|
|||||||
Reference in New Issue
Block a user