mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20221122203932.231377-10-mathieu.desnoyers@efficios.com
This commit is contained in:
parent
f7b01bb0b5
commit
72cb1d7f2f
9 changed files with 0 additions and 116 deletions
|
@ -38,11 +38,7 @@ static int opt_yield, opt_signal, opt_sleep,
|
|||
opt_disable_rseq, opt_threads = 200,
|
||||
opt_disable_mod = 0, opt_test = 's', opt_mb = 0;
|
||||
|
||||
#ifndef RSEQ_SKIP_FASTPATH
|
||||
static long long opt_reps = 5000;
|
||||
#else
|
||||
static long long opt_reps = 100;
|
||||
#endif
|
||||
|
||||
static __thread __attribute__((tls_model("initial-exec")))
|
||||
unsigned int signals_delivered;
|
||||
|
|
|
@ -79,10 +79,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \
|
||||
post_commit_offset, abort_ip) \
|
||||
".pushsection __rseq_cs, \"aw\"\n\t" \
|
||||
|
@ -823,5 +819,3 @@ error2:
|
|||
rseq_bug("expected value comparison failed");
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -85,10 +85,6 @@ do { \
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#define RSEQ_ASM_TMP_REG32 "w15"
|
||||
#define RSEQ_ASM_TMP_REG "x15"
|
||||
#define RSEQ_ASM_TMP_REG_2 "x14"
|
||||
|
@ -691,5 +687,3 @@ error2:
|
|||
rseq_bug("expected value comparison failed");
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -60,10 +60,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#if _MIPS_SZLONG == 64
|
||||
# define LONG ".dword"
|
||||
# define LONG_LA "dla"
|
||||
|
@ -773,5 +769,3 @@ error2:
|
|||
rseq_bug("expected value comparison failed");
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -36,10 +36,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} 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
|
||||
* better handle single-stepping through the restartable critical sections.
|
||||
|
@ -787,5 +783,3 @@ error2:
|
|||
rseq_bug("expected value comparison failed");
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -49,10 +49,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*(p), v); \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \
|
||||
post_commit_offset, abort_ip) \
|
||||
".pushsection __rseq_cs, \"aw\"\n" \
|
||||
|
@ -673,5 +669,3 @@ error1:
|
|||
rseq_bug("cpu_id comparison failed");
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -28,10 +28,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#ifdef __s390x__
|
||||
|
||||
#define LONG_L "lg"
|
||||
|
@ -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,
|
||||
newv, cpu);
|
||||
}
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
/* 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 { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} while (0)
|
||||
|
||||
#ifdef RSEQ_SKIP_FASTPATH
|
||||
#include "rseq-skip.h"
|
||||
#else /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, \
|
||||
start_ip, post_commit_offset, abort_ip) \
|
||||
".pushsection __rseq_cs, \"aw\"\n\t" \
|
||||
|
@ -629,8 +625,6 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
|
|||
newv, cpu);
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#elif defined(__i386__)
|
||||
|
||||
#define RSEQ_ASM_TP_SEGMENT %%gs
|
||||
|
@ -657,10 +651,6 @@ do { \
|
|||
RSEQ_WRITE_ONCE(*p, v); \
|
||||
} 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
|
||||
* lessen register pressure. Especially needed when compiling in O0.
|
||||
|
@ -1360,6 +1350,4 @@ error2:
|
|||
#endif
|
||||
}
|
||||
|
||||
#endif /* !RSEQ_SKIP_FASTPATH */
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue