Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Aug 2016 18:56:29 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r303884 - stable/11/sys/kern
Message-ID:  <201608091856.u79IuToq054501@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Tue Aug  9 18:56:29 2016
New Revision: 303884
URL: https://svnweb.freebsd.org/changeset/base/303884

Log:
  MFC 303503: Don't treat NOCPU as a valid CPU to CPU_ISSET.
  
  If a thread is created bound to a cpuset it might already be bound before
  its very first timeslice, and td_lastcpu will be NOCPU in that case.
  
  Approved by:	re (gjb)

Modified:
  stable/11/sys/kern/sched_4bsd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/sched_4bsd.c
==============================================================================
--- stable/11/sys/kern/sched_4bsd.c	Tue Aug  9 18:53:57 2016	(r303883)
+++ stable/11/sys/kern/sched_4bsd.c	Tue Aug  9 18:56:29 2016	(r303884)
@@ -1241,7 +1241,7 @@ sched_pickcpu(struct thread *td)
 
 	mtx_assert(&sched_lock, MA_OWNED);
 
-	if (THREAD_CAN_SCHED(td, td->td_lastcpu))
+	if (td->td_lastcpu != NOCPU && THREAD_CAN_SCHED(td, td->td_lastcpu))
 		best = td->td_lastcpu;
 	else
 		best = NOCPU;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608091856.u79IuToq054501>