Skip site navigation (1)Skip section navigation (2)
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>