LGTM Acked-by: Antonio Fischetti <[email protected]>
> -----Original Message----- > From: Ilya Maximets [mailto:[email protected]] > Sent: Friday, August 4, 2017 3:17 PM > To: [email protected] > Cc: Heetae Ahn <[email protected]>; Darrell Ball <[email protected]>; > Wang, Yipeng1 <[email protected]>; Kevin Traynor <[email protected]>; > Loftus, Ciara <[email protected]>; Fischetti, Antonio > <[email protected]>; Ilya Maximets <[email protected]> > Subject: [PATCH v3 2/2] dpif-netdev: Fix emc replacement policy. > > Current EMC replacement policy allows to replace active EMC entry > even if there are dead (empty) entries available. This leads to > EMC trashing even on few hundreds of flows. In some cases PMD > threads starts to execute classifier lookups even in tests with > 50 - 100 active flows. > > Looks like the hash comparison rule was introduced to randomly > choose one of alive entries to replace. But it doesn't work as > needed and also hashes has nothing common with randomness. > > Lets fix the replacement policy by removing hash checking and > using the random value passed from 'emc_probabilistic_insert()' > only while considering replace of the alive entry. > This should give us nearly fair way to choose the entry to replace. > > We are avoiding calculation of the new random value by reusing > bits of already generated random for probabilistic EMC insertion. > Bits higher than 'EM_FLOW_INSERT_INV_PROB_SHIFT' are used because > lower bits are less than 'min' and not fully random. > > Not replacing of alive entries while dead ones exists allows to > significantly decrease EMC trashing. > > Testing shows stable work of exact match cache without misses > with up to 3072 - 6144 active flows (depends on traffic pattern). > > Signed-off-by: Ilya Maximets <[email protected]> > --- _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
