Date: Thu, 19 Feb 2015 20:58:02 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: John Baldwin <jhb@freebsd.org> Cc: "freebsd-arch@freebsd.org" <arch@freebsd.org>, Adrian Chadd <adrian@freebsd.org> Subject: Re: RFC: bus_get_cpus(9) Message-ID: <20150219175802.GC46228@zxy.spb.ru> In-Reply-To: <6147240.5Rne9DUXyM@ralph.baldwin.cx> References: <1848011.eGOHhpCEMm@ralph.baldwin.cx> <CAJ-VmokFzuN2Q4ds6zV2M8rd%2B%2BbZ5M0oTaiFFBYueTekCL0s0w@mail.gmail.com> <6147240.5Rne9DUXyM@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
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).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150219175802.GC46228>
