[ovs-dev] '27: test atomic operations' unit test hanging

Sharo, Randall A CIV SPAWARSYSCEN-ATLANTIC, 55200 randall.sharo at navy.mil
Tue Dec 23 23:56:40 UTC 2014


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'
$



More information about the dev mailing list