[PATCH nft 0/6] shrink memory usage for interval sets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

This is a continuation in the effort to reduce memory consumption for
sets from userspace.

Patch #1 adds a helper function as preparation work.

Patch #2 fixes invalid auto-merging of elements with different timeout.

Patch #3 add EXPR_RANGE_VALUE to reduce memory consumption of ranges,
which now require two struct expr instead of four.

Patch #4 makes a simple constification of a helper function to detect
interval sets with single key.

Patch #5 renames a field from set to init in mnl_nft_setelem_batch()
to prepare for passing struct set.

Patch #6 reworks the transformation from range to the singleton elements
that represents intervals through EXPR_F_INTERVAL_END to create them
only before the netlink message.

This shrinks runtime userspace memory consumption from 70.50 Mbytes to
43.38 Mbytes for a 100k intervals set sample.

Pablo Neira Ayuso (6):
  intervals: add helper function to set previous element
  intervals: do not merge intervals with different timeout
  src: add EXPR_RANGE_VALUE expression and use it
  rule: constify set_is_non_concat_range()
  mnl: rename list of expression in mnl_nft_setelem_batch()
  src: rework singleton interval transformation to reduce memory consumption

 include/expression.h |  13 ++
 include/intervals.h  |   2 +
 include/list.h       |   8 ++
 include/mnl.h        |   3 +-
 include/rule.h       |   2 +-
 src/expression.c     |  85 +++++++++++++
 src/intervals.c      | 280 +++++++++++++++++++++++++------------------
 src/mergesort.c      |   2 +
 src/mnl.c            |  81 +++++++++++--
 src/rule.c           |   4 +-
 10 files changed, 345 insertions(+), 135 deletions(-)

-- 
2.30.2





[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux