<html>#2832: possible race condition in LoopControl
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'> Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'> Version:</td><td></td></tr>
<tr><td style='text-align:right'> Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>major</td></tr>
<tr><td style='text-align:right'>Component:</td><td></td></tr>
</table>
<p>Comment (by Roland Haas):</p>
<p>The issue may be alignment related. gcc-14 produces a warning:</p>
<div class="codehilite"><pre><span></span><code><span>COMPILING Carpet/LoopControl/src/loopcontrol.cc</span>
<span>/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/yosef/build/LoopControl/loopcontrol.cc: In function ?voi LC_control_init(lc_control_t*, lc_descr_t*, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t)?:</span>
<span>/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/yosef/build/LoopControl/loopcontrol.cc:797:29: warning: new? of type ?lc_thread_info_t? with extended alignment 128 [-Waligned-new=]</span>
<span> 797 | { thread_info_ptr = new lc_thread_info_t; }</span>
<span> | ^~~~~~~~~~~~~~~~</span>
<span>/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/yosef/build/LoopControl/loopcontrol.cc:797:29: note: uses ?void* operator new(std::size_t)?, which does not have an alignment parameter</span>
<span>/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/yosef/build/LoopControl/loopcontrol.cc:797:29: note: use ?-faligned-new? to enable C++17 over-aligned new support</span>
</code></pre></div>
<p>and changing LoopControl like this: </p>
<div class="codehilite language-diff"><pre><span></span><code><span class="gh">diff --git a/LoopControl/src/loopcontrol.cc b/LoopControl/src/loopcontrol.cc</span>
<span class="gh">index a2e3460f2..062db9c1f 100644</span>
<span class="gd">--- a/LoopControl/src/loopcontrol.cc</span>
<span class="gi">+++ b/LoopControl/src/loopcontrol.cc</span>
<span class="gu">@@ -71,12 +71,16 @@ static minstd_rand::result_type const constexpr lc_random_range =</span>
struct lc_thread_info_t {
volatile int idx; // linear index of next coarse thread block
<span class="gd">-} CCTK_ATTRIBUTE_ALIGNED(128); // align to prevent sharing cache lines</span>
<span class="gi">+ char pad[128 - sizeof(int)]; // align to prevent sharing cache lines</span>
<span class="gi">+};</span>
<span class="gi">+static_assert
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2832/possible-race-condition-in-loopcontrol'>https://bitbucket.org/einsteintoolkit/tickets/issues/2832/possible-race-condition-in-loopcontrol</a></p>
</html>