[lockfree] include into 1.51?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[lockfree] include into 1.51?

Tim Blechmann-2
hi all, especially release managers,

boost.lockfree is now in trunk and it passes the tests on most supported
platforms. atm it includes a private copy of boost.atomic, which will be
removed once boost.atomic is merged (helge wanted to do it quite soon)
... there are still some test failures on win32, but i think i found the
reason and fixed the tests (btw it is rather time consuming to work with
the test farm as the win32 tests are only run about once a week).

iac, the deadline for new libraries in 1.51 is today, but from my side,
boost.lockfree could be included as it is now. however if the release
managers consider it as too late, i'm don't have a problem with waiting
for another release cycle ...

thoughts?

tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Helge Bahmann
Hi all,

On Mon, 9 Jul 2012, Tim Blechmann wrote:

> hi all, especially release managers,
>
> boost.lockfree is now in trunk and it passes the tests on most supported
> platforms. atm it includes a private copy of boost.atomic, which will be
> removed once boost.atomic is merged (helge wanted to do it quite soon)

actually it is merged now ;)

Regards
Helge

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
>> hi all, especially release managers,
>>
>> boost.lockfree is now in trunk and it passes the tests on most supported
>> platforms. atm it includes a private copy of boost.atomic, which will be
>> removed once boost.atomic is merged (helge wanted to do it quite soon)
>
> actually it is merged now ;)

great to hear ... checking the specific commit, it seems that the
integration into the boost infrastructure (doc/testfarm etc) is still
missing ... please compare with r79196, the specific commit for
boost.lockfree.

thanks, tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Helge Bahmann


On Mon, 9 Jul 2012, Tim Blechmann wrote:

>>> hi all, especially release managers,
>>>
>>> boost.lockfree is now in trunk and it passes the tests on most supported
>>> platforms. atm it includes a private copy of boost.atomic, which will be
>>> removed once boost.atomic is merged (helge wanted to do it quite soon)
>>
>> actually it is merged now ;)
>
> great to hear ... checking the specific commit, it seems that the
> integration into the boost infrastructure (doc/testfarm etc) is still
> missing ... please compare with r79196, the specific commit for
> boost.lockfree.

thanks for the pointer, will fix it, and if you notice anything else, just
write so I can fix it ASAP

regards
Helge

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Daniel James-3
In reply to this post by Tim Blechmann-2
On 9 July 2012 07:26, Tim Blechmann <[hidden email]> wrote:
>
> boost.lockfree is now in trunk and it passes the tests on most supported
> platforms. atm it includes a private copy of boost.atomic, which will be
> removed once boost.atomic is merged (helge wanted to do it quite soon)
> ... there are still some test failures on win32, but i think i found the
> reason and fixed the tests (btw it is rather time consuming to work with
> the test farm as the win32 tests are only run about once a week).

Yes, that's a real pain. I don't use windows much so it causes me
problems as well.

> iac, the deadline for new libraries in 1.51 is today, but from my side,
> boost.lockfree could be included as it is now. however if the release
> managers consider it as too late, i'm don't have a problem with waiting
> for another release cycle ...

It feels a little late to me, we normally try to sort out
documentation, inspect errors etc. before merging. But see what the
other release managers think.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
KTC
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

KTC
In reply to this post by Tim Blechmann-2
On 09/07/2012 07:26, Tim Blechmann wrote:
> hi all, especially release managers,
>
> boost.lockfree is now in trunk and it passes the tests on most supported
> platforms. atm it includes a private copy of boost.atomic, which will be
> removed once boost.atomic is merged (helge wanted to do it quite soon)
> ... there are still some test failures on win32, but i think i found the
> reason and fixed the tests (btw it is rather time consuming to work with
> the test farm as the win32 tests are only run about once a week).

It's doing better but "stack overflow"?

<http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
<http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-stack_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>

KTC


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
>> > boost.lockfree is now in trunk and it passes the tests on most supported
>> > platforms. atm it includes a private copy of boost.atomic, which will be
>> > removed once boost.atomic is merged (helge wanted to do it quite soon)
>> > ... there are still some test failures on win32, but i think i found the
>> > reason and fixed the tests (btw it is rather time consuming to work with
>> > the test farm as the win32 tests are only run about once a week).
> It's doing better but "stack overflow"?
>
> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-stack_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>

