On Fri, Aug 07, 2015 at 04:57:41PM -0700, Jarno Rajahalme wrote: > Struct miniflow is now sometimes used just as a map. Define a new > struct flowmap for that purpose. The flowmap is defined as an array of > maps, and it is automatically sized according to the size of struct > flow, so it will be easier to maintain in the future. > > It would have been tempting to use the existing struct bitmap for this > purpose. The main reason this is not feasible at the moment is that > some flowmap algorithms are simpler when it can be assumed that no > struct flow member requires more bits than can fit to a single map > unit. The tunnel member already requires more than 32 bits, so the map > unit needs to be 64 bits wide. > > Performance critical algorithms enumerate the flowmap array units > explicitly, as it is easier for the compiler to optimize, compared to > the normal iterator. Without this optimization a classifier lookup > without wildcard masks would be about 25% slower. > > With this more general (and maintainable) algorithm the classifier > lookups are about 5% slower, when the struct flow actually becomes big > enough to require a second map. This negates the performance gained > in the "Pre-compute stage masks" patch earlier in the series. > > Requested-by: Ben Pfaff <b...@nicira.com> > Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
Having some trouble applying this, would you mind reposting what remains of the series? Thanks, Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev