Date: Sat, 26 Oct 2013 06:37:29 +0900 From: Takuya ASADA <syuu@dokukino.com> To: hiren panchasara <hiren.panchasara@gmail.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: Adding Flow Director sysctls to ixgbe(4) (was: netmap: traffic distribution) Message-ID: <CALG4x-WFuom-ifam-p-PSqKi%2BFRyPOXJCZQqoGHCg4Uaqz3RaQ@mail.gmail.com> In-Reply-To: <CALCpEUFuyWMpbXiv98=N8HswhYbtTH6=gow7-85BsBMGS6507g@mail.gmail.com> References: <CALCpEUHcpoJoo_gqjyDzosE1bJ_J=o3uqUuyYJA8dWZdjMrNTA@mail.gmail.com> <CAJ-VmompkSY-tU2SysaEf6p1uJPmcMeXKJ6_EZ_DJiYTQXbUzw@mail.gmail.com> <CALG4x-XowXNze82jvFX84X0=d7MRucpJbUeExug9y7XsaZXkSw@mail.gmail.com> <CALCpEUHoVJgmYptMp6Q%2BY%2BDgbxgujN8e7TcANUi1De_fnkOZ_w@mail.gmail.com> <CALG4x-Xf27oEOA9K5j%2BRRndFe1VbDowpTti8a8qwu1mRaB4BkQ@mail.gmail.com> <CALG4x-WWqrf2Laen=zmUuiO1OCv1O2UHqV8NugnXN3BEkex%2B7g@mail.gmail.com> <CALCpEUGfksedObkvhuT9X%2Bn=%2BhCVGB6uLt0E8ZLRTkPxowE1wg@mail.gmail.com> <CALCpEUFuyWMpbXiv98=N8HswhYbtTH6=gow7-85BsBMGS6507g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
2013/10/24 hiren panchasara <hiren.panchasara@gmail.com> > On Mon, Oct 7, 2013 at 5:49 PM, hiren panchasara > <hiren.panchasara@gmail.com> wrote: > > On Mon, Oct 7, 2013 at 12:01 AM, Takuya ASADA <syuu@dokukino.com> wrote: > >> Hi, > >> > >> This is updated version of "ixgbetool" patch. > > I will try to give this a try tomorrow. > > Alright, sorry for the delay. I now have bandwidth/setup to test this. > > > > Cheers, > > Hiren > >> Here's improved feature list: > >> - signature filter list feature available > >> - user-defined filter can be use with an ATR. > > How does this work? You identify user-defined flows and apply ATR on > the rest of the flows? > I made a hash table for user-defined filters, insert a filter entry into a hash table when it added. And when ixgbe driver try to change queue assignment by ATR, lookup a hash table and prevent changing if the entry is on a hash table. >> To enable it, add "hw.ixgbe.cooperative_atr=1" on /boot/loader.conf > >> > >> Usage is as follows: > >> ixgbetool <ifname> [operation] > >> add_sig_filter <proto> <src_ip> <src_port> <dst_ip> <dst_port> > >> <que_index> > >> show_sig_filter > >> del_sig_filter <id> > > I believe, I can somehow test whether the signature filter works or > not by generating custom traffic, creating matching filter, directing > the traffic to a specific queue and watch that queue. > > But how do I test/see ATR (application targeted receive) in action? > Traffic for a specific application should follow the application on > different cpus, right? Any guidance on how to do that would be great. > To do it specifically, we should add debug printf on ixgbe_rxeof, printout hash value and queue number. Actually, if test flow is only one, you can see which queue is processing the flow by using "top -P". If ATR is working properly, ixgbe will changes queue assign every few moments (unless communicating process is pinned by cpuset command). But I don't see such behavior when I using ATR, even my patch is not applied. I'm guessing ixgbe_atr() function is failing to detect current CPU of communicating process. Could be it required extra kernel parameter configuration to enable ATR, but I haven't find any informations for it.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALG4x-WFuom-ifam-p-PSqKi%2BFRyPOXJCZQqoGHCg4Uaqz3RaQ>