Skip to content

Commit 770e827

Browse files
committed
build: disable Seastar exception hack
In [1], Seastar started to bypass a lock in libgcc's exception throwing mechanism to allow scalability on large machines. The problem is documented in [2] and reported as fixed. In [3], testing results on a 2s96c192t machine are reported. The problem appears indeed fixed with gcc 14's runtime (which we use, even though we build with clang). Given the new results, we can safely drop the exception scalability hack. As [1] states that the hack causes the loss of a translation cache, we may gain some performance this way. With that, we disable the cache by defining some random macros. [1] https://github.com/scylladb/seastar/464f5e3ae43b366b05573018fc46321863bf2fae [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71744 [3] scylladb/seastar#2479 (comment)
1 parent d28d64f commit 770e827

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

configure.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,6 +1662,9 @@ def dynamic_linker_option():
16621662
curdir = os.getcwd()
16631663
user_cflags = args.user_cflags + f" -ffile-prefix-map={curdir}=."
16641664

1665+
# Since gcc 13, libgcc doesn't need the exception workaround
1666+
user_cflags += ' -DNO_EXCEPTION_INTERCEPT -DSEASTAR_NO_EXCEPTION_HACK'
1667+
16651668
if args.target != '':
16661669
user_cflags += ' -march=' + args.target
16671670

0 commit comments

Comments
 (0)