Commit 72cb1d7f authored by Mathieu Desnoyers's avatar Mathieu Desnoyers Committed by Peter Zijlstra

selftests/rseq: Remove RSEQ_SKIP_FASTPATH code

This code is not currently build by the test Makefile, adds complexity,
and is not overall useful considering that the abort handling loops to
retry the fast-path.
Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20221122203932.231377-10-mathieu.desnoyers@efficios.com
parent f7b01bb0
...@@ -38,11 +38,7 @@ static int opt_yield, opt_signal, opt_sleep, ...@@ -38,11 +38,7 @@ static int opt_yield, opt_signal, opt_sleep,
opt_disable_rseq, opt_threads = 200, opt_disable_rseq, opt_threads = 200,
opt_disable_mod = 0, opt_test = 's', opt_mb = 0; opt_disable_mod = 0, opt_test = 's', opt_mb = 0;
#ifndef RSEQ_SKIP_FASTPATH
static long long opt_reps = 5000; static long long opt_reps = 5000;
#else
static long long opt_reps = 100;
#endif
static __thread __attribute__((tls_model("initial-exec"))) static __thread __attribute__((tls_model("initial-exec")))
unsigned int signals_delivered; unsigned int signals_delivered;
......
...@@ -79,10 +79,6 @@ do { \ ...@@ -79,10 +79,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \ #define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \
post_commit_offset, abort_ip) \ post_commit_offset, abort_ip) \
".pushsection __rseq_cs, \"aw\"\n\t" \ ".pushsection __rseq_cs, \"aw\"\n\t" \
...@@ -823,5 +819,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -823,5 +819,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
rseq_bug("expected value comparison failed"); rseq_bug("expected value comparison failed");
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
...@@ -85,10 +85,6 @@ do { \ ...@@ -85,10 +85,6 @@ do { \
} \ } \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#define RSEQ_ASM_TMP_REG32 "w15" #define RSEQ_ASM_TMP_REG32 "w15"
#define RSEQ_ASM_TMP_REG "x15" #define RSEQ_ASM_TMP_REG "x15"
#define RSEQ_ASM_TMP_REG_2 "x14" #define RSEQ_ASM_TMP_REG_2 "x14"
...@@ -691,5 +687,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -691,5 +687,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
rseq_bug("expected value comparison failed"); rseq_bug("expected value comparison failed");
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
...@@ -60,10 +60,6 @@ do { \ ...@@ -60,10 +60,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#if _MIPS_SZLONG == 64 #if _MIPS_SZLONG == 64
# define LONG ".dword" # define LONG ".dword"
# define LONG_LA "dla" # define LONG_LA "dla"
...@@ -773,5 +769,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -773,5 +769,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
rseq_bug("expected value comparison failed"); rseq_bug("expected value comparison failed");
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
...@@ -36,10 +36,6 @@ do { \ ...@@ -36,10 +36,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
/* /*
* The __rseq_cs_ptr_array and __rseq_cs sections can be used by debuggers to * The __rseq_cs_ptr_array and __rseq_cs sections can be used by debuggers to
* better handle single-stepping through the restartable critical sections. * better handle single-stepping through the restartable critical sections.
...@@ -787,5 +783,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -787,5 +783,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
rseq_bug("expected value comparison failed"); rseq_bug("expected value comparison failed");
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
...@@ -49,10 +49,6 @@ do { \ ...@@ -49,10 +49,6 @@ do { \
RSEQ_WRITE_ONCE(*(p), v); \ RSEQ_WRITE_ONCE(*(p), v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \ #define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \
post_commit_offset, abort_ip) \ post_commit_offset, abort_ip) \
".pushsection __rseq_cs, \"aw\"\n" \ ".pushsection __rseq_cs, \"aw\"\n" \
...@@ -673,5 +669,3 @@ int rseq_offset_deref_addv(intptr_t *ptr, off_t off, intptr_t inc, int cpu) ...@@ -673,5 +669,3 @@ int rseq_offset_deref_addv(intptr_t *ptr, off_t off, intptr_t inc, int cpu)
rseq_bug("cpu_id comparison failed"); rseq_bug("cpu_id comparison failed");
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
...@@ -28,10 +28,6 @@ do { \ ...@@ -28,10 +28,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#ifdef __s390x__ #ifdef __s390x__
#define LONG_L "lg" #define LONG_L "lg"
...@@ -607,4 +603,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -607,4 +603,3 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
return rseq_cmpeqv_trymemcpy_storev(v, expect, dst, src, len, return rseq_cmpeqv_trymemcpy_storev(v, expect, dst, src, len,
newv, cpu); newv, cpu);
} }
#endif /* !RSEQ_SKIP_FASTPATH */
/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
/*
* rseq-skip.h
*
* (C) Copyright 2017-2018 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*/
static inline __attribute__((always_inline))
int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
long voffp, intptr_t *load, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_addv(intptr_t *v, intptr_t count, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect,
intptr_t *v2, intptr_t newv2,
intptr_t newv, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect,
intptr_t *v2, intptr_t newv2,
intptr_t newv, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect,
intptr_t *v2, intptr_t expect2,
intptr_t newv, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect,
void *dst, void *src, size_t len,
intptr_t newv, int cpu)
{
return -1;
}
static inline __attribute__((always_inline))
int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
void *dst, void *src, size_t len,
intptr_t newv, int cpu)
{
return -1;
}
...@@ -50,10 +50,6 @@ do { \ ...@@ -50,10 +50,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, \ #define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, \
start_ip, post_commit_offset, abort_ip) \ start_ip, post_commit_offset, abort_ip) \
".pushsection __rseq_cs, \"aw\"\n\t" \ ".pushsection __rseq_cs, \"aw\"\n\t" \
...@@ -629,8 +625,6 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -629,8 +625,6 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
newv, cpu); newv, cpu);
} }
#endif /* !RSEQ_SKIP_FASTPATH */
#elif defined(__i386__) #elif defined(__i386__)
#define RSEQ_ASM_TP_SEGMENT %%gs #define RSEQ_ASM_TP_SEGMENT %%gs
...@@ -657,10 +651,6 @@ do { \ ...@@ -657,10 +651,6 @@ do { \
RSEQ_WRITE_ONCE(*p, v); \ RSEQ_WRITE_ONCE(*p, v); \
} while (0) } while (0)
#ifdef RSEQ_SKIP_FASTPATH
#include "rseq-skip.h"
#else /* !RSEQ_SKIP_FASTPATH */
/* /*
* Use eax as scratch register and take memory operands as input to * Use eax as scratch register and take memory operands as input to
* lessen register pressure. Especially needed when compiling in O0. * lessen register pressure. Especially needed when compiling in O0.
...@@ -1360,6 +1350,4 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, ...@@ -1360,6 +1350,4 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
#endif #endif
} }
#endif /* !RSEQ_SKIP_FASTPATH */
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment