Date: Tue, 15 Jul 2014 18:41:34 -0700 From: Adrian Chadd <adrian@freebsd.org> To: "Pieper, Jeffrey E" <jeffrey.e.pieper@intel.com> Cc: FreeBSD Net <freebsd-net@freebsd.org>, Hooman Fazaeli <hoomanfazaeli@gmail.com>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: Re: UDP/TCP versus IP frames - subtle out of order packets with hardware hashing Message-ID: <CAJ-Vmok0LGgcbqhv1NN6Y72qdcZYkp%2BTt3hCe=a_vxaL1ceFYQ@mail.gmail.com> In-Reply-To: <2A35EA60C3C77D438915767F458D65687E8FC789@ORSMSX111.amr.corp.intel.com> References: <CAJ-VmomUNJ23CHLLX2qryAuE2XQyBmo30du3MuRnobs%2BwEkguA@mail.gmail.com> <53C4EE00.5090705@gmail.com> <2A35EA60C3C77D438915767F458D65687E8FC789@ORSMSX111.amr.corp.intel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 15 July 2014 18:01, Pieper, Jeffrey E <jeffrey.e.pieper@intel.com> wrote: > I believe the Linux driver DOES however support UDP RSS port hash. It is used for environments where you can ensure there is no fragmentation. In such use cases, this allows for a significant performance benefit. > Right. For my RSS hacking, I've added a new in_rss.c function that returns the currently supported hashes, so it'll be possible for an administrator to define whether to support UDP hashing on 4-tuple or 2-tuple. I plan on adding a software hash calculation function to optionally calculate the 2-tuple or 4-tuple RSS hash as appropriately required so it can be run after IP reassembly if it's required. So, if the admin wants a 4-tuple UDP hash and it receives fragmented UDP, then it will re-assemble, calculate 4-tuple and kick it up. If they want 2-tuple, then it'll only calculate a software hash if it wasn't given one by the driver. Argh, so many weird corner cases to handle and I haven't even started hacking on the memcached/varnish stuff :( Thanks! -a
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmok0LGgcbqhv1NN6Y72qdcZYkp%2BTt3hCe=a_vxaL1ceFYQ>