On 7/26/19 10:36 AM, Numan Siddique wrote:
On Fri, Jul 26, 2019 at 8:04 PM Mark Michelson <[email protected]
<mailto:[email protected]>> wrote:
On 7/26/19 8:52 AM, Numan Siddique wrote:
> On Fri, Jul 26, 2019 at 5:51 PM Numan Siddique
<[email protected] <mailto:[email protected]>> wrote:
>
>>
>>
>> On Fri, Jul 26, 2019 at 5:19 PM Damijan Skvarc
<[email protected] <mailto:[email protected]>>
>> wrote:
>>
>>> Dumitru,
>>> your issue was fixed in
>>>
https://github.com/openvswitch/ovs/commit/6f6d19db05ca743d6f294618d2c36b6d0b15e2e2
>>> as removed warning. However fix is not merged yet on
>>> https://github.com/ovn-org/ovn.git. Unfortunatelly even merging
this fix
>>> to ovn-org/ovn.git will not help, since (saying from memory) by
this fix
>>> about 1700 warning were removed while there still remained about 70
>>> warnings of the same kind at different locations. I would
suggest for a
>>> while not to consider warnings as errors.
>>>
>>
>> Hi Damijan,
>>
>> With the OVS/OVN split branch here -
>> https://github.com/ovn-org/ovn/commits/ovs_ovn_split, your fix is
>> available -
>>
https://github.com/ovn-org/ovn/blob/ovs_ovn_split/ovs/include/openvswitch/nsh.h#L372
>>
>> After applying Ilya's patch and manually compiling sparse after
reverting
>> the commit, I am still seeing the below errors
>>
>> Do you think we can ignore these errors for now ?
>>
>>
> Found the issue. The acinclude.m4 file in ovn-org/ovn repo is a
bit out of
> date. The OVS_ENABLE_SPARSE and other SPARSE related macros needs
to be
> updated. After fixing it, compilation
> was successful.
>
> Thanks
> Numan
Hi Numan,
I just attempted this. I did a fresh clone of the ovn repo, checked out
the up-to-date ovs_ovn_split branch, and then compiled with
--enable-sparse and --enable-Werror.
I see the following errors:
libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I
./include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64
-target=host_os_specs -D__MMX__=1 -D__SSE2_MATH__=1 -D__SSE_MATH__=1
-D__SSE2__=1 -D__SSE__=1 -DHAVE_CONFIG_H -I. -I ./include -I ./include
-I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare
-Wpointer-arith -Wformat -Wformat-security -Wswitch-enum
-Wunused-parameter -Wbad-function-cast -Wcast-align -Wstrict-prototypes
-Wold-style-definition -Wmissing-prototypes
-Wmissing-field-initializers
-fno-strict-aliasing -Wswitch-bool -Wlogical-not-parentheses
-Wsizeof-array-argument -Wbool-compare -Wshift-negative-value
-Wduplicated-cond -Wshadow -Werror -Werror -g -O2 -MT lib/rconn.lo -MD
-MP -MF lib/.deps/rconn.Tpo -c lib/rconn.c -o lib/rconn.o
lib/sat-math.h:46:14: error: undefined identifier
'__builtin_saddll_overflow'
lib/sat-math.h:46:39: error: not a function <noident>
lib/sat-math.h:46:39: error: not a function <noident>
lib/sat-math.h:102:14: error: undefined identifier
'__builtin_smulll_overflow'
lib/sat-math.h:102:39: error: not a function <noident>
lib/sat-math.h:46:39: error: not a function <noident>
lib/sat-math.h:102:39: error: not a function <noident>
lib/sat-math.h:46:39: error: not a function <noident>
lib/sat-math.h:72:14: error: undefined identifier
'__builtin_ssubll_overflow'
lib/sat-math.h:102:39: error: not a function <noident>
lib/sat-math.h:46:39: error: not a function <noident>
lib/sat-math.h:102:39: error: call with no type!
lib/sat-math.h:72:39: error: call with no type!
lib/sat-math.h:46:39: error: call with no type!
make[4]: *** [Makefile:5359: lib/rconn.lo] Error 1
I also see this with the OVS repo. So it likely should be addressed
there instead, and it shouldn't delay our work of splitting the OVN
code
out.
I agree.
But I don't see these errors. I suspect its to do with sparse version ?
Not sure :).
Without sparse, hopefully it went fine for you.
Thanks
Numan
Yep, without sparse everything went fine. I was running with sparse
version 0.5.2 when I saw the errors. I then installed sparse from source
(reverting commit bb1bf748580d as our travis script does), and no longer
had the issue. I suspect that we need to update the ovs docs to specify
a more recent version of sparse than 0.5.1 now.
>
>
>> Thank
>> Numan
>>
>> *******
>> -Wold-style-definition -Wmissing-prototypes
-Wmissing-field-initializers
>> -fno-strict-aliasing -Wswitch-bool -Wlogical-not-parentheses
>> -Wsizeof-array-argument -Wbool-compare -Wshift-negative-value
>> -Wduplicated-cond -Wshadow -Wmultistatement-macros
-Wcast-align=strict
>> -Werror -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF
$depbase.Tpo -c -o
>> lib/acl-log.lo ../lib/acl-log.c &&\
>> mv -f $depbase.Tpo $depbase.Plo
>> ../ovs/lib/util.h:449:12: error: incorrect type in return expression
>> (different base types)
>> ../ovs/lib/util.h:449:12: expected restricted ovs_be32
>> ../ovs/lib/util.h:449:12: got unsigned int
>> ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3426:34: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3426:34: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3426:34: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3426:34: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3428:39: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3428:39: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3428:39: expected unsigned int
[usertype] __bsx
>> ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32
[usertype]
>> network
>> ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in
argument 1
>> (different base types)
>> ../utilities/ovn-nbctl.c:3428:39: expected unsigned int
[usertype] __bsx
>> ...
>> ...
>> make[2]: *** Waiting for unfinished jobs....
>> libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I
>> ../include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64
>> -DHAVE_CONFIG_H -I. -I.. -I ../ovs/include -I ./ovs/include -I
../ovs/lib
>> -I ./ovs/lib -I ../ovs -I ./ovs -I ../lib -I ./lib
-Wstrict-prototypes
>> -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat
-Wformat-security
>> -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align
>> -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
>> -Wmissing-field-initializers -fno-strict-aliasing -Wswitch-bool
>> -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare
>> -Wshift-negative-value -Wduplicated-cond -Wshadow
-Wmultistatement-macros
>> -Wcast-align=strict -Werror -Werror -g -O2 -MT lib/acl-log.lo
-MD -MP -MF
>> lib/.deps/acl-log.Tpo -c ../lib/acl-log.c -o lib/acl-log.o
>> libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I
>> ../include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64
>> -DHAVE_CONFIG_H -I. -I.. -I ../ovs/include -I ./ovs/include -I
../ovs/lib
>> -I ./ovs/lib -I ../ovs -I ./ovs -I ../lib -I ./lib
-Wstrict-prototypes
>> -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat
-Wformat-security
>> -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align
>> -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
>> -Wmissing-field-initializers -fno-strict-aliasing -Wswitch-bool
>> -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare
>> -Wshift-negative-value -Wduplicated-cond -Wshadow
-Wmultistatement-macros
>> -Wcast-align=strict -Werror -Werror -g -O2 -MT lib/actions.lo
-MD -MP -MF
>> lib/.deps/actions.Tpo -c ../lib/actions.c -o lib/actions.o
>> ../lib/actions.c:723:32: error: incorrect type in initializer
(different
>> base types)
>> ../lib/actions.c:723:32: expected restricted ovs_be32 const
[usertype]
>> value
>> ../lib/actions.c:723:32: got unsigned int
>> ../lib/actions.c:724:31: error: incorrect type in initializer
(different
>> base types)
>> ../lib/actions.c:724:31: expected restricted ovs_be32 const
[usertype]
>> mask
>> ../lib/actions.c:724:31: got unsigned int
>> ../lib/actions.c:976:42: error: incorrect type in argument 1
(different
>> base types)
>> ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx
>> ../lib/actions.c:976:42: got restricted ovs_be32 const
[usertype] ipv4
>> ../lib/actions.c:976:42: error: incorrect type in argument 1
(different
>> base types)
>> ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx
>> ../lib/actions.c:976:42: got restricted ovs_be32 const
[usertype] ipv4
>> ../lib/actions.c:976:42: error: incorrect type in argument 1
(different
>> base types)
>> ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx
>> ../lib/actions.c:976:42: got restricted ovs_be32 const
[usertype] ipv4
>> ../lib/actions.c:976:42: error: incorrect type in argument 1
(different
>> base types)
>> ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx
>> ../lib/actions.c:976:42: got restricted ovs_be32 const
[usertype] ipv4
>> ../lib/actions.c:1970:20: error: incorrect type in initializer
(different
>> base types)
>> ../lib/actions.c:1970:20: expected restricted ovs_be32
[usertype] ofs
>> ../lib/actions.c:1970:20: got unsigned int
>> *********
>>
>>
>>
>>>
>>> br,Damijan
>>>
>>> On Fri, Jul 26, 2019 at 10:30 AM Dumitru Ceara
<[email protected] <mailto:[email protected]>> wrote:
>>>
>>>> On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique
<[email protected] <mailto:[email protected]>>
>>>> wrote:
>>>>>
>>>>> Hello All,
>>>>>
>>>>> The split work is almost done and we have pushed it to the
ovn repo
>>>> branch
>>>>> for now - https://github.com/ovn-org/ovn/commits/ovs_ovn_split
>>>>> If some one is interested, please try it out and let us know any
>>>> comments
>>>>> or issues.
>>>>
>>>> Hi Numan,
>>>>
>>>> It looks like the ovs_ovn_split branch doesn't build:
>>>>
>>>> # git clone https://github.com/ovn-org/ovn.git ovn
>>>> # cd ovn
>>>> # ./boot.sh
>>>> # ./configure --enable-Werror --enable-sparse
>>>> # make
>>>> make all-recursive
>>>> make[1]: Entering directory `/root/ovn'
>>>> Making all in ovs
>>>> make[2]: Entering directory `/root/ovn/ovs'
>>>> make all-recursive
>>>> make[3]: Entering directory `/root/ovn/ovs'
>>>> Making all in datapath
>>>> make[4]: Entering directory `/root/ovn/ovs/datapath'
>>>> make[5]: Entering directory `/root/ovn/ovs/datapath'
>>>> make[5]: Leaving directory `/root/ovn/ovs/datapath'
>>>> make[4]: Leaving directory `/root/ovn/ovs/datapath'
>>>> make[4]: Entering directory `/root/ovn/ovs'
>>>> make[4]: Leaving directory `/root/ovn/ovs'
>>>> make[3]: Leaving directory `/root/ovn/ovs'
>>>> make[2]: Leaving directory `/root/ovn/ovs'
>>>> make[2]: Entering directory `/root/ovn'
>>>> depbase=`echo lib/acl-log.lo | sed
's|[^/]*$|.deps/&|;s|\.lo$||'`;\
>>>> /bin/sh ./libtool --tag=CC --mode=compile env REAL_CC="gcc
>>>> -std=gnu99" CHECK="sparse -Wsparse-error -I ./include/sparse
-m64 -I
>>>> /usr/local/include " cgcc -target=x86_64 -DHAVE_CONFIG_H -I.
-I
>>>> ./ovs/include -I ./ovs/include -I ./ovs/lib -I ./ovs/lib -I
./ovs -I
>>>> ./ovs -I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra
>>>> -Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security
>>>> -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align
>>>> -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
>>>> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror
>>>> -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF $depbase.Tpo -c -o
>>>> lib/acl-log.lo lib/acl-log.c &&\
>>>> mv -f $depbase.Tpo $depbase.Plo
>>>> libtool: compile: env "REAL_CC=gcc -std=gnu99" "CHECK=sparse
>>>> -Wsparse-error -I ./include/sparse -m64 -I /usr/local/include
" cgcc
>>>> -target=x86_64 -DHAVE_CONFIG_H -I. -I ./ovs/include -I
./ovs/include
>>>> -I ./ovs/lib -I ./ovs/lib -I ./ovs -I ./ovs -I ./lib -I ./lib
>>>> -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare
-Wpointer-arith
>>>> -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter
>>>> -Wbad-function-cast -Wcast-align -Wstrict-prototypes
>>>> -Wold-style-definition -Wmissing-prototypes
>>>> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror
>>>> -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF
lib/.deps/acl-log.Tpo -c
>>>> lib/acl-log.c -o lib/acl-log.o
>>>> ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__v'
shadows an
>>>> earlier one
>>>> ./ovs/include/openvswitch/nsh.h:372:11: originally declared here
>>>> ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__x'
shadows an
>>>> earlier one
>>>> ./ovs/include/openvswitch/nsh.h:372:11: originally declared here
>>>> ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__v'
shadows an
>>>> earlier one
>>>> ./ovs/include/openvswitch/nsh.h:383:11: originally declared here
>>>> ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__x'
shadows an
>>>> earlier one
>>>> ./ovs/include/openvswitch/nsh.h:383:11: originally declared here
>>>> make[2]: *** [lib/acl-log.lo] Error 1
>>>>
>>>> Building ovs master works fine for me:
>>>>
>>>> # git clone https://github.com/openvswitch/ovs.git ovs
>>>> # cd ovs
>>>> # ./boot.sh
>>>> # ./configure --enable-Werror --enable-sparse
>>>> # make
>>>> <snip>
>>>> mv tests/system-afxdp-testsuite.tmp tests/system-afxdp-testsuite
>>>> mv tests/system-kmod-testsuite.tmp tests/system-kmod-testsuite
>>>> mv tests/system-userspace-testsuite.tmp
tests/system-userspace-testsuite
>>>> touch -c manpage-check
>>>> mv tests/testsuite.tmp tests/testsuite
>>>> make[2]: Leaving directory `/root/ovs'
>>>> make[1]: Leaving directory `/root/ovs'
>>>>
>>>> Regards,
>>>> Dumitru
>>>>
>>>>>
>>>>> We are planning to push the changes to the master branch
hopefully
>>>> Friday
>>>>> if everything goes fine.
>>>>>
>>>>> Thanks
>>>>> Numan
>>>>>
>>>>>
>>>>> On Fri, Jul 26, 2019 at 12:05 AM Mark Michelson
<[email protected] <mailto:[email protected]>>
>>>> wrote:
>>>>>
>>>>>> On 7/25/19 12:37 PM, Ilya Maximets wrote:
>>>>>>> Hi.
>>>>>>>
>>>>>>> I have a question regarding the split.
>>>>>>> Sorry if it's obvious from the RFC splitting code which I
didn't
>>>> look at.
>>>>>>>
>>>>>>> The question is:
>>>>>>> How the patches for the common data structures (lists, hash
maps)
>>>> will be
>>>>>>> applied to OVN? Will we need to post same patch for both
>>>> repositories in
>>>>>> the
>>>>>>> future if it changes/fixes common libraries? Or all this
code will
>>>> be
>>>>>> hosted
>>>>>>> only in OVS repo and will be included like a submodule or
>>>> something like
>>>>>> that?
>>>>>>>
>>>>>>> Best regards, Ilya Maximets.
>>>>>>
>>>>>> Hi Ilya,
>>>>>>
>>>>>> OVN will be a separate repo from OVS. Initially, OVS will be a
>>>> subtree
>>>>>> of OVN, but soon, we will want to be able to build OVN while
having a
>>>>>> completely separate OVS on the system. When all is said and
done, it
>>>>>> should be possible to build OVN as long as you have, say, an
>>>> ovs-devel
>>>>>> package installed on your system.
>>>>>>
>>>>>> I think the answer to your question is that as an OVS
developer, if
>>>> you
>>>>>> make a change to a core component, you only need to post the
change
>>>> to
>>>>>> the OVS repo.
>>>>>>
>>>>>> From an OVN developer's perspective, if an OVN feature/bugfix
>>>> requires
>>>>>> a parallel change to be made to a core OVS library, then the OVN
>>>>>> developer will need to post the library change to OVS as
well as the
>>>>>> usage of that change to OVN. As long as OVS is a subtree of
OVN, it's
>>>>>> just a matter of ensuring the subtree is kept up to date.
However,
>>>> once
>>>>>> OVS is built separately, then configure-time checks of OVS
features
>>>> or
>>>>>> minimum version checks will need to be added to OVN to
ensure that
>>>> the
>>>>>> code can build properly.
>>>>>>
>>>>>> This approach should place most of the burden of OVN
compatibility
>>>> with
>>>>>> OVS on OVN developers rather than OVS developers.
>>>>>>>
>>>>>>>> Numan and I have discussed this, and we're planning to perform
>>>> the split
>>>>>>>> tomorrow July 25. Numan will be applying the commits he
>>>> referenced below
>>>>>>>> to the ovn-org branch to get it up to date. I will be
submitting a
>>>>>>>> review for OVS to remove all of the OVN code,
documentation, etc.
>>>> from
>>>>>> it.
>>>>>>>>
>>>>>>>> If there are any reasons why we should hold off on this,
please
>>>> mention
>>>>>>>> them as soon as possible.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> On 7/22/19 2:35 PM, Numan Siddique wrote:
>>>>>>>>> Hi Ben, Mark and All,
>>>>>>>>>
>>>>>>>>> Now that branch 2.12 is created, shall we proceed with the
>>>> OVS/OVN
>>>>>> split ?
>>>>>>>>>
>>>>>>>>> In order to do the split we need to do the below tasks
>>>>>>>>>
>>>>>>>>> In ovn-org/ovn repo
>>>>>>>>> Step 1. Sync the ovs subtree to the latest (from the OVS
repo).
>>>>>>>>> 2. Delete all the ovn related code from the root dir.
Right now
>>>> there
>>>>>> is
>>>>>>>>> no history for the OVN files in the ovn-org/ovn repo
>>>>>>>>> 3. Copy OVN files from openvswitch/ovs repo using
>>>> git-filter-branch.
>>>>>>>>> This will preserver the history.
>>>>>>>>> 4. Sync the test files from ovs subtree so that tests pass.
>>>>>>>>>
>>>>>>>>> During this period its better to freeze merging OVN related
>>>> patches in
>>>>>>>>> the OVS repo.
>>>>>>>>> And finally delete the OVN related code from the OVS repo.
>>>>>>>>>
>>>>>>>>> I have done a PoC here -
>>>>>>>>>
>>>>
https://github.com/numansiddique/ovn/commits/ovn_sync_from_ovs_v3/p4
>>>>>>>>> All the relates commits can be found here.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Does these steps seem fine ? Any concerns ?
>>>>>>>>> If this seems fine, can we choose a date to start this
process ?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Numan
>>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> dev mailing list
>>>>> [email protected] <mailto:[email protected]>
>>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>>> _______________________________________________
>>>> dev mailing list
>>>> [email protected] <mailto:[email protected]>
>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>>>
>>>
> _______________________________________________
> dev mailing list
> [email protected] <mailto:[email protected]>
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev