Skip to content
  • Ben Pfaff's avatar
    ovs-vswitchd: Fire RCU callbacks before exit to reduce memory leak warnings. · 9a3cf0ac
    Ben Pfaff authored
    
    
    ovs-vswitchd makes extensive use of RCU to defer freeing memory past the
    latest time that it could be in use by a thread.  Until now, ovs-vswitchd
    has not waited for RCU callbacks to fire before exiting.  This meant that
    in many cases, when ovs-vswitchd exits, many blocks of memory are stuck in
    RCU callback queues, which valgrind often reports as "possible" memory
    leaks.
    
    This commit adds a new function ovsrcu_exit() that waits and fires as many
    RCU callbacks as it reasonably can.  It can only do so for the thread that
    calls it and the thread that calls the callbacks, but generally speaking
    ovs-vswitchd shuts down other threads before it exits anyway, so this is
    pretty good.
    
    In my testing this eliminates most valgrind warnings for tests that run
    ovs-vswitchd.  This ought to make it easier to distinguish new leaks that
    are real from existing non-leaks.
    
    Signed-off-by: default avatarBen Pfaff <blp@ovn.org>
    Acked-by: default avatarWilliam Tu <u9012063@gmai.com>
    9a3cf0ac