RFC: bus_get_cpus(9)
Slawa Olhovchenkov
slw at zxy.spb.ru
Thu Feb 19 17:58:05 UTC 2015
On Thu, Feb 19, 2015 at 10:37:28AM -0500, John Baldwin wrote:
> There's nothing preventing the RSS code from calling bus_get_cpus() internally
> to populate the info it returns in its APIs.
>
> That is, I imagine something like:
>
> #ifdef RSS
> queue_info = fetch_rss_info(dev);
> for (queue in queue_info) {
> create queue for CPU queue->cpu
> }
> #else
> /* Use bus_get_cpus directly and do 1:1 */
> #endif
>
> That is, I think RSS should provide a layer on top of new-bus, not be a
> bus_foo API. At some point all drivers might only have the #ifdef RSS case
> and not use bus_get_cpus() directly at all, but it doesn't seem like the RSS
> API is quite there yet.
I don't play with RSS (and RSS descrption wery complexity for me,
besides I think RSS API may be very simple (for listen socket case) --
just inform select/kevent/poll only pined to cpu handled interrupt),
but for RSS may be need use all cores -- and NUMA near and NUMA far,
for RSS-less case for interrupt best use only NUME near cores, leave
NUMA far cores for application (this separation in my case give aprox.
100% performance rise).
More information about the freebsd-arch
mailing list