On 4/10/23 20:45, Han Zhou wrote:
> 
> 
> On Wed, Apr 5, 2023 at 12:50 PM Ilya Maximets <[email protected] 
> <mailto:[email protected]>> wrote:
>>
>> On 4/5/23 21:48, Ilya Maximets wrote:
>> > This patch set covers removal of expressions which are subsets of other
>> > wider expressions.  This allows to avoid flow explosion in case of
>> > negative matches.  More details are in commit messages.
>> >
>> > Version 2:
>> >   * Became a patch set.
>> >   * Added tests and missing bitmap.h include.
>> >   * Code switched to work with bitwise maskable fields only (ORDINAL).
>> >   * Added a new patch to combine smaller expressions into wider ones.
>> >   * Added a patch to fix a crash uncovered with expression aggregation.
>> >
>> > Version 3:
>> >   * Dropped patch 3 for performance reasons for now, because it doesn't
>> >     allow to make use of I-P in many cases.
>> >   * Patch 1 re-worked to not cause performance issues for normal
>> >     address sets generated in OVN.
>> >   * Performance of the patch 1 significantly improved by not perfroming
>> >     a full n^2 search and not comparing huge empty parts of subvalues.
>> >     The patch became a bit less straightforward, but I hope it's still
>> >     fairly readable.
>> >
>> > Version 4:
>> >   * Added extra comments.
>> >   * Added ACK from Han to patch 2.
>> >   * Re-worked path shortening (next[]) to track the last non-NULL entry.
>> >   * Restricted superset optmization to expressions that do not track
>> >     address sets.  To preserve ability to use I-P. [Han]
> 
> Thanks Ilya. Ideally the restriction can be more relaxed to allow merging for 
> expr resulted from negation on address sets, because address set I-P doesn't 
> support negation anyway and it would be expensive without merging for 
> supersets. But I think the current approach should be fine because from what 
> I can tell it is less common to apply negation on address sets. This can be 
> improved further if needed.

I think, this should already work, because expansion of "!="
expression will loose the address set reference anyway during
simplification in expr_simplify_ne().

> 
> So, I went ahead and applied the series to main.

Thanks!

Best regards, Ilya Maximets.

> 
> Regards,
> Han
> 
>> Forgot to add:
>>
>>     * Fixed the memset value: s/0xf/0xff/.  [Han]
>>
>> >
>> > Ilya Maximets (2):
>> >   expr: Remove supersets from OR expressions.
>> >   expr: Avoid crash if all sub-expressions crushed down to 'true'.
>> >
>> >  include/ovn/expr.h |   1 +
>> >  lib/expr.c         | 255 +++++++++++++++++++++++++++++++++++----------
>> >  tests/ovn.at <http://ovn.at>       |  12 +++
>> >  3 files changed, 212 insertions(+), 56 deletions(-)
>> >
>>

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to