There are two possible reasons for the ‘test atomic operations’ to hang: If compiling without real atomic support, OVS is using pthread locks to implement atomics, which is very slow. In this case, the test does not really hang, but takes a long time to finish. If it really hangs, the compiler atomic support is not working as expected.
Given your description of the clang internal compiler error, I’d guess it is really hanging. Jarno On Dec 23, 2014, at 3:56 PM, Sharo, Randall A CIV SPAWARSYSCEN-ATLANTIC, 55200 <randall.sh...@navy.mil> wrote: > I see this same error, Stephen -- the test gets caught in an infinite while > loop where the atomic reader waits for an atomic writer that is not running > (maybe terminated or failed to spawn). I see the error when building on > Ubuntu 14.10 and CentOS 7. I do not see it on CentOS 6.6. > > > > I also see the OVS atomic source code cause an internal compiler error when > using clang as delivered in the Ubuntu 14.10 distro. (Compiler says it is > unable to determine whether atomic boolean base type should be "bool" or > "u8"). Some forum threads have claimed that recent Ubuntu clang crashes can > be a result of a bug where clang builds improperly under GCC 4.8. I tried > rebuilding clang using GCC 4.7 on Ubuntu but it didn't eliminate the internal > error when the resultant clang binary compiled OVS atomic code. > > > > I have not had an opportunity to track these issues down so I'm currently > developing on a CentOS 6.6 box. > > > > Regards, > > Randy Sharo > > > > ________________________________ > > Hi, > > I'm seeing the following unit test hanging on multiple boards, while it > passes on one board: > > 27: test atomic operations > > Before I invest time debugging, has anyone seen similar issues with this test? > > Regards, > Stephen Finucane > > --- > > PS: The boards are on different kernels (failing: 3.16.6-200.fc20.x86_64, > 3.17.2-200.fc20.x86_64, 3.17.6-200.fc20.x86_64; working: > 3.14.7-200.default.fc20.x86_64). However, OVS should support all of these > kernels. I've included diffs between the kernel configs for these below in > case it's a config issue: > > $ diff -u ./config-working ./config-broken | grep '^-[^-]' | grep -i 'mutex' > -# CONFIG_RT_MUTEX_TESTER is not set > $ diff -u ./config-working ./config-broken | grep '^-[^-]' | grep -i 'lock' > -CONFIG_PTP_1588_CLOCK_PCH=m > $ diff -u ./config-working ./config-broken | grep '^-[^-]' | grep -i 'atom' > $ > > $ diff -u ./config-working ./config-broken | grep '^+[^+]' | grep -i 'lock' > +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y > +CONFIG_ARCH_USE_QUEUE_RWLOCK=y > +CONFIG_QUEUE_RWLOCK=y > +# CONFIG_MTD_UBI_BLOCK is not set > +# Clock Source drivers > +# CONFIG_LOCK_TORTURE_TEST is not set > $ diff -u ./config-working ./config-broken | grep '^+[^+]' | grep -i 'atom' > +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y > +CONFIG_PMC_ATOM=y > $ diff -u ./config-working ./config-broken | grep '^+[^+]' | grep -i 'mutex' > $ > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev