Re: [rfc] bind per-cpu timeout threads to each CPU

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Fri, 9 May 2014 13:05:52 -0700
On 9 May 2014 12:50, Peter Grehan <grehan_at_freebsd.org> wrote:
>> How about i instead do the comprimise:
>>
>> * i'll pin all other swi's
>> * default swi isn't pinned by default, but one can flip on a sysctl at
>> boot time to pin it
>>
>> How's that sound?
>
>
>  And also please a sysctl that disables any swi pinning.
>
>  It is sometimes useful to change the default cpuset, for instance to
> allocate a subset of CPUs to some particular applications and not FreeBSD.
> Having kernel threads pinned prevents this from happening since they are in
> the default set.
>
>  (Note that some network drivers are also culprits here, though disabling
> MSI-x in them is a workaround).

Yup. I've just done that.

http://people.freebsd.org/~adrian/norse/20140509-swi-pin-1.diff

Which workloads are you thinking about? Maybe we could introduce some
higher level description of which CPU(s) at boot time to do "freebsd
stuff" on, and then don't start things like pcpu swi's and NIC threads
on those CPUs.

Can you think of situations where we'd want to have per-cpu swi's even
_running_ for CPUs that you want to dedicate to other things? There's
nothing stopping you from scheduling a callout on a different target
CPU.

(It'd require some work, but it likely should be done in some form as
part of overall RSS framework hacking.)



-a
Received on Fri May 09 2014 - 18:05:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:49 UTC