Date: Sat, 24 Feb 2018 01:21:03 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Don Lewis <truckman@FreeBSD.org> Cc: Rick Macklem <rmacklem@uoguelph.ca>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r329875 - head/sys/kern Message-ID: <20180223232103.GK94212@kib.kiev.ua> In-Reply-To: <tkrat.6f7c4ea16dc42fad@FreeBSD.org> References: <201802231826.w1NIQVqr084972@repo.freebsd.org> <YQBPR0101MB10427959074A57365EA2B4D5DDCC0@YQBPR0101MB1042.CANPRD01.PROD.OUTLOOK.COM> <tkrat.6f7c4ea16dc42fad@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 23, 2018 at 02:59:11PM -0800, Don Lewis wrote: > 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. Yes, smp_started is zero on UP.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180223232103.GK94212>