$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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