On Fri, Jul 26, 2019 at 8:04 PM Mark Michelson <[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]> > wrote: > > > >> > >> > >> On Fri, Jul 26, 2019 at 5:19 PM Damijan Skvarc <[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 > > > > > >> 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]> > wrote: > >>> > >>>> On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique <[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] > > > >>>> 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] > >>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev > >>>> _______________________________________________ > >>>> dev mailing list > >>>> [email protected] > >>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev > >>>> > >>> > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
