Subject: [boost] atomic lockpool and alignment
From: Jesper Storm Bache (jsbache_at_[hidden])
Date: 2013-05-17 11:49:24


I am new to this list, so I apologize if this has already been discussed.

boost_1_53_0/libs/atomic/src/lockpool.cpp contains:
        static lockpool::lock_type lock_pool_[41];
On most systems, I would expect that lock_type becomes atomic<bool> v_;

I therefore seems to me that we are packing a large number of commonly used locks into sequential memory and therefore increasing the risk of false sharing due to cache line sharing.
At the same time, I expect that the 41 lock instances will be used frequently and as such it seems to make sense to align the array to a VM page boundary (to get only a single hot VM page).

Has alignment/padding been considered for the lock_pool implementation? If so what are the reasons for its dismissal?

Thanks,
Jesper Storm Bache