same `stack overflow' that i've seen in some other win32 tests ... it
seems that win32 does not like that to allocate large objects on the
stack ...

tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
>>>> boost.lockfree is now in trunk and it passes the tests on most supported
>>>> platforms. atm it includes a private copy of boost.atomic, which will be
>>>> removed once boost.atomic is merged (helge wanted to do it quite soon)
>>>> ... there are still some test failures on win32, but i think i found the
>>>> reason and fixed the tests (btw it is rather time consuming to work with
>>>> the test farm as the win32 tests are only run about once a week).
>> It's doing better but "stack overflow"?
>>
>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-stack_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>
> same `stack overflow' that i've seen in some other win32 tests ... it
> seems that win32 does not like that to allocate large objects on the
> stack ...

should be fixed

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

nnelson
This post has NOT been accepted by the mailing list yet.
In reply to this post by Tim Blechmann-2
Jonathan, (redi at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>)
Re: [Bug c++/53899] [C++0x] undefined reference to std::atomic<boost::lockfree::detail::tagged_ptr...

I installed g++-4.7 and obtained a good improvement over the prior results with the following output

boost_lockfree/libs/lockfree/test$ g++-4.7 -std=c++0x bench_3.cpp -o bench_3
In file included from /usr/include/boost/lockfree/detail/atomic.hpp:15:0,
                 from ../../../boost/lockfree/fifo.hpp:26,
                 from bench_3.cpp:1:
/usr/include/c++/4.7/atomic: In instantiation of ‘struct std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> >’:
/usr/include/boost/lockfree/detail/freelist.hpp:203:29:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function ‘std::atomic<_Tp>::atomic() [with _Tp = boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> >::atomic()’
/usr/include/c++/4.7/atomic: In instantiation of ‘struct std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node> >’:
../../../boost/lockfree/fifo.hpp:287:29:   required from ‘class boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >’
../../../boost/lockfree/fifo.hpp:315:7:   required from ‘class boost::lockfree::fifo<long int>’
bench_3.cpp:18:5:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function ‘std::atomic<_Tp>::atomic() [with _Tp = boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node>]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node> >::atomic()’

Tim Blechmann posted on the Boost list this morning he was doing final testing for the Boost 51 release. I will copy this to him in case he has an idea. My impression is that g++ -std=c++0x and boost lockfree are rather close.

Neil
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

nnelson
This post has NOT been accepted by the mailing list yet.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53899

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-07-09 16:17:04 UTC ---
See Bug 53901

I think GCC is correct about that too, the tagged_ptr class template should
declare its default constructor and destructor to be noexcept in C++11 mode.
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

nnelson
In reply to this post by Tim Blechmann-2
I am posting this again in that the boot list indicated it needed subscription.
-------
Jonathan, (redi at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>)
Re: [Bug c++/53899] [C++0x] undefined reference to std::atomic<boost::lockfree::detail::tagged_ptr...

I installed g++-4.7 and obtained a good improvement over the prior results with the following output

boost_lockfree/libs/lockfree/test$ g++-4.7 -std=c++0x bench_3.cpp -o bench_3
In file included from /usr/include/boost/lockfree/detail/atomic.hpp:15:0,
                 from ../../../boost/lockfree/fifo.hpp:26,
                 from bench_3.cpp:1:
/usr/include/c++/4.7/atomic: In instantiation of ‘struct std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> >’:
/usr/include/boost/lockfree/detail/freelist.hpp:203:29:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function ‘std::atomic<_Tp>::atomic() [with _Tp = boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> >::atomic()’
/usr/include/c++/4.7/atomic: In instantiation of ‘struct std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node> >’:
../../../boost/lockfree/fifo.hpp:287:29:   required from ‘class boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >’
../../../boost/lockfree/fifo.hpp:315:7:   required from ‘class boost::lockfree::fifo<long int>’
bench_3.cpp:18:5:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function ‘std::atomic<_Tp>::atomic() [with _Tp = boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node>]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long int, boost::lockfree::caching_freelist_t, std::allocator<long int> >::node> >::atomic()’

Tim Blechmann posted on the Boost list this morning he was doing final testing for the Boost 51 release. I will copy this to him in case he has an idea. My impression is that g++ -std=c++0x and boost lockfree are rather close.

Neil
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

nnelson
I am posting this again upon receiving an email requesting subscription.
-----------------
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53899

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-07-09 16:17:04 UTC ---
See Bug 53901

I think GCC is correct about that too, the tagged_ptr class template should
declare its default constructor and destructor to be noexcept in C++11 mode.
KTC
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

KTC
In reply to this post by Tim Blechmann-2
On 09/07/2012 14:50, Tim Blechmann wrote:

>>>>> boost.lockfree is now in trunk and it passes the tests on most supported
>>>>> platforms. atm it includes a private copy of boost.atomic, which will be
>>>>> removed once boost.atomic is merged (helge wanted to do it quite soon)
>>>>> ... there are still some test failures on win32, but i think i found the
>>>>> reason and fixed the tests (btw it is rather time consuming to work with
>>>>> the test farm as the win32 tests are only run about once a week).
>>> It's doing better but "stack overflow"?
>>>
>>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-stack_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>>
>> same `stack overflow' that i've seen in some other win32 tests ... it
>> seems that win32 does not like that to allocate large objects on the
>> stack ...
>
> should be fixed

Fixed "stack test", but "queue test" still fail. Doesn't really say why
though.

<http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>

KTC


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
>>>>>> boost.lockfree is now in trunk and it passes the tests on most supported
>>>>>> platforms. atm it includes a private copy of boost.atomic, which will be
>>>>>> removed once boost.atomic is merged (helge wanted to do it quite soon)
>>>>>> ... there are still some test failures on win32, but i think i found the
>>>>>> reason and fixed the tests (btw it is rather time consuming to work with
>>>>>> the test farm as the win32 tests are only run about once a week).
>>>> It's doing better but "stack overflow"?
>>>>
>>>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>>>> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-stack_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>
>>>
>>> same `stack overflow' that i've seen in some other win32 tests ... it
>>> seems that win32 does not like that to allocate large objects on the
>>> stack ...
>>
>> should be fixed
>
> Fixed "stack test", but "queue test" still fail. Doesn't really say why
> though.
>
> <http://www.boost.org/development/tests/trunk/developer/output/KTC-Win7x64_VC10x64-boost-bin-v2-libs-lockfree-test-queue_test-test-msvc-10-0-debug-address-model-64-threading-multi.html>

the queue test has three stress tests (like the stack) ... however the
queue is more complex than the stack ...

the output comes from these stress tests:

threads created
writer threads joined, waiting for readers
reader threads joined
threads created
writer threads joined, waiting for readers
reader threads joined
threads created

this suggests that either the third test case fails, or that that it
gets killed at some point. just to confirm, do you have a timeout for
the tests?

thanks, tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
In reply to this post by Helge Bahmann
>>> actually it is merged now ;)
>>
>> great to hear ... checking the specific commit, it seems that the
>> integration into the boost infrastructure (doc/testfarm etc) is still
>> missing ... please compare with r79196, the specific commit for
>> boost.lockfree.
>
> thanks for the pointer, will fix it, and if you notice anything else, just
> write so I can fix it ASAP

trying to compile with the intel compiler gives me:

./boost/atomic/detail/cas64strong.hpp(24): error: class template
"boost::atomics::detail::base_atomic" has already been defined
  class base_atomic<T, int, 8, Sign> {
        ^

./boost/atomic/detail/cas64strong.hpp(148): error: class template
"boost::atomics::detail::base_atomic" has already been defined
  class base_atomic<void *, void *, 8, Sign> {
        ^

./boost/atomic/detail/cas64strong.hpp(243): error: class template
"boost::atomics::detail::base_atomic" has already been defined
  class base_atomic<T *, void *, 8, Sign> {
        ^

./boost/atomic/detail/cas64strong.hpp(340): error: class template
"boost::atomics::detail::base_atomic" has already been defined
  class base_atomic<T, void, 8, Sign> {
        ^

also keep an eye on the test farm, they as that might show some issues
on rather obscure compilers/platforms

tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
In reply to this post by Daniel James-3
>> iac, the deadline for new libraries in 1.51 is today, but from my side,
>> boost.lockfree could be included as it is now. however if the release
>> managers consider it as too late, i'm don't have a problem with waiting
>> for another release cycle ...
>
> It feels a little late to me, we normally try to sort out
> documentation, inspect errors etc. before merging. But see what the
> other release managers think.

since boost.atomic is now in trunk, too, i prefer to wait for 1.52 to
make use of boost.atomic instead of providing a private copy of it ... i
think, that is much cleaner, despite delaying the release by another few
months ...

tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
KTC
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

KTC
In reply to this post by Tim Blechmann-2
On 09/07/2012 19:26, Tim Blechmann wrote:
>
> this suggests that either the third test case fails, or that that it
> gets killed at some point. just to confirm, do you have a timeout for
> the tests?
>

Standard regression timeout, which I think is 5 minutes. Just ran it
outside of regression on its own and it passed, so does suggest it was
timeout.

KTC


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
KTC
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

KTC
In reply to this post by Tim Blechmann-2
On 09/07/2012 19:49, Tim Blechmann wrote:

>>> iac, the deadline for new libraries in 1.51 is today, but from my side,
>>> boost.lockfree could be included as it is now. however if the release
>>> managers consider it as too late, i'm don't have a problem with waiting
>>> for another release cycle ...
>>
>> It feels a little late to me, we normally try to sort out
>> documentation, inspect errors etc. before merging. But see what the
>> other release managers think.
>
> since boost.atomic is now in trunk, too, i prefer to wait for 1.52 to
> make use of boost.atomic instead of providing a private copy of it ... i
> think, that is much cleaner, despite delaying the release by another few
> months ...

If you're going with boost.atomic, (which I believe you should) then
you'll definitely need to wait as it broke lockfree on MSVC 10. Thing no
longer compile.

KTC


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
In reply to this post by KTC
>> this suggests that either the third test case fails, or that that it
>> gets killed at some point. just to confirm, do you have a timeout for
>> the tests?
>>
>
> Standard regression timeout, which I think is 5 minutes. Just ran it
> outside of regression on its own and it passed, so does suggest it was
> timeout.

hm ... i must admit that this is rather odd: the same test runs in about
0.5 seconds on my sandy bridge i7 (the release build in 0.3 seconds).

does this patch somehow improve the performance of the testsuite?

thanks, tim

diff --git a/libs/lockfree/test/test_common.hpp
b/libs/lockfree/test/test_common.hpp
index c2f2fc0..bd07428 100644
--- a/libs/lockfree/test/test_common.hpp
+++ b/libs/lockfree/test/test_common.hpp
@@ -42,10 +42,10 @@ struct queue_stress_tester

             if (Bounded)
                 while(stk.bounded_push(id) == false)
-                    /*thread::yield()*/;
+                    thread::yield();
             else
                 while(stk.push(id) == false)
-                    /*thread::yield()*/;
+                    thread::yield();
             ++push_count;
         }
     }


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [lockfree] include into 1.51?

Tim Blechmann-2
In reply to this post by KTC
>>>> iac, the deadline for new libraries in 1.51 is today, but from my side,
>>>> boost.lockfree could be included as it is now. however if the release
>>>> managers consider it as too late, i'm don't have a problem with waiting
>>>> for another release cycle ...
>>>
>>> It feels a little late to me, we normally try to sort out
>>> documentation, inspect errors etc. before merging. But see what the
>>> other release managers think.
>>
>> since boost.atomic is now in trunk, too, i prefer to wait for 1.52 to
>> make use of boost.atomic instead of providing a private copy of it ... i
>> think, that is much cleaner, despite delaying the release by another few
>> months ...
>
> If you're going with boost.atomic, (which I believe you should) then
> you'll definitely need to wait as it broke lockfree on MSVC 10. Thing no
> longer compile.

can you post the compile error, so that helge can have a look?

thanks, tim

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
12