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

Adrian Chadd adrian at freebsd.org
Fri Feb 14 22:57:21 UTC 2014


[snip]

So it turns out that the threads somehow migrating between CPUs during
flowtable_lookup_common() is the clock swi(s), which I'm guessing are
driving the per-CPU TCP callwheel timeouts.

It turns out the per-CPU clock swis aren't CPU-pinned, so they can be
preempted and migrated.

I'm not sure if this is correct behaviour. I'll experiment with
pinning these to their base CPU and see if this causes issues.

Thanks,



-a


More information about the freebsd-arch mailing list