On 23 Feb, Rick Macklem wrote:
> Konstantin Belousov wrote:
>>Author: kib
>>Date: Fri Feb 23 18:26:31 2018
>>New Revision: 329875
>>URL: https://svnweb.freebsd.org/changeset/base/329875
>>
>>Log:
>>  Restore UP build.
>>
>>  Reviewed by:  truckman
>>  Sponsored by: The FreeBSD Foundation
>>
>>Modified:
>>  head/sys/kern/sched_ule.c
>>
>>Modified: head/sys/kern/sched_ule.c
>>==============================================================================
>>--- head/sys/kern/sched_ule.c   Fri Feb 23 18:18:42 2018        (r329874)
>>+++ head/sys/kern/sched_ule.c   Fri Feb 23 18:26:31 2018        (r329875)
>>@@ -1864,6 +1864,7 @@ sched_lend_user_prio(struct thread *td, u_char prio)
>>                td->td_flags |= TDF_NEEDRESCHED;
>> }
>>
>>+#ifdef SMP
>> /*
>>  * This tdq is about to idle.  Try to steal a thread from another CPU before
>>  * choosing the idle thread.
>>@@ -1945,6 +1946,7 @@ tdq_trysteal(struct tdq *tdq)
>>        }
>>        spinlock_exit();
>  >}
>>+#endif
>>
>> /*
>>  * Handle migration from sched_switch().  This happens only for
>>@@ -2058,8 +2060,10 @@ sched_switch(struct thread *td, struct thread *newtd,
>>                TDQ_LOCK(tdq);
>>                mtx = thread_lock_block(td);
>>                tdq_load_rem(tdq, td);
>>+#ifdef SMP
>>                if (tdq->tdq_load == 0)
> Since the function isn't called for UP, should this "if" also check for ncpus 
> > 1 by any chance?
> (I know nothing about ULE, so please ignore this if it doesn't make sense;-)
>>                        tdq_trysteal(tdq);
>>+#endif
>>        }
>>
>> #if (KTR_COMPILE & KTR_SCHED) != 0

That would probably be a microoptimization.  I think one of the tests at
the top of tdq_trysteal() will cause an immediate return.  Basically
you'd be eliminating an extraneous function call in the path to
switching to the idle thread after you have already determined that you
don't have any work to do.

_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to