Date: Sat, 28 Mar 2015 21:31:47 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: Adrian Chadd <adrian@freebsd.org> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Re: irq cpu binding Message-ID: <20150328183147.GC23643@zxy.spb.ru> In-Reply-To: <CAJ-Vmok=0=C%2BHLvLXEM5pbYp_zP6C498wudAfEA40s4AVpGa_w@mail.gmail.com> References: <20150328112035.GZ23643@zxy.spb.ru> <CAJ-Vmo=sxtLgn1HABbWchu1Hm8kZ4Qy%2BscPeD7ezkkBzr%2BQijA@mail.gmail.com> <20150328154031.GA23643@zxy.spb.ru> <CAJ-VmokpWNy-arZ_=4hNbyAvzBYgDWu4F=vYSDwqPgpjaGHk=w@mail.gmail.com> <20150328181026.GB23643@zxy.spb.ru> <CAJ-Vmok=0=C%2BHLvLXEM5pbYp_zP6C498wudAfEA40s4AVpGa_w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 28, 2015 at 11:23:56AM -0700, Adrian Chadd wrote: > Ah, I think that's because the taskqueues in the driver for deferred > handling aren't also being pinned. > > I've talked to John about this - the problem is that all the > taskqueues for all the drivers run under one kernel process. Find out > their threadids and pin them too. > > Eg: > > # procstat -ta | grep em0 > 0 100024 kernel em0 que -1 8 sleep - > 0 100025 kernel em0 txq -1 8 sleep - # procstat -ta | grep ix0 0 100065 kernel ix0 que 6 8 run - 0 100067 kernel ix0 que 7 8 run - 0 100069 kernel ix0 que 8 8 run - 0 100071 kernel ix0 linkq 7 8 sleep - 12 100064 intr irq270: ix0:que 6 8 run - 12 100066 intr irq271: ix0:que 7 8 run - 12 100068 intr irq272: ix0:que 8 8 run - 12 100070 intr irq273: ix0:link 0 8 wait - As you see -- I am already pined all. # cpuset -g -x 270 irq 270 mask: 6 # cpuset -g -t 100065 tid 100065 mask: 6 # cpuset -g -t 100064 tid 100064 mask: 6 > # vmstat -ia | grep em > irq256: em0 68465 1 > # cpuset -g -x 256 > irq 256 mask: 0, 1 > # cpuset -g -t 100024 > tid 100024 mask: 0, 1 > # cpuset -g -t 100025 > tid 100025 mask: 0, 1 > > So you'd have to manually do that - there's no generic interface at > the moment to be able to ask a device driver to re-mask its taskqueue > thread(s) for a given queue and rewire its interrupt(s) for that > queue. > > (That would be a nice smallish project to prototype, btw.)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150328183147.GC23643>