Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Mar 2014 17:25:28 -0800
From:      Jack Vogel <jfvogel@gmail.com>
To:        Adrian Chadd <adrian.chadd@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: UDP transmit and no flowid
Message-ID:  <CAFOYbc=U=d=WaHtoj7AAjS83yb7EgWdqnEXiRxhCBcFt4UJmGA@mail.gmail.com>
In-Reply-To: <CAJ-VmomNsR5n8K7k%2BqcTAaAn0HiUcxmFVDxJUw8AD5ZyKHTn5w@mail.gmail.com>
References:  <CAJ-VmomNsR5n8K7k%2BqcTAaAn0HiUcxmFVDxJUw8AD5ZyKHTn5w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Funny, Jeff Pieper and I were just talking about how it seems UDP
performance,
errr is less than optimal, so hey trying something that might help sounds
like
a good idea to me. Will be curious to hear the results!

Cheers,

Jack



On Mon, Mar 3, 2014 at 5:17 PM, Adrian Chadd <adrian.chadd@gmail.com> wrote:

> Hi,
>
> So something I was told about whilst investigating RSS at Netflix was
> that the UDP path doesn't actually get set by anything unless you're
> using flowtable. So, if one doesn't define  flowtable, the transmit
> path congests quite heavily through one TX queue.
>
> I was about to do up a simple hack to do a toeplitz hash in the UDP
> send path before it gets bumped up to ip_output() - that way it can
> set the flowid correctly.
>
> The other option is to do a topelitz hash in ip_output() if m_flowid
> isn't set. The downside there is that we'd have to check whether it's
> actually a TCP, UDP, or IP flow before we assign it a flowid.
>
> In any case, this would likely decongest the transmit path quite a bit
> for UDP send. It's still not completely RSS-y (we would still need to
> line up transmit and receive paths to minimise lock contention) but it
> seems like a necessary first step in that direction.
>
> What do people think?
>
> I'll try this out in the next week or two once I've sorted out my
> employment situation and I can reserve some time on the netperf
> cluster.
>
> (before people ask "why udp?" - I'm kinda fed up with memcached
> performing much worse on freebsd than linux. Since fixing the UDP side
> of things requires a subset of the same work needed for TCP, I figure
> we should tackle UDP first.)
>
> Thanks,
>
>
> -adrian
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFOYbc=U=d=WaHtoj7AAjS83yb7EgWdqnEXiRxhCBcFt4UJmGA>