/* This function yields the current CPU to other tasks. If there are no other threads running on this CPU then this function will return.  */
SYSCALL_DEFINE0(sched_yield)
/* This function yields the current CPU to other tasks. If there are no other threads running on this CPU then this function will return.  */
SYSCALL_DEFINE0(sched_yield)
{
	struct rq *rq = this_rq_lock();
	schedstat_inc(rq, yld_count);
	current->sched_class->yield_task(rq);
	__release(rq->lock);
	spin_release(&rq->lock.dep_map, 1, _THIS_IP_);
	do_raw_spin_unlock(&rq->lock);
	preempt_enable_no_resched();
	schedule();
	return 0;
}