Comments (4)
do aarch64 have any form of double-width compare and swap? disabling the ptrcompression would probably result in using 128bit atomics, which would have to be emulated by using locks (with all the side effects that one could not use the data structures in shared memory for example).
would it be possible to simply exclude the ptrcompression code from hwasan via compiler attributes?
from lockfree.
@timblechmann thanks your reply.
-
Actually, in Aarch64 from armv8.1 "CASP" instruction can support 128 bits CAS operation.
For detail you can check https://en.wikichip.org/wiki/arm/armv8.1 and https://developer.arm.com/documentation/100076/0100/a64-instruction-set-reference/a64-data-transfer-instructions/caspa--caspal--casp--caspl--caspal--casp--caspl -
Enable hwasan usually via compiler flags "-fsanitize=hwaddress", we can exclude ptrcompression, but if we run boost in Hwasan device(only libc enable hwasan, boost not enable hwasan compile), like Android, we can't avoid this issue(because boost using memory from libc, boost ptrcompression still conflict with libc memory pointer enabled hwasan)
from lockfree.
Actually, in Aarch64 from armv8.1 "CASP" instruction can support 128 bits CAS operation
interesting. i don't have access to any armv8.1 (just a rpi4, which seems to be armv8.0). could you try to change https://github.com/boostorg/lockfree/blob/develop/include/boost/lockfree/detail/prefix.hpp#L26 to disable pointer compression for arm 8.1.0 and check it the atomics are lockfree? also i wonder if there are any performance implications that may favour pointer compression with 64bit cas over 128 cas ...
from lockfree.
@timblechmann I can't identify minor version "x" of armv8.x, maybe I only disable pointer compression for hwasan test
from lockfree.
Related Issues (20)
- Modular Boost C++ Libraries Request HOT 1
- Lockfree queue delivers data out of order HOT 5
- differering destructor behavior with compile-time size HOT 1
- spsc_queue with compile_time_sized_ringbuffer does not call destructors of remaining queue items when destroyed HOT 3
- compilation error using tagged_ptr_dcas.hpp
- How to contribute code HOT 2
- alignment change in 1.77 beta breaks VS 2017 builds HOT 3
- "No constructor could take the source type, or constructor overload resolution was ambiguous" with boost::lockfree::queue::unsynchronized_push
- 1.6.7 lockfree queue, out of order
- Can the Queue be movable? HOT 1
- boost::lockfree queues support r-values and move in push/pop/consume etc? HOT 1
- Lockfree Queue Triggers Thread Sanitizer Data Race Warning HOT 4
- a new lock-free queue HOT 1
- error in tagged_ptr_dcas.hpp about BOOST_ALIGNMENT
- version 1.73 boost::lockfree::queue crash under android 12 when destruct?
- variable-sized queue with a custom allocator is not constructible HOT 1
- Boost CMake testing procedure fails for Lockfree HOT 14
- Reconfiguring with BUILD_TESTING=OFF doesn't disable tests HOT 1
- MacOS: Workaround for extremely slow performance creating lockfree::stack instances (99.999999% for sure a MacOS problem only) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lockfree.