On 3/22/22 19:05, Mark Michelson wrote:
> On 3/22/22 11:06, Numan Siddique wrote:
>> On Mon, Mar 14, 2022 at 4:26 AM Xavier Simonart <xsimo...@redhat.com>
>> wrote:
>>>
>>> This will more or less double the number of test cases.
>>> It is possible to select a reduce set of test cases using -k "keywords".
>>> Keyword such as
>>>          dp-groups=yes
>>>          dp-groups=no
>>>          parallelization=yes
>>>          parallelization=no
>>>          ovn-northd
>>>          ovn-northd-ddlog
>>> can be used to select a range of tests, as title is searched as well.
>>>
>>> For instance, to run ovn-parallelization tests, with dp-groups
>>> enabled and ddlog disabled:
>>>          make check TESTSUITEFLAGS="-k
>>> dp-groups=yes,parallelization=yes,\!ovn-northd-ddlog"
>>>
>>> A few additional notes
>>> - Do not use "ovn-northd" as a keyword, or the result might be
>>> different than expected.
>>>    Even tough ovn-northd is added in all titles for the non ddlog
>>> tests, ovn-northd is also
>>>    added in title of some other tests, for both ddlog and non ddlog
>>> (e.g. "check ovn-northd and ovn-controller version pinning").
>>> - Running tests for both parallelization=yes and parallelization=no
>>> will not run all tests as
>>>    some tests are not run through OVN_FOR_EACH_NORTHD. Instead use
>>> for instance
>>>    make check  TESTSUITEFLAGS="-k parallelization=yes" and
>>>    make check  TESTSUITEFLAGS="-k \!parallelization=yes" to run all
>>> tests
>>>
>>> If less than four physical cores are available, then 1 socket/four
>>> cores dummy-numa
>>> is used to excercice parallel northd
>>>
>>> Signed-off-by: Xavier Simonart <xsimo...@redhat.com>
>>
>> Acked-by: Numan Siddique <num...@ovn.org>
>>
>> Numan
> 
> I pushed this to the main branch.
> 

This actually uncovered the fact that we're incorrectly writing to
the IDL from multiple threads when northd parallelization is
enabled and causing issues, like:

=================================================================
==3096883==ERROR: LeakSanitizer: detected memory leaks
 
Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f9f7c7ef93f in __interceptor_malloc (/lib64/libasan.so.6+0xae93f)
    #1 0x65eec0 in xmalloc__ lib/util.c:137
    #2 0x65eee3 in xmalloc lib/util.c:172
    #3 0x59d783 in resize lib/hmap.c:100
    #4 0x59db7b in hmap_expand_at lib/hmap.c:175
    #5 0x62c02e in hmap_insert_at include/openvswitch/hmap.h:283
    #6 0x62c02e in ovsdb_idl_txn_write__ lib/ovsdb-idl.c:3538
    #7 0x63063a in ovsdb_idl_txn_write lib/ovsdb-idl.c:3596
    #8 0x562ca1 in sbrec_port_binding_set_options lib/ovn-sb-idl.c:28511
    #9 0x44eb3c in build_ND_RA_flows_for_lrouter_port northd/northd.c:10920
    #10 0x46014e in build_lswitch_and_lrouter_iterate_by_op 
northd/northd.c:13530
    #11 0x460686 in build_lflows_thread northd/northd.c:13592
    #12 0x61097c in ovsthread_wrapper lib/ovs-thread.c:422
    #13 0x7f9f7c39e298 in start_thread 
/usr/src/debug/glibc-2.33-20.fc34.x86_64/nptl/pthread_create.c:481

It looks like we need some additional fixes to the northd
parallelization code.

Regards,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to