Philip,

So far the build without the --disable-nonportable-atomics flag seems to
working much better with httpd 2.2.29, svn 1.8.13, and apr 1.5.1.  I'm no
longer seeing the assert when using the worker mpm on a heavily loaded
multi-core system.

Thanks!
Kevin R.

On Wed, Apr 15, 2015 at 11:26 AM, Kevin Radke <kmra...@gmail.com> wrote:

> Philip,
>
> I believe the non-portable-atomics flag is left over from getting 1.7
> working due to the original APR bug.  Since the bug is fixed, I'll try
> without the flag and see what happens.
>
> A make check for this apr also succeeds without any issues.
>
> APR Lock Performance Test
> ==============
>
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 1 threads    OK
> microseconds: 24476 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 1 threads    OK
> microseconds: 30257 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 1 threads    OK
> microseconds: 42559 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 2 threads    OK
> microseconds: 48643 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 2 threads    OK
> microseconds: 49841 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 2 threads    OK
> microseconds: 88017 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 3 threads    OK
> microseconds: 71369 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 3 threads    OK
> microseconds: 74264 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 3 threads    OK
> microseconds: 156797 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 4 threads    OK
> microseconds: 98064 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 4 threads    OK
> microseconds: 99977 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 4 threads    OK
> microseconds: 258812 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 5 threads    OK
> microseconds: 122259 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 5 threads    OK
> microseconds: 125806 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 5 threads    OK
> microseconds: 344890 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (UNNESTED)          OK
>     Starting 6 threads    OK
> microseconds: 146183 usec
> apr_thread_mutex_t Tests
>     Initializing the apr_thread_mutex_t (NESTED)            OK
>     Starting 6 threads    OK
> microseconds: 149457 usec
> apr_thread_rwlock_t Tests
>     Initializing the apr_thread_rwlock_t                    OK
>     Starting 6 threads    OK
> microseconds: 490974 usec
> Trying proc mutexes with mechanism `default'...
>   Mutex mechanism `default' is global in scope on this platform.
> Trying global mutexes with mechanism `default'...
>   no problems encountered...
> Trying proc mutexes with mechanism `flock'...
>   Mutex mechanism `flock' is not global in scope on this platform.
> Trying global mutexes with mechanism `flock'...
>   no problems encountered...
> Trying proc mutexes with mechanism `sysvsem'...
>   Mutex mechanism `sysvsem' is global in scope on this platform.
> Trying global mutexes with mechanism `sysvsem'...
>   no problems encountered...
> Trying proc mutexes with mechanism `posix'...
>   Mutex mechanism `posix' is global in scope on this platform.
> Trying global mutexes with mechanism `posix'...
>   no problems encountered...
> Trying proc mutexes with mechanism `fcntl'...
>   Mutex mechanism `fcntl' is not global in scope on this platform.
> Trying global mutexes with mechanism `fcntl'...
>   no problems encountered...
> Trying proc mutexes with mechanism `proc_pthread'...
>   Mutex mechanism `proc_pthread' is global in scope on this platform.
> Trying global mutexes with mechanism `proc_pthread'...
>   no problems encountered...
> testatomic          : SUCCESS
>
> Kevin R.
>
> On Wed, Apr 15, 2015 at 10:30 AM, Philip Martin <
> philip.mar...@wandisco.com> wrote:
>
>> Kevin Radke <kmra...@gmail.com> writes:
>>
>> > I'm using --disable-nonportable-atomics and apr 1.5.1 compiled with gcc
>> > 4.4.7.
>> > httpd 2.2.29 is built with mpm=worker.
>>
>> Do you have a particular reason for using --disable-nonportable-atomics?
>> I suspect it leads to code that is not used as often and thus less well
>> tested.  Perhaps try building apr without that setting.
>>
>> > make check in svn gives:
>> > Summary of test results:
>> >   1948 tests PASSED
>> >   58 tests SKIPPED
>> >   31 tests XFAILED (1 WORK-IN-PROGRESS)
>> > SUMMARY: All tests successful.
>>
>> The APR regression tests probably exercise the atomic code more than the
>> Subversion regression tests.
>>
>> --
>> Philip Martin | Subversion Committer
>> WANdisco // *Non-Stop Data*
>>
>
>

Reply via email to