can the scheduler decide to schedule an interrupted but runnable thread on another CPU core? What are the implications for code?

John Baldwin jhb at freebsd.org
Fri Feb 14 17:51:34 UTC 2014


On Friday, February 14, 2014 4:22:34 am Adrian Chadd wrote:
> Ok, so now I remember the other odd thing.
> 
> I was seeing the sending context(s) jumping from one CPU to another
> during flowtable_insert_common(), around the locking bits.
> 
> But I thread pinned all the sender user threads!
> 
> So, why would the senders still be scheduled on other CPUs if I've
> pinned the userland threads?
> 
> (and yes, I verified that the userland threads weren't moving around.)

Can you clarify a bit?  It's not clear how sender thraeds differ from
userland threads differ from sender user threads.  (I.e. one reading
is that these are all the same thing and should thus all be pinned
(I assume you mean using cpuset to bind them to specific cores rather
than sched_pin))

-- 
John Baldwin


More information about the freebsd-arch mailing list