[Oisf-devel] [COMMIT] OISF branch, master, updated. suricata-2.0.2-35-g0dd1646

OISF Git noreply at openinfosecfoundation.org
Fri Jul 25 06:53:05 UTC 2014

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OISF".

The branch, master has been updated
       via  0dd16461cf120238dbcb76ea3e405676ccb60b46 (commit)
       via  28ccea51d36a38bec124cc44b0e011621619d05d (commit)
       via  b1a7e76ca7186007db73d49562d92249bc91ac93 (commit)
       via  a38d5a0135e877edc8c618b5e38c70a00f33aede (commit)
       via  be448aef22f51a80f725a41624093e6e0f365387 (commit)
       via  3c6e01f653225de320e96f2138204a9e62a5f3d7 (commit)
      from  94571c5dd28858ff68c44b648fd41c5d87c0e28d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0dd16461cf120238dbcb76ea3e405676ccb60b46
Author: Ken Steele <ken at tilera.com>
Date:   Wed Jul 9 10:53:34 2014 -0400

    Update max-pending-packet comments to show it is now per-thread.
    Updated suricata.yaml and comments in the code.

commit 28ccea51d36a38bec124cc44b0e011621619d05d
Author: Ken Steele <ken at tilera.com>
Date:   Wed Jul 2 10:42:05 2014 -0400

    Add error checking for pthread_setspecific() and pthread_key_create().

commit b1a7e76ca7186007db73d49562d92249bc91ac93
Author: Ken Steele <ken at tilera.com>
Date:   Wed Jul 2 09:57:31 2014 -0400

    Use posix_memalign instead of mm_malloc on non-Windows systems.

commit a38d5a0135e877edc8c618b5e38c70a00f33aede
Author: Ken Steele <ken at tilera.com>
Date:   Tue Jul 1 17:10:00 2014 -0400

    Implement thread specific data option when __thread is not available.

commit be448aef22f51a80f725a41624093e6e0f365387
Author: Ken Steele <ken at tilera.com>
Date:   Mon Jun 30 15:12:38 2014 -0400

    For PktPool add local pending freed packets list.
    Better handle the autofp case where one thread allocates the majority
    of the packets and other threads free those packets.
    Add a list of locally pending packets. The first packet freed goes on the
    pending list, then subsequent freed packets for the same Packet Pool are
    added to this list until it hits a fixed number of packets, then the
    entire list of packets is pushed onto the pool's return stack. If a freed
    packet is not for the pending pool, it is freed immediately to its pool's
    return stack, as before.
    For the autofp case, since there is only one Packet Pool doing all the
    allocation, every other thread will keep a list of pending packets for
    that pool.
    For the worker run mode, most packets are allocated and freed locally. For
    the case where packets are being returned to a remote pool, a pending list
    will be kept for one of those other threads, all others are returned as before.
    Which remote pool for which to keep a pending list is changed each time the
    pending list is returned. Since the return pending pool is cleared when it is
    freed, then next packet to be freed chooses the new pending pool.

commit 3c6e01f653225de320e96f2138204a9e62a5f3d7
Author: Ken Steele <ken at tilera.com>
Date:   Fri Mar 28 14:51:25 2014 -0400

    Replace ringbuffer in Packet Pool with a stack for better cache locality
    Using a stack for free Packet storage causes recently freed Packets to be
    reused quickly, while there is more likelihood of the data still being in
    The new structure has a per-thread private stack for allocating Packets
    which does not need any locking. Since Packets can be freed by any thread,
    there is a second stack (return stack) for freeing packets by other threads.
    The return stack is protected by a mutex. Packets are moved from the return
    stack to the private stack when the private stack is empty.
    Returning packets back to their "home" stack keeps the stacks from getting out
    of balance.
    The PacketPoolInit() function is now called by each thread that will be
    allocating packets. Each thread allocates max_pending_packets, which is a
    change from before, where that was the total number of packets across all


Summary of changes:
 src/alert-unified2-alert.c |    1 +
 src/counters.c             |    3 +-
 src/decode.c               |    8 +-
 src/decode.h               |    6 +
 src/flow-manager.c         |    1 +
 src/source-af-packet.c     |   10 +-
 src/source-erf-dag.c       |    9 +-
 src/source-erf-file.c      |   10 +-
 src/source-ipfw.c          |    9 +-
 src/source-mpipe.c         |    4 +-
 src/source-napatech.c      |    9 +-
 src/source-nfq.c           |    3 +-
 src/source-pcap-file.c     |   10 +-
 src/source-pcap.c          |    9 +-
 src/source-pfring.c        |    8 +-
 src/suricata.c             |    5 +-
 src/tm-threads.c           |   10 ++
 src/tmqh-packetpool.c      |  259 ++++++++++++++++++++++++++++++++++----------
 src/tmqh-packetpool.h      |   45 +++++++-
 src/util-mem.h             |   12 +-
 suricata.yaml.in           |    6 +-
 21 files changed, 294 insertions(+), 143 deletions(-)


More information about the Oisf-devel mailing